Formato del claim di identificazione
Comprendere il formato del claim che identifica l’utente all’interno dell’applicazione è fondamentale sia per i programmatori quanto per i sistemisti. Solo così potremo capire se il nostro sistema funziona correttamente.
Per esempio, i:0#.w|DOMINIO\utente cosa vuol dire? Cosa significano i caratteri iniziali?
i: Claim Identificativo univoco per l’utente. Tramite il descrittore dopo il carattere | è possibile identificare univocamente l’utente (logonname, codice fiscale, email) mentre quando il claim è descrittivo dell’utente senza essere univoco (ruolo aziendale, residenza) si usa il prefisso c:
0 (zero) riservato per futuri utilizzi quindi non ha significato e si trova sempre visualizzato con lo stesso valore
# (cancelletto) Claim Type Encoded Value. Quale tipologia di dato viene usato come descrittore, in base a questa tabella si identificano i caratteri possibili. Il carattere # (cancelletto) è lo user logon name di dominio dell’utente.
| Claim type URI | |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/audienceid” | “0″ |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/organizationid” | “1″ |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/useridentifier” | “”" |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/userlogonname” | “#” |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/identityprovider” | “!” |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/distributionlistsid” | “$” |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid” | “%” |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid” | “7″ |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/processidentitysid” | “&” |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/processidentitylogonname” | “‘” |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/windowstoken/handle” | “A” |
| “http://sharepoint.microsoft.com/claims/2009/01/windowstoken/processid” | “B” |
| “http://sharepoint.microsoft.com/claims/2009/01/windowstoken/processid” | “C” |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/isauthenticated” | “(“ |
| “http://schemas.microsoft.com/sharepoint/2009/08/claims/provideruserkey” | “h” |
| Service model claim type URIs | |
| “http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid” | “)” |
| “http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid” | “*” |
| “http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid” | “+” |
| “http://schemas.microsoft.com/ws/2008/06/identity/claims/role” | “-” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/anonymous” | “.” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authentication” | “/” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authorizationdecision” | “0″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country” | “1″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dateofbirth” | “2″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid” | “3″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dns” | “4″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress” | “5″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/gender” | “6″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname” | “7″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/hash” | “8″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/homephone” | “9″ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality” | “<” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone” | “=” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name” | “>” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier” | “?” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/otherphone” | “@” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode” | “[" |
| "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" | "\" |
| "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/rsa" | "]“ |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid” | “^” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn” | “_” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince” | “`” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress” | “a” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname” | “b” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/system” | “c” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint” | “d” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn” | “e” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/uri” | “f” |
| “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/webpage” | “g” |
. (punto) Claim Value Type. Quale tipo di dato viene usato nel descrittore, in base a questa tabella si identificano i tipi possibili. Il carattere . (punto) è il tipo stringa.
| Claim value type URI | |
| “http://www.w3.org/2001/XMLSchema#base64Binary” | “!” |
| “http://www.w3.org/2001/XMLSchema#boolean” | “”" |
| “http://www.w3.org/2001/XMLSchema#date” | “#” |
| “http://www.w3.org/2001/XMLSchema#dateTime” | “$” |
| “http://www.w3.org/TR/2002/WD-xquery-operators-20020816#dayTimeDuration” | “%” |
| “http://www.w3.org/2001/XMLSchema#double” | “&” |
| “http://www.w3.org/2001/XMLSchema#hexBinary” | “(“ |
| “http://www.w3.org/2001/XMLSchema#integer” | “)” |
| “http://www.w3.org/2000/09/xmldsig#KeyInfo” | “*” |
| “http://www.w3.org/2000/09/xmldsig#RSAKeyValue” | “-” |
| “http://www.w3.org/2000/09/xmldsig#DSAKeyValue” | “`” |
| “http://www.w3.org/2001/XMLSchema#string” | “.” |
| “http://www.w3.org/2001/XMLSchema#time” | “/” |
| “http://www.w3.org/TR/2002/WD-xquery-operators-20020816#yearMonthDuration” | “1″ |
| X500Name | “0″ |
| Rfc822Name | “+” |
w Original Issuer Type. Il provider di autenticazione che fornisce originariamente il descrittore, in base a questa tabella si identificano i provider possibili. Il carattere w è il tipo windows (Local o dominio Active Directory)
| Original issuer | |
| Windows | “w” |
| ASP.Net Membership provider (Forms based authentication) | “m” |
| ASP.Net Role provider (Forms based authentication) | “r” |
| Trusted STS | “t” |
| Local STS | “s” |
| Claim provider | “c” |
| (pipe) Separatore tra i caratteri che indicano il significato dei dati del descrittore ed il vero e proprio descrittore identificativo.
DOMINIO\utente Descrittore identificativo, in base ai caratteri precedenti è possibile dare un maggiore significato. Nel nostro caso è quindi una stringa che identifica univocamente l’utente tramite il logon name del dominio Active Directory.
Analogamente possiamo dare significato anche a questi claims:
i:05.t|ADFSprovider|n.cognome@azienda.it Identificato univoco dell’utente (i:0) tramite email (5) come stringa (.) e rilasciato da un Identity Provider trustato dall’applicazione (t), questo IdP si chiama ADFSprovider e la mail dell’utente è n.cognome@azienda.it
i:0#.w|nt authority\network service Identificato univoco dell’utente (i:0) tramite logonname (#) come stringa (.) e rilasciato da Windows (w), l’account di sistema è locale del server (nt authority) e per la precisione si tratta del network service
i:0#.m|fbamembership|adminfba Identificativo univoco dell’utente (i:0) tramite logonname (#) come stringa (.) e rilasciato da un provider FBA di tipo .Net (m), il provider si chiama fbamembership e l’account è adminfba
c:0[.c|crmclaimprovider|11027 Identificativo non univoco dell’utente (c:0) tramite il codice d’avviamento postale ([) come stringa (.) e rilasciato da un claim provider chiamato crmclaimprovider con valore 11027