我们遵循以下代码中所述的Microsoft Code 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
然后我们遇到以下错误
{“错误”:“ invalid_grant”,“错误描述”:“ AADSTS65001:用户或管理员不同意使用ID为“ c4app2019”的ID的应用程序。为此用户和资源发送交互式授权请求。 \ r \ n跟踪ID:46424a2f-a3a2-45da-8902-888f5ca61c00 \ r \ n相关ID:49d0a6ad-e158-4bc9-97b8-a6391c6470bb \ r \ n时间戳:2019-12-11 07:51:31Z“,”错误代码“ :[65001],“时间戳”:“ 2019-12-11 07:51:31Z”,“ trace_id”:“ 46424a2f-a3a2-45da-8902-888f5ca61c00”,“ correlation_id”:“ 49d0a6ad-e158-4bc9-97b8 -a6391c6470bb“,” suberror“:” consent_required“}
您知道我们需要授予应用程序什么权限吗?
答案 0 :(得分:1)
我无法单方面再现您的问题。这是我的步骤供您参考。
1。创建具有User.Read
和profile
权限的应用程序。
2。由于我添加的权限不需要管理员同意,因此我可以在第一次登录时同意。
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=59437d85-46f8-409c-8211-b3db91a8b0e5
&response_type=code
&redirect_uri=http://localhost
&response_mode=query
&scope=https://graph.microsoft.com/User.Read
&state=12345
3。使用从步骤2获得的代码获取令牌
要找到您的问题,请提供屏幕截图,如step2(应用程序注册->您的应用程序-> API权限)。还有您用来获取代码/令牌的作用域的值。
答案 1 :(得分:0)
[附加测试1] 步骤1: 我创建了另一个使用较少API权限的应用,它存在相同的问题
得到
第3步:
似乎可行
Microsoft文档中获取代码和令牌的范围似乎不正确,或者需要一些其他权限。
答案 2 :(得分:0)
万一这对任何人都有用,我会使用Microsoft.Azure.Services.AppAuthentication.1.3.1程序包中的神奇AzureServiceTokenProvider类遇到相同的问题。很简单的代码
var tokenProvider = new AzureServiceTokenProvider();
string token = tokenProvider.GetAccessTokenAsync("https://mytenant.onmicrosoft.com/8a0bec0f-x-x-x-x").GetAwaiter().GetResult(); // Application ID URI
我的错误消息是
AADSTS65001:用户或管理员不同意使用ID为'd7813711-9094-4ad3-a062-cac3ec74ebe8'的应用程序。发送对此用户和资源的交互式授权请求。
我在Azure AD的任何地方都找不到此d7813711 guid。在研究了此类在反编译器中的工作方式之后,事实证明,当您不指定应用程序ID时,该类默认为该GUID。也许这个GUID对Azure中的所有租户都有效?要解决此问题,以便为您的应用程序获取令牌,只需将其添加为授权的客户端应用程序即可。
答案 3 :(得分:0)
我们也遇到了这个问题。我们已经将图形客户端更新为较新的版本。我们已完成以下步骤:
我希望这可以帮助某人进行故障排除。