Windows Azure AD租户应用程序oAuth 2.0规范中的Resource参数是什么

时间:2014-05-28 21:06:41

标签: azure curl oauth azure-active-directory

我尝试使用curl通过oAuth 2.0使用Windows Azure AD租户应用程序调用身份验证过程。但我无法弄清楚参数"资源'在下面的示例代码中:

curl -X POST https://login.windows.net/<<YOUR--AD-TENANT-ID>>/oauth2/token  \
  -F redirect_uri=http://google.com \
  -F grant_type=authorization_code \
  **-F resource=https://management.core.windows.net/ \**
  -F client_id=87a544fd-... \
  -F code=AwABAAAAvPM1...8sSAA

2 个答案:

答案 0 :(得分:21)

资源参数描述了客户端希望代表用户访问的WebAPI的标识符。 OAuth中的大多数流程涉及4方,资源所有者(也称为用户),客户端(也称为app),权限(也称为身份提供者)和资源(aka webapi)。权威机构生成的访问令牌的受众是资源标识符。

对于Azure AD,您可以使用客户端ID或资源WebAPI的App ID URI(在Azure管理门户中的Azure AD应用程序的配置选项卡中查找它们)。例如,如果我希望我的客户端代表用户获取令牌以访问Azure AD Graph API,我会请求资源的标记&#34; https://graph.windows.net&#34;。在您的示例中,资源参数值标识Azure服务管理API。

以下是使用Azure AD SDK向WebAPI请求令牌的客户端应用程序的一些代码示例 - 资源参数的不同用法:

希望这有帮助。

答案 1 :(得分:6)

简单来说,resource参数包含您要访问的Web API资源的URI。

OAuth协议遵循基于令牌的资源访问。参数“resource”有助于区分不同WEB API的令牌。

例如,如果您想访问GRAPH API,那么资源将是“https://graph.windows.net/

如果要访问AZURE,则必须将resource参数指定为 - “http://management.azure.com”。

建议使用此参数,虽然它不是强制性的。