Dans le package, il y a une classe appelée JwtSecurityTokenHandler
qui dérive de System.IdentityModel.Tokens.SecurityTokenHandler
. Dans WIF, il s'agit de la classe principale pour la désérialisation et la sérialisation des jetons de sécurité.
La classe a une ReadToken(String)
méthode qui prendra votre chaîne JWT encodée en base64 et retourne a SecurityToken
qui représente le JWT.
Le a SecurityTokenHandler
également une ValidateToken(SecurityToken)
méthode qui prend votre SecurityToken
et crée un fichier ReadOnlyCollection<ClaimsIdentity>
. Habituellement, pour JWT, celui-ci contiendra un seul ClaimsIdentity
objet qui a un ensemble de revendications représentant les propriétés du JWT d'origine.
JwtSecurityTokenHandler
définit des surcharges supplémentaires car ValidateToken
, en particulier, il a une ClaimsPrincipal ValidateToken(JwtSecurityToken, TokenValidationParameters)
surcharge. L' TokenValidationParameters
argument vous permet de spécifier le certificat de signature de jeton (sous forme de liste de X509SecurityTokens
). Il a également une surcharge qui prend le JWT string
plutôt que comme un SecurityToken
.
Le code pour ce faire est assez compliqué, mais peut être trouvé dans le code Global.asax.cx ( TokenValidationHandler
classe) dans l'exemple de développeur appelé «ADAL - Service Native App to REST - Authentification avec ACS via Browser Dialog», situé à l'adresse
http://code.msdn.microsoft.com/AAL-Native-App-to-REST-de57f2cc
Sinon, la JwtSecurityToken
classe a des méthodes supplémentaires qui ne sont pas sur la SecurityToken
classe de base , comme une Claims
propriété qui obtient les revendications contenues sans passer par la ClaimsIdentity
collection. Il possède également une Payload
propriété qui renvoie un JwtPayload
objet qui vous permet d'accéder au JSON brut du jeton. Cela dépend de votre scénario de l'approche la plus appropriée.
La documentation générale (c'est-à-dire non spécifique à JWT) pour la SecurityTokenHandler
classe est à
http://msdn.microsoft.com/en-us/library/system.identitymodel.tokens.securitytokenhandler.aspx
En fonction de votre application, vous pouvez configurer le gestionnaire JWT dans le pipeline WIF exactement comme n'importe quel autre gestionnaire.
Il y en a 3 exemples en cours d'utilisation dans différents types d'applications à
http://code.msdn.microsoft.com/site/search?f%5B0%5D.Type=SearchText&f%5B0%5D.Value=aal&f%5B1%5D.Type=User&f%5B1%5D.Value=Azure% 20AD% 20Developer% 20Experience% 20Team & f% 5B1% 5D.Text = Azure% 20AD% 20Developer% 20Experience% 20Team
Probablement, l'un répondra à vos besoins ou du moins sera adaptable à eux.