Dans le paquet, il y a une classe appelée JwtSecurityTokenHandler
qui découle de System.IdentityModel.Tokens.SecurityTokenHandler
. Dans le WIF, il s'agit de la classe de base pour la désérialisation et la sérialisation des jetons de sécurité.
La classe a un ReadToken(String)
qui prendra votre chaîne JWT codée en base64 et renverra une méthode SecurityToken
qui représente le JWT.
Le site SecurityTokenHandler
dispose également d'un ValidateToken(SecurityToken)
qui prend votre SecurityToken
et crée un ReadOnlyCollection<ClaimsIdentity>
. Habituellement, pour JWT, il s'agit d'un simple ClaimsIdentity
qui possède un ensemble de revendications représentant les propriétés du JWT original.
JwtSecurityTokenHandler
définit quelques surcharges supplémentaires pour ValidateToken
En particulier, il a un ClaimsPrincipal ValidateToken(JwtSecurityToken, TokenValidationParameters)
surcharge. Le site TokenValidationParameters
vous permet de spécifier le certificat de signature de jeton (comme une liste de X509SecurityTokens
). Elle possède également une surcharge qui prend le JWT en tant que string
plutôt qu'un SecurityToken
.
Le code pour faire cela est plutôt compliqué, mais peut être trouvé dans le code Global.asax.cx ( TokenValidationHandler
) dans l'échantillon de développement intitulé "ADAL - Native App to REST service - Authentication with ACS via Browser Dialog", situé à l'adresse suivante
http://code.msdn.microsoft.com/AAL-Native-App-to-REST-de57f2cc
Alternativement, le JwtSecurityToken
possède des méthodes supplémentaires qui ne figurent pas dans la classe de base SecurityToken
comme une classe Claims
qui permet d'obtenir les réclamations contenues sans passer par la propriété ClaimsIdentity
collection. Il dispose également d'un Payload
qui renvoie un JwtPayload
qui vous permet d'accéder au JSON brut du jeton. L'approche la plus appropriée dépend de votre scénario.
La documentation générale (c.-à-d. non spécifique à JWT) pour l'option SecurityTokenHandler
La 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 tout autre gestionnaire.
Il y a 3 échantillons de ce produit utilisé dans différents types d'applications à l'adresse suivante
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
Il est probable que l'un d'entre eux répondra à vos besoins ou, du moins, s'y adaptera.