如何验证id_token

时间:2017-08-22 19:28:48

标签: asp.net-mvc-5 azure-active-directory openid-connect

基于这篇文章:https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect,我用OpenId连接协议做了一个示例。

以下链接表示只接收id_token不足以验证用户身份;您必须根据应用的要求验证签名并验证id_token中的声明。

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-openid-connect-code

任何人都可以帮我指导一些代码示例如何验证签名并验证id_token中的声明。

1 个答案:

答案 0 :(得分:2)

OpenId Conenct中间件负责为您验证id_token。请参阅"关于代码"样本部分。我在这里粘贴相关部分:

  

此示例显示如何使用OpenID Connect ASP.Net OWIN   用于从单个Azure AD租户登录用户的中间件。该   中间件通过传递在Startup.Auth.cs文件中初始化   应用程序的客户端ID和Azure AD租户的URL   申请注册的地方。然后中间件要小心   的:

     

*下载Azure AD元数据,查找签名密钥,以及   找到租户的发行人名称。

     

*通过验证来处理OpenID Connect登录响应   收到JWT的签名和签发者,提取用户的索赔,   并将它们放在ClaimsPrincipal.Current。

     

*与会话cookie ASP.Net OWIN中间件集成   为用户建立会话。