【问题标题】:Azure AD Oauth2/OpenID Connect web app authentication problemsAzure AD Oauth2/OpenID Connect Web 应用身份验证问题
【发布时间】:2015-12-22 16:56:12
【问题描述】:

我在让我们的代码向 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 参数时,我得到了“missing nonce”错误。如果我包含一个带有随机字符串的“nonce”参数,它会毫无错误地通过并命中我的redirect_uri,但我没有在响应中获得任何数据,当然也不是他指出我应该在博客文章中看到的个人资料信息.

【问题讨论】:

    标签: azure azure-active-directory openid-connect


    【解决方案1】:

    如果您想进行身份验证,您肯定希望使用 OpenId Connect - OAuth2 用于授权您的应用充当针对不同资源的客户端,而不是获取用于登录目的的令牌。我建议查看http://aka.ms/aaddev 以获取概述和快速入门。具体来说,请参阅此了解拓扑结构的说明,并参阅this 了解如何进行 openid 连接身份验证的快速入门。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 是的!我今天早些时候在重新阅读openid-connect api spec 时也发现了这些设置。另外我认为添加 scope=openid 也有帮助,这是我以前没有的。谢谢!
      • 对于多租户身份验证,上述端点示例的另一个重要组成部分是它使用端点的 common 形式而不是 tenant 端点。这让我有些困惑,因为我最初使用的是租户端点({tenant_id} 在 URL 中),但这仅允许已明确添加到租户的用户在我需要多租户的地方进行身份验证身份验证,因此切换到公共端点解决了这个问题。
      猜你喜欢
      • 2021-07-29
      • 2023-03-20
      • 1970-01-01
      • 2020-03-09
      • 1970-01-01
      • 2018-01-01
      • 1970-01-01
      • 2020-07-14
      • 2021-09-07
      相关资源
      最近更新 更多