我在使用我们的代码对Azure AD进行身份验证时遇到了一些问题。我已经配置了一个应用程序并设置了我们的代码来请求授权“代码”。这很有用,但是当我尝试将“代码”替换为“access_token”时,我会遇到各种错误。首先,我得到“缺少资源识别”错误。我挖出了Manifest并拔出了一个资源ID,然后我得到了一个“缺少client_secret”的错误。
但我不确定我是否会走这条路。首先,我不确定我需要访问哪些资源(如果有的话)。由于我们只是尝试进行身份验证,我认为我不需要实际请求访问任何其他API吗?也许我这样做,但我不确定我会用它做什么或做什么。
另外,我发现这篇博文似乎令人鼓舞: http://www.andrewconnell.com/blog/azure-ad-oauth2-openid-connect
他看起来我应该能够在初始授权请求中同时请求“代码”和OpenID Connect id_token。这看起来似乎就是我需要做的一切。但是当我尝试将“+ id_token”附加到“code”resource_type param时,他建议我得到一个“缺少nonce”错误。如果我包含带有随机字符串的“nonce”参数,它会毫无错误地通过并且它会点击我的redirect_uri但是我没有在响应中获得任何数据,当然也不是他指示我应该在博客文章中看到的配置文件信息
答案 0 :(得分:2)
如果您要进行身份验证,您肯定希望使用OpenId Connect - OAuth2用于授权您的应用充当客户端以抵御其他资源,而不是获取用于登录目的的令牌。我建议您查看http://aka.ms/aaddev的概述和快速入门。特别是,有关拓扑的说明,请参阅此内容;有关如何进行openid连接身份验证的快速入门,请参阅this。
答案 1 :(得分:1)
添加'response_mode = form_post'是否允许您的应用同时接收代码和id_token?
登录请求示例(GET)