在C#REST服务中验证ADAL JWT令牌
我有一个web应用程序,它使用ADAL库通过Azure Active Directory进行身份验证 此web应用程序通过将ADAL令牌字符串作为参数传递来调用C#REST服务。在我的REST服务中,我想验证这个令牌。如果令牌仅有效,则服务将执行该操作 我搜索了很多,但找不到在rest服务中验证JWT令牌的方法。你们能帮我一下吗?你们有两个选择: 1。使用OWIN中间件 使用将为您处理令牌验证的中间件。一个常见的例子是OWIN中间件,它为您带来了所有的魔力。通常,这是最好的方法,因为它允许您将代码集中在API的业务逻辑上,而不是低级别的令牌验证上。对于使用OWIN的REST API示例,请查看以下两个示例:在C#REST服务中验证ADAL JWT令牌,c#,validation,jwt,azure-active-directory,adal,C#,Validation,Jwt,Azure Active Directory,Adal,我有一个web应用程序,它使用ADAL库通过Azure Active Directory进行身份验证 此web应用程序通过将ADAL令牌字符串作为参数传递来调用C#REST服务。在我的REST服务中,我想验证这个令牌。如果令牌仅有效,则服务将执行该操作 我搜索了很多,但找不到在rest服务中验证JWT令牌的方法。你们能帮我一下吗?你们有两个选择: 1。使用OWIN中间件 使用将为您处理令牌验证的中间件。一个常见的例子是OWIN中间件,它为您带来了所有的魔力。通常,这是最好的方法,因为它允许您将代
- (实际的JWT验证发生在中,如下所示:
JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler(); TokenValidationParameters validationParameters = new TokenValidationParameters { ValidAudience = audience, ValidIssuer = issuer, IssuerSigningTokens = signingTokens, CertificateValidator = X509CertificateValidator.None }; try { // Validate token. SecurityToken validatedToken = new JwtSecurityToken(); ClaimsPrincipal claimsPrincipal = tokenHandler.ValidateToken(jwtToken, validationParameters, out validatedToken); // Do other validation things, like making claims available to controller... } catch (SecurityTokenValidationException) { // Token validation failed HttpResponseMessage response = BuildResponseErrorMessage(HttpStatusCode.Unauthorized); return response; }