我尝试使用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
答案 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”。
建议使用此参数,虽然它不是强制性的。