我们遵循Microsoft Code授权流的OAuth2的v2,如下所述,
https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
在Microsoft Azure下的应用程序注册中创建应用程序后,尝试从以下url获取代码
https://log in . Microsoft online . com/concept 4 . net/oauth 2/v 2.0/authorize?客户端id=
然后我们得到了下面的错误
{"error":"invalid_grant "," error _ description ":" aadsts 65001:用户或管理员不同意使用名为' c4app2019 '的id为''的应用程序。为此用户和资源发送交互式授权请求。\ r \ n跟踪ID:46424 a2f-a3 a2-45da-8902-888 F5 ca 61 c 00 \ r \ n相关ID:49 d0a 6 ad-e158-4 BC 9-97b 8-a 6391 c 6470 bb \ r \ n时间戳:2019-12-11 07:51:31Z "," error_codes":[65001],"时间戳":" 2019-12-11
知道我们需要向应用程序授予什么权限吗?
[附加测试 1]步骤1:我创建了另一个使用较少API权限的应用程序,该应用程序具有相同的问题
步骤2:通过以下url获取代码https://login.microsoftonline.com/concept4.net/oauth2/v2.0/authorize?client_id=15bf7752-…-c51cd145174c
并得到了
第 3 步:
似乎在工作
似乎 Microsoft 文档中用于获取代码和令牌的范围不正确或需要一些额外的权限。
如果它对任何人都有帮助,我使用Microsoft. Azure. Services. App身份验证.1.3.1包中神奇的AzureServiceToken提供者类遇到了同样的问题。非常简单的代码
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中的租户之间有效?要解决此问题以便为您的应用获取令牌,只需将其添加为授权的客户端应用程序。
我无法在我这边重现您的问题。以下是我的步骤供您参考。
1.创建具有用户. read
和配置文件
权限的应用程序。
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中获得的代码来获得令牌
要查找您的问题,请提供步骤2(应用程序注册-
我正在尝试使用 Postman 进行身份验证以获取 Azure AD 持有者令牌,然后将令牌发送到我的本地 WebApi .net Core 服务器,该服务器应验证令牌并将请求发送到图形 API。但是在过去的几个小时里,我被这个错误困住了。 Microsoft.Identity.Client.MsalUiRequiredException: AADSTS65001:用户或管理员不同意使用ID 为“
我正在尝试使用 Postman 向 PowerBi API 发送请求以执行 sth,但我无法获取它的令牌并收到以下错误: 然后我试着回答这个问题,这个问题建议先授权。我得到的结果是一个HTML页面,而不是代码。 我已经提供了此操作所需的所有权限,但没有授予管理员权限,据我所知,这在这里是不必要的。 我还增加了邮差作为重定向URI。 张贴这些图像,因为我怀疑这里可能有问题。
我们正在尝试使用官方文档请求获取Oauth的令牌: 但是当我们发出请求时,它会响应此错误: 问题是,即使在管理员同意的情况下,我们已经在Azure门户AD和应用注册上授予了他们此权限,但仍然: 那里缺少任何权限吗?,对此有任何线索吗?
“AADSTS65001:用户或管理员未同意使用ID为<'My native client app ID'>的应用程序。请为此用户和资源发送交互式授权请求。 我们使用,是本机应用程序id,是Web API应用程序URI。 权限方面,已从客户端应用程序授予了访问api应用程序的委托权限,并尝试在清单中设置。
在我的java web应用程序中,我想通过使用jakarta邮件访问用户的邮箱。为此,我跟随https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth用于OAuth2授权代码流。
我正在尝试授权我的多租户saas Web应用程序与Office 365帐户通信。嗯,显然我的应用程序需要管理员同意,因为权限,所以我必须实现它。 但我也希望用户也同意,这样他就可以进入他的帐户并在管理员同意后单击“授权”。 我该如何实现?已经有一个授权流,但它只是授权每个用户(当时完全不知道管理员同意的想法)。当非管理员尝试授权其帐户时,他会收到错误“此操作只能由管理员执行”。当管理员完成此操作时