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

Dha*_*ana 17 curl oauth azure azure-active-directory

我正在尝试使用curl通过oAuth 2.0使用Windows Azure AD租户应用程序调用身份验证过程.但我无法弄清楚以下示例代码中的参数"resource"是什么:

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
Run Code Online (Sandbox Code Playgroud)

Dus*_*ill 24

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

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

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

希望这可以帮助.

  • 然后,您的应用程序将向令牌端点发出请求以获取第一个资源的访问令牌 - 您将发送代码(以及您的客户端ID /客户端信用卡)并获取访问令牌和刷新令牌.然后,您的应用程序将再次调用令牌端点 - 这次是对第二个资源的访问令牌,但是这次您将发送刷新令牌(以及您的clientid/client creds). (5认同)
  • qq Dushyant - 是否可以在一次通话中为多个资源请求令牌? (3认同)

小智 6

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

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

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

如果要访问AZURE,则资源参数必须指定为 - " http://management.azure.com ".

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