2015-09-24 89 views
2

我遇到了一些问题,让我们的代码对Azure AD进行身份验证。我已经配置了一个应用程序并设置了我们的代码来请求授权“代码”。这很有效,但是当我尝试将“代码”换成“access_token”时,我遇到了各种各样的错误。首先,我收到“找不到资源”错误。我挖进了Manifest,并提出了一个资源ID来通过,但后来我得到一个“失踪的client_secret”错误。Azure AD Oauth2/OpenID Connect网络应用程序身份验证问题

但我不确定我是否会在这里走正确的道路。首先,我不确定我需要访问哪些资源(如果有)。由于我们只是想验证身份,我不认为我需要实际请求访问任何其他API吗?也许我会这样做,但我不确定我会用他们做些什么或什么。

另外,我发现这个博客帖子这似乎令人鼓舞: http://www.andrewconnell.com/blog/azure-ad-oauth2-openid-connect

他使它看起来像我应该能够请求无论是“密码”和ID连接的初始授权请求id_token。这一眼看起来似乎是我需要做的。但是当我尝试将“+ id_token”追加到“code”resource_type参数中时,他建议我得到一个“丢失的随机数”错误。如果我用一个随机字符串包含“nonce”参数,它会毫无错误地通过,它会触发我的redirect_uri,但我没有收到任何回复的数据,当然也不是他指出我应该在博客文章中看到的个人资料信息。

回答

1
+0

是的,它做到了!我还在今天早些时候发现了这些设置,同时重新阅读了[openid-connect api spec](https://msdn.microsoft.com/en-us/library/azure/dn645541.aspx)。另外我认为加入scope = openid也是我以前没有的。谢谢! – kk64738

+0

对于多租户认证,上述端点示例的另一个重要组成部分是使用端点的**公共**形式而不是**租户**端点。这让我想起了一段时间,因为我最初使用的是租户端点({tenant_id}位于URL中),但这只允许已明确添加到租户的用户验证哪里需要多租户因此切换到公共端点解决了这一问题。 – kk64738

2

如果您想验证您确定要使用OpenId Connect - OAuth2用于授权您的应用程序充当客户端,以针对不同的资源,而不是为登录目的获取令牌。我建议您参阅http://aka.ms/aaddev以了解概览和快速入门。特别是,请参阅此部分以了解如何进行openid连接身份验证的拓扑结构和this快速入门。

相关问题