如何在 api 中传递范围,同时为 azure AD 生成令牌

how to pass scope in api while generating token for azure AD

我可以使用 postman 生成访问令牌。但是,我需要从 API 生成令牌。我尝试使用 api 参考有关如何生成访问令牌的微软文档来获取令牌。但是在 运行 post 请求 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 获得授权时,同样的事情在 postman 中起作用,我能够生成令牌。请帮助 post 请求从 azure AD 获取不记名令牌。

客户端凭证流中,请求中的范围参数应该是,范围=api://{your-appid}/ .default(后缀)。请参考Ms Document也提到相同的。

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