W pakiecie znajduje się klasa o nazwie, JwtSecurityTokenHandlerktóra pochodzi od System.IdentityModel.Tokens.SecurityTokenHandler. W WIF jest to podstawowa klasa do deserializacji i serializacji tokenów zabezpieczających.
Klasa ma ReadToken(String)metodę, która pobierze ciąg znaków JWT zakodowany w standardzie Base64 i zwróci wartość, SecurityTokenktóra reprezentuje JWT.
Ma SecurityTokenHandlerrównież ValidateToken(SecurityToken)metodę, która pobiera SecurityTokeni tworzy plik ReadOnlyCollection<ClaimsIdentity>. Zwykle w przypadku tokena JWT będzie to pojedynczy ClaimsIdentityobiekt z zestawem oświadczeń reprezentujących właściwości oryginalnego tokena JWT.
JwtSecurityTokenHandlerdefiniuje kilka dodatkowych przeciążeń ValidateToken, w szczególności ma ClaimsPrincipal ValidateToken(JwtSecurityToken, TokenValidationParameters)przeciążenie. TokenValidationParametersArgumentem pozwala określić certyfikat podpisywania tokenu (jako lista X509SecurityTokens). Ma również przeciążenie, które traktuje token JWT jako stringraczej niż plik SecurityToken.
Kod służący do tego jest dość skomplikowany, ale można go znaleźć w kodzie ( TokenValidationHandlerklasie) Global.asax.cx w przykładzie dewelopera o nazwie „ADAL - Natywna aplikacja do usługi REST - Uwierzytelnianie za pomocą usługi ACS za pośrednictwem okna dialogowego przeglądarki”, znajdującej się pod adresem
http://code.msdn.microsoft.com/AAL-Native-App-to-REST-de57f2cc
Alternatywnie JwtSecurityTokenklasa ma dodatkowe metody, które nie znajdują się w SecurityTokenklasie bazowej , takie jak Claimswłaściwość, która pobiera zawarte oświadczenia bez przechodzenia przez ClaimsIdentitykolekcję. Ma również Payloadwłaściwość, która zwraca JwtPayloadobiekt, który pozwala uzyskać surowy kod JSON tokenu. To zależy od scenariusza, które podejście jest najbardziej odpowiednie.
Ogólna (tzn. Nie związana z JWT) dokumentacja dla SecurityTokenHandlerklasy znajduje się pod adresem
http://msdn.microsoft.com/en-us/library/system.identitymodel.tokens.securitytokenhandler.aspx
W zależności od aplikacji można skonfigurować procedurę obsługi JWT w potoku WIF dokładnie tak, jak każdą inną procedurę obsługi.
Istnieją 3 próbki tego używanego w różnych typach zastosowań pod adresem
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
Prawdopodobnie jeden będzie odpowiadał Twoim potrzebom lub przynajmniej da się do nich dostosować.