【发布时间】:2020-04-04 12:28:47
【问题描述】:
我们遵循 Microsoft 代码授权流程的 OAuth2 的 v2,如下所述,
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
我们在Microsoft Azure下的App Register中创建应用后,尝试从以下url获取代码
https://login.microsoftonline.com/concept4.net/oauth2/v2.0/authorize?client_id=&response_type=code&redirect_uri=https://postman-echo.com/get&response_mode=query&scope=profile%20openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fuser.read&state=skip_get_token2&prompt=consent
然后我们得到以下错误
{"error":"invalid_grant","error_description":"AADSTS65001: 用户或管理员未同意使用 ID 为 '' 名为 'c4app2019' 的应用程序。为此用户和资源发送交互式授权请求。 \r\n跟踪 ID:46424a2f-a3a2-45da-8902-888f5ca61c00\r\n相关 ID:49d0a6ad-e158-4bc9-97b8-a6391c6470bb\r\n时间戳:2019-12-11 07:51:31Z","error_codes" :[65001],"时间戳":"2019-12-11 07:51:31Z","trace_id":"46424a2f-a3a2-45da-8902-888f5ca61c00","correlation_id":"49d0a6ad-e158-4bc9-97b8 -a6391c6470bb","suberror":"consent_required"}
知道我们需要为我们的应用授予什么权限吗?
【问题讨论】:
-
这个租户中的企业应用是
concept4.net吗?你能用租户 id 试试吗? -
是的,应用在concept4net下,使用tenant代替concept4.net,同样报错。
-
尝试去掉url中的
&prompt=consent参数。 -
顺便说一句,如果我使用不正确的域(除了 concept4.net)来获取代码,它会说我的帐户“需要更多信息”,如果我这样做是为了获取令牌,它会说我的应用程序在目录“xxx”中找不到
标签: azure oauth-2.0 active-directory