Dentro do pacote, há uma classe chamada JwtSecurityTokenHandlerque deriva de System.IdentityModel.Tokens.SecurityTokenHandler. No WIF, essa é a classe principal para desserializar e serializar tokens de segurança.
A classe tem um ReadToken(String)método que pegará sua string JWT codificada em base64 e retornará um SecurityTokenque representa o JWT.
O SecurityTokenHandlertambém tem um ValidateToken(SecurityToken)método que pega seu SecurityTokene cria um ReadOnlyCollection<ClaimsIdentity>. Normalmente, para o JWT, ele conterá um único ClaimsIdentityobjeto que possui um conjunto de declarações que representam as propriedades do JWT original.
JwtSecurityTokenHandlerdefine algumas sobrecargas adicionais para ValidateToken, em particular, ter uma ClaimsPrincipal ValidateToken(JwtSecurityToken, TokenValidationParameters)sobrecarga. O TokenValidationParametersargumento permite que você especifique o certificado de assinatura de token (como uma lista de X509SecurityTokens). Ele também tem uma sobrecarga que considera o JWT como um em stringvez de um SecurityToken.
O código para fazer isso é um pouco complicado, mas pode ser encontrado no código ( TokenValidationHandlerclasse) Global.asax.cx no exemplo de desenvolvedor chamado "ADAL - Aplicativo nativo para serviço REST - Autenticação com ACS via caixa de diálogo do navegador", localizado em
http://code.msdn.microsoft.com/AAL-Native-App-to-REST-de57f2cc
Como alternativa, a JwtSecurityTokenclasse possui métodos adicionais que não estão na SecurityTokenclasse base , como uma Claimspropriedade que obtém as declarações contidas sem passar pela ClaimsIdentitycoleção. Ele também tem uma Payloadpropriedade que retorna um JwtPayloadobjeto que permite obter o JSON bruto do token. Depende do seu cenário qual abordagem é mais apropriada.
A documentação geral (ou seja, não específica do JWT) para a SecurityTokenHandlerclasse está em
http://msdn.microsoft.com/en-us/library/system.identitymodel.tokens.securitytokenhandler.aspx
Dependendo do seu aplicativo, você pode configurar o manipulador JWT no pipeline WIF exatamente como qualquer outro manipulador.
Existem 3 amostras em uso em diferentes tipos de aplicação em
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
Provavelmente, um atenderá às suas necessidades ou, pelo menos, será adaptável a elas.