OAuth2与Azure Active Directory,但未指定资源

时间:2016-12-07 09:04:19

标签: oauth-2.0 azure-active-directory

我正在尝试使用以下教程获取Auth Token: https://docs.microsoft.com/en-us/azure/active-directory/active-directory-protocols-oauth-code

重要的是我没有提供“资源”参数。根据文档,它是可选的。

我能够获得授权码,但是当我尝试使用它来获取访问令牌时,我得到了:

  

AADSTS50001:未提供资源标识符

根据文档资源参数只有在Auth Code请求中指定时才需要。使用Resource param它可以正常工作,但我需要在没有它的情况下实现它。

2 个答案:

答案 0 :(得分:1)

在原始文件OAuth 2.0 specification中,授权请求中没有资源参数。它使用范围参数。授权和令牌端点允许客户端使用“范围”请求参数指定访问请求的范围。

根据我的理解,当Azure AD实施OAuth 2.0(1.0端点)时,资源用于指定您请求哪个资源的access_token。 Azure AD将根据您在资源门户上配置的权限发出 scp 的令牌。

在v2.0端点中,Azure AD还使用范围来支持动态权限请求。更多详细信息,请参阅here

答案 1 :(得分:0)

确保已在Azure AD中注册了应用程序重定向uri。请求上的重定向uri必须与在identityprovider上注册的重定向uri匹配。

请求:authorize?client_id=<id>&scope=<scope>&response_type=id_token token&redirect_uri=<uri>