Come ottenere la vera autorità emittente originale di un'attestazione di identità in SharePoint 2010
Articolo originale pubblicato giovedì 31 marzo 2011
Ho eseguito questa attività in diversi modi lo scorso anno, ma alla fine ho deciso di seguire la procedura appropriata. L'attività è piuttosto semplice. Quando il proprio provider di attestazioni personalizzate viene richiamato, ad esempio durante l'aggiunta di attestazioni, e si desidera conoscere a quale tipo di utente tali attestazioni si riferiscano (attestazioni di Windows, attestazioni FBA o attestazioni SAML), come è possibile procedere? Invece di illustrare le diverse soluzioni che ho adottato in passato, inserisco di seguito un breve blocco di codice in cui viene riepilogata la procedura corretta da eseguire.
//get the claim provider manager
SPClaimProviderManager cpm = SPClaimProviderManager.Local;
//get the current user so we can get to the "real" original issuer
SPClaim curUser = SPClaimProviderManager.DecodeUserIdentifierClaim(entity);
//get the original issuer for the user
SPOriginalIssuerType loginType = SPOriginalIssuers.GetIssuerType(curUser.OriginalIssuer);
if (loginType == SPOriginalIssuerType.Windows)
{
//do windows
}
else if ((loginType == SPOriginalIssuerType.TrustedProvider) ||
(loginType == SPOriginalIssuerType.ClaimProvider))
{
//do SAML
}
Credo che il codice sia abbastanza chiaro e che non vi sia molto altro da spiegare. In questo caso, il paramento "entity" utilizzato nel metodo DecodeUserIdentifierClaim è stato passato come parte della sostituzione di FillClaimsForEntity, ovvero aggiungendo attestazioni, nel provider di attestazioni personalizzate. Il metodo qui illustrato dovrebbe funzionare senza problemi in qualsiasi punto di un provider di attestazioni personalizzate.
Questo è un post di blog localizzato. L'articolo originale è disponibile in How to Get the Real Original Issuer for an Identity Claim in SharePoint 2010.