|
<< Fare clic per visualizzazione il sommario >> Percorso: Gli oggetti del mondo Jamio > I tipi strutturati > Credentials |
Risorsa di tipo credenziali che descrive le proprietà utili ad accedere ed utilizzare un servizio.
E' necessario richiamare le API del servizio Jamio Service, progettando un processo che permetta di gestire le operazioni CRUD sulla risorsa, eventualmente prevedendo appositi Data per l'inserimento dei dati.
Il tipo è una struttura composta dalle seguenti proprietà:
Nome |
Descrizione |
Tipo |
Id |
Identificativo delle credenziali. |
String |
RepositoryId |
Identificativo dell'area Jamio openwork in cui le credenziali sono disponibili. |
String |
Name |
Testo utile ad identificare le credenziali, esso è univoco. |
String |
Description |
Testo utile a fornire una descrizione delle credenziali. |
String |
Nickname |
Nome univoco, un identificativo di business, assegnato alle credenziali. Il Nickname delle Credenziali è univoco per area. Per quanto riguarda i caratteri speciali ammessi: •può contenere lettere maiuscole e minuscole dell'alfabeto inglese, numeri e i caratteri "-", "_", "." •non è case-sensitive •non può iniziare con uno dei caratteri "-", "_", "." •non può terminare con "." •non può contenere spazi |
String |
AuthorizationScheme |
Tipologia di autorizzazione a cui le credenziali si applicano. A seconda del tipo di autorizzazione, nelle proprietà Fields vanno riportati dei campi specifici, come descritto nella sezione Commenti. Se le credenziali hanno uno scopo di utilizzo diverso da uno degli schemi suddetti, occorre impostare AuthorizationScheme a valore 0 ed utilizzare la proprietà Scope per specificare il caso d'uso. |
|
Owner |
Collegamento alla risorsa (ad esempio di tipo Identity) che ne è proprietaria. |
Reference |
Scope |
Rappresenta il caso d'uso per cui le credenziali sono definite. La proprietà è utile a specificare utilizzi delle credenziali diversi dagli schemi autorizzativi disponibili in AuthorizationScheme ed è obbligatoria quando AuthorizationScheme è uguale a 0. Per ogni tipo di Scope, nelle proprietà Fields vanno riportati dei campi specifici come descritto nella sezione Commenti. Attualmente può assumere il seguente i valori: •RemoteQualifiedCertificate; •Azure. |
String |
Fields |
Rappresenta una collezione di campi aggiuntivi, specifici per il tipo di autorizzazione indicata nel parametro AuthorizationScheme. Vedi sezione Commenti. |
DataSet |
Created |
Proprietà in sola lettura, inizializzata alla creazione delle credenziali e riporta la data e l’ora della creazione, il collegamento all’identità che ha effettuato la creazione e il collegamento alla posizione organizzativa ricoperta dall’identità nel caso in cui quest’ultima abbia una collocazione organizzativa. Questa proprietà viene valorizzata una sola volta durante il ciclo di vita di una configurazione di operazione ed è collegata all’azione Create. |
|
LastUpdated |
Proprietà in sola lettura, inizializzata in modo analogo alla proprietà Created all’atto della creazione delle credenziali e valorizzata ad ogni aggiornamento della configurazione successivo alla sua creazione. Riporta la data e l’ora dell’aggiornamento, il collegamento all’identità che ha effettuato l’aggiornamento e il collegamento alla posizione organizzativa ricoperta dall’identità nel caso in cui quest’ultima abbia una collocazione organizzativa. Questa proprietà è collegata all’azione Update. |
Le credenziali si distinguono per gli schemi autorizzativi a cui sono applicabili:
•Custom Credentials
•Network Credentials,
•Basic Authorization
•Api Key
•OAuth 2.0
Per ogni tipologia di schema autorizzativo, occorre inserire nei campi aggiuntivi della proprietà Fields i seguenti parametri specifici:
Tipo schema autorizzativo |
Fields previsti per tipo di autenticazione |
Descrizione |
Custom Credentials |
CustomFields (DataSet) |
Parametri definiti dall'utente, da usare come placeholders contrassegnati dai caratteri ## nei fields di PlugConfiguration, PlugOperationConfiguration e in RestRequest. Per esempio, se l’utente ha definito i parametri UserName e Password essi verranno sostituiti nella querystring ricavata da Parameters, in BodyString, in BodyDataset e nei valori di Headers (non nelle chiavi) ai rispettivi placeholder "##UserName##" e "##Password##". |
Network Credentials |
UserName (String) |
Nome utente utilizzato per definire le credenziali utilizzate nello schema di autenticazione. |
Password (String) |
Password utilizzata per definire le credenziali utilizzate nello schema di autenticazione. |
|
Basic Authorization |
UserName (String) |
Nome utente utilizzato per definire le credenziali utilizzate nello schema di autenticazione. |
Password (String) |
Password utilizzata per definire le credenziali utilizzate nello schema di autenticazione. |
|
ApiKey |
ApiKey (String) |
Chiave di autenticazione. |
ApiKeyParam (String) |
Nome dell’header o del parametro di query string a cui è associata la chiave. |
|
ApiKeyLocation (Integer) |
Posizione dell’ApiKey, può assumere i valori: •0 (valore di default) in questo caso viene aggiunto un header “Authorization” con valore “<ApiKeyParam> < ApiKey >” ; •1 in questo caso viene aggiunto in querystring “<ApiKeyParam>=< ApiKey > |
|
Oauth2.0 |
AccessToken (String) |
Token di accesso fornito dall'Authorization Server all'applicazione Client, dopo la sua autorizzazione. Ha in genere una scadenza. Per richiedere il token di accesso e il token di refresh possono essere utilizzati i metodi GetOauth2TokenResourceOwnerGrant e GetOauth2TokenWithClientGrant. |
TokenType (String) |
Tipo di token. Questo valore determina il modo con cui viene costruito l’Authorization header per richiedere una risorsa. Attualmente il valore di default è “Bearer”. Per JWTGrant la risposta del provider deve specificare il tipo Bearer. |
|
ClientId (String) |
Identificativo dell'applicazione Client fornito durante la registrazione della stessa sul Resource Server. Per JWTGrant è obbligatorio con ClientAuthenticationMethod pari a 0 o 1; con valore 2 non è richiesto né inviato. Non sostituisce il valore di JwtIssuer. |
|
ClientSecret (String) |
Codice segreto (password) fornito durante la registrazione dell'applicazione Client sul Resource Server. Per JWTGrant è obbligatorio con ClientAuthenticationMethod pari a 0 o 1; con valore 2 non è richiesto né inviato. |
|
RefreshToken (String) |
Token per aggiornare l’AccessToken fornito all'applicazione Client, dopo la sua autorizzazione. Il rinnovo automatico tramite una nuova assertion JWT non è previsto. |
|
TokenEndpoint (String) |
URL dell’Authorization Server per ottenere un AccessToken aggiornato. Secondo le specifiche OAuth2.0, deve terminare con “/OAuth/Token”. Per JWTGrant deve essere un URL assoluto HTTPS. |
|
ClientAuthenticationMethod (Integer) |
Modalità con cui il Client esegue l'accesso all’Authorization Server per richiedere un AccessToken aggiornato. Può assumere i valori: •0 per ClientSecretPost (valore predefinito): invia ClientId e ClientSecret nel corpo della richiesta; •1 per ClientSecretBasic: invia ClientId e ClientSecret mediante l'header Authorization Basic; •2 None: non invia autenticazione aggiuntiva. Disponibile solo per JWTGrant; la firma della JWT rimane obbligatoria. |
|
TokenScope (String) |
Scopo per cui si richiede l’AccessToken. È una lista di stringhe delimitate da spazi. Se il provider richiede lo scope all'interno della JWT, configurare il claim scope in JwtAdditionalClaims. |
|
GrantMode (Integer) |
Può assumere i seguenti valori: •0 Refresh Token; •1 Resource Owner Grant; •2 Client Grant; •3 JWT Bearer Grant (OAuth2 JWT Bearer Grant).
I parametri JWT seguenti si applicano a GrantMode = 3. La loro validità viene verificata all'acquisizione del token. |
|
|
JwtIssuer (String) |
Obbligatorio per JWTGrant. Identificativo dell'emittente dell'assertion, utilizzato nel claim iss. Deve essere configurato esplicitamente secondo le indicazioni del provider. |
|
JwtSubject (String) |
Obbligatorio per JWTGrant. Identificativo del soggetto per conto del quale viene richiesto l'access token, utilizzato nel claim sub. |
|
JwtAudience (String) |
Obbligatorio per JWTGrant. Destinatario dell'assertion, utilizzato nel claim aud. Usare il valore richiesto dal provider, che può essere diverso dal TokenEndpoint. |
|
JwtLifetimeSeconds (Integer) |
Obbligatorio per JWTGrant. Durata positiva dell'assertion in secondi, usata per calcolare automaticamente il claim exp. Non indica la durata dell'access token. |
|
JwtSigningKey (String) |
Obbligatorio per JWTGrant. Chiave privata di firma in formato PEM, completa di delimitatori e ritorni a capo. È contenuta direttamente nella credenziale, senza riferimenti ad altre credenziali. |
|
JwtSigningAlgorithm (Integer) |
Algoritmo di firma opzionale. Se non specificato viene utilizzato RS256. Sono supportati RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384 ed ES512, con una chiave compatibile. Un algoritmo non valido produce errore senza sostituzione automatica con quello predefinito. |
|
JwtKeyId (String) |
Identificativo opzionale della chiave, inserito nell'header kid dell'assertion quando richiesto dal provider. |
|
JwtGenerateIssuedAt (Boolean) |
Se true, genera il claim iat con l'istante di emissione a ogni nuova assertion. Valore predefinito: false. |
|
JwtGenerateNotBefore (Boolean) |
Se true, genera il claim nbf con l'istante corrente a ogni nuova assertion. Valore predefinito: false. |
|
JwtGenerateJwtId (Boolean) |
Se true, genera un nuovo identificativo univoco nel claim jti a ogni assertion. Valore predefinito: false. |
|
JwtAdditionalHeaders (Dataset) |
Header JWT aggiuntivi richiesti dal provider. Non possono sostituire gli header riservati alg, kid e typ; una collisione produce errore. |
|
JwtAdditionalClaims (Dataset) |
Claim JWT aggiuntivi richiesti dal provider, anche con valori strutturati. Ad esempio, aggiungere il campo scope con valore signature impersonation se richiesto dal provider. Non possono essere usati i nomi riservati iss, sub, aud, exp, iat, nbf e jti, anche se i relativi claim opzionali non sono abilitati. |
|
AdditionalTokenParameters (Dataset) |
Parametri aggiuntivi della richiesta al Token Endpoint, con valori di tipo stringa. Non possono sostituire i parametri OAuth gestiti: grant_type, assertion, scope, client_id, client_secret, client_assertion, client_assertion_type, refresh_token, username e password. Una collisione produce errore. |
Quando le Credentials devono essere utilizzate per casi d'uso diversi dagli schemi autorizzativi suddetti, si deve utilizzare la proprietà Scope ed impostare AuthorizationScheme a valore 0. Ad esempio, per gestire delle credenziali utili alle funzionalità di firma digitale si può specificare la proprietà Scope a valore RemoteQualifiedCertificate e AuthorizationScheme = 0.
Per ogni tipologia di Scope, occorre inserire nei campi aggiuntivi della proprietà Fields i seguenti parametri specifici:
Scope |
Fields |
Descrizione |
RemoteQualifiedCertificate |
SignerName (string) |
Identifica il fornitore del servizio (es. Aruba, ArubaOnComped, etc). |
Url (string) |
Specifica l'URL del servizio di firma remota. |
|
Type (string) |
Rappresenta l’identificatore del tipo di signer. Ad esempio "aruba" per la connessione al servizio di firma remota di Aruba. |
|
User (string) |
E' il valore dello username del titolare del certificato da impiegare per la firma. |
|
TypeOtpAuth (string) |
Il valore del DOMINIO a cui il certificato Aruba è associato (utilizzare il valore “firma” se non si dispone di un dominio specifico). |
|
DelegatedDomain (string) |
Rappresenta il dominio a cui appartiene l’utenza delegata. |
|
DelegatedUser (string) |
Rappresenta lo username del delegato alla firma digitale. |
|
DelegatedPassword (string) |
Specifica la password dell'utente delegato alla firma digitale. |