【问题标题】:how to pass scope in api while generating token for azure AD在为 azure AD 生成令牌时如何在 api 中传递范围
【发布时间】:2021-02-23 13:39:59
【问题描述】:

我可以使用邮递员生成访问令牌。但是,我需要从 API 生成令牌。我尝试使用 api 获取令牌,参考有关如何生成访问令牌的 microsoft 文档。但是在运行 oauth2.0 的发布请求时出现以下错误

错误--

{
    "error": "invalid_scope",
    "error_description": "AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is not valid. The scope api://f653b343-fe0a-422d-b4a8-f36346a3156b/Access.As.User is not valid.\r\nTrace ID: ce5c37f6-57c0-44f6-b265-ccc68602ba00\r\nCorrelation ID: a44a64c1-9277-40e3-b855-ee0abbe44ab6\r\nTimestamp: 2020-11-11 11:54:49Z",
    "error_codes": [
        70011
    ],
    "timestamp": "2020-11-11 11:54:49Z",
    "trace_id": "ce5c37f6-57c0-44f6-b265-ccc68602ba00",
    "correlation_id": "a44a64c1-9277-40e3-b855-ee0abbe44ab6"
}

范围 -- 但是当使用 oauth2.0 进行授权时,邮递员也可以使用同样的方法,我可以生成令牌。请帮助发布从 azure AD 获取不记名令牌的请求。

【问题讨论】:

  • 嗨@Rahul,您使用的身份验证流程是什么?
  • 我参考了这个文件。 docs.microsoft.com/en-us/azure/active-directory-b2c/… 并且 api 被编写为 powerapps 中的 Microsoft 工作流。在哪里,在获取令牌时它失败并抛出我在问题中发送的错误。
  • 您需要在身份验证 URL 中传递范围。您能将您的身份验证 URL 的链接分享给我们吗
  • URL - login.microsoftonline.com*****-*****-****-****-****/oauth2/v2.0/token Content-Type : application/x-www-form-urlencoded grant_type : client_credentials
  • 范围:api://****/Access.As.User

标签: azure azure-active-directory access-token azure-authentication


【解决方案1】:

客户端凭据流中,请求中的范围参数应为 Scope =api://{your-appid}/ .default (Suffix) 。请参考同样提到的Ms Document

根据您共享的屏幕截图,所有分配的权限都是委派权限。因为,客户端凭据流仅支持应用程序权限,这是您面临401, unauthorized 问题的原因。请添加应用程序权限以解决此问题。

【讨论】:

  • 在我的api中,只有登录的用户才能访问api,在邮递员中,我点击生成访问令牌后,它会询问我的用户名和密码。正确输入后,我得到一个令牌。那么,如何在门户中将范围添加为 .default
  • 你需要公开一个api而不添加额外的范围。请参考docs.microsoft.com/en-us/azure/active-directory/develop/…
猜你喜欢
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
  • 2023-02-03
  • 2023-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多