У пакеті є клас, JwtSecurityTokenHandlerякий називається і походить від System.IdentityModel.Tokens.SecurityTokenHandler. У WIF це основний клас для десериалізації та серіалізації маркерів безпеки.
Клас має ReadToken(String)метод, який прийме кодований рядок JWT base64 і повертає a, SecurityTokenякий представляє JWT.
SecurityTokenHandlerТакож є ValidateToken(SecurityToken)метод , який приймає ваш SecurityTokenі створює ReadOnlyCollection<ClaimsIdentity>. Зазвичай для JWT він буде містити один ClaimsIdentityоб'єкт, який має набір вимог, що представляють властивості вихідного JWT.
JwtSecurityTokenHandlerвизначає деякі додаткові перевантаження ValidateToken, зокрема, він має ClaimsPrincipal ValidateToken(JwtSecurityToken, TokenValidationParameters)перевантаження. TokenValidationParametersАргумент дозволяє вказати сертифікат маркерів підпису (у вигляді списку X509SecurityTokens). Він також має перевантаження, яке сприймає JWT, stringа не як SecurityToken.
Код для цього досить складний, але його можна знайти в коді ( TokenValidationHandlerкласі) Global.asax.cx у зразку розробника під назвою "ADAL - Рідне додаток до служби REST - Аутентифікація за допомогою ACS через діалогове вікно браузера", розташоване за адресою
http://code.msdn.microsoft.com/AAL-Native-App-to-REST-de57f2cc
Крім того, JwtSecurityTokenклас має додаткові методи, які не відносяться до базового SecurityTokenкласу, такі як Claimsвластивість, яка отримує вміщені претензії, не проходячи ClaimsIdentityколекцію. Він також має Payloadвластивість, що повертає JwtPayloadоб'єкт, який дозволяє отримати вихідний JSON маркера. Це залежить від вашого сценарію, який підхід до нього є найбільш доцільним.
Загальна (тобто не специфічна для JWT) документація до SecurityTokenHandlerкласу знаходиться на
http://msdn.microsoft.com/en-us/library/system.identitymodel.tokens.securitytokenhandler.aspx
Залежно від вашої програми, ви можете налаштувати обробник JWT у конвеєр WIF точно так само, як і будь-який інший обробник.
Існує 3 його зразки, які використовуються для різних типів застосування на
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
Можливо, один задовольнить ваші потреби або, принаймні, буде адаптований до них.