用户或管理员未同意使用该应用程序 - 发送此用户和资源的交互式授权请求

时间:2016-10-18 13:31:07

标签: javascript c# azure asp.net-web-api dynamics-crm

我们正在进行this CRM Web API项目。该项目登录到Dynamics CRM在线实例并获取帐户列表。

登录似乎正常。 但是,帐户列表会出现以下错误:

  

AADSTS65001:用户或管理员未同意使用ID为“xxxx-xxxxx-xxxx-xxx”的应用程序。发送此用户和资源的交互式授权请求。   跟踪ID:e3b360d6-39fb-4e61-87d9-26531f30fd7b   相关ID:9b2cff0c-074e-44fe-a169-77c8061a7312   时间戳:2016-10-18 10:12:49Z

permissions are properly set

Azure permissions

有什么问题?

6 个答案:

答案 0 :(得分:29)

管理员必须同意这些权限。您应该向Azure AD发出包含参数prompt=admin_consent

的授权请求

与文档here一样,prompt参数可以包含3个值:login,consent或admin_consent。

因此,您应该转到https://login.microsoftonline.com/tenant-id/oauth2/authorize?client_id=app-client-id&redirect_uri=encoded-reply-url&response_type=code&prompt=admin_consent等网址。

tenant-id 替换为您的Azure AD租户ID /域名,或 common ,如果您的应用是多租户。将 app-client-id 替换为您应用的客户端ID。将 encoded-reply-url 替换为您应用的网址编码回复网址。

构建所需网址的一种更简单方法是进行身份验证,然后在点击Azure AD时抓取地址栏中的URL。然后只需将&prompt=admin_consent添加到网址。

编辑:随着Azure门户的最新更新,能够直接从门户网站授予权限。

如果您转到新门户网站中的Azure Active Directory,请在那里找到您的应用注册,然后单击所需权限刀片下的授予权限

New Grant Permissions button

答案 1 :(得分:2)

我在使用ADAL的本机应用程序中收到此错误。我已经给出了所有正确的权限,但已经收到了之前登录的令牌。我的问题是前一个令牌已过时且未包含更新的声明。对我来说,解决方案是根据下面的代码使用PromptBehavior.RefreshSession。

   AuthenticationResult result = await authenticationContext.AcquireTokenAsync(resourceId, clientId, redirectURI, new PlatformParameters(PromptBehavior.RefreshSession, false));

根据MSDN,PromptBehavior.RefreshSession“重新授权(通过显示webview)资源使用情况,确保生成的访问令牌包含更新的声明。如果用户登录cookie可用,则用户不会再次询问凭据,登录对话框将自动解除。“

答案 2 :(得分:2)

对我来说,这个错误突然发生,对于少数用户来说也是如此。

我的设置是,SPA应用尝试访问API。我从SPA应用注册中删除了API权限并再次添加。有效。

答案 3 :(得分:2)

根据Oauth V2.0。您无需重新发送Token API中的Scope参数即可生成刷新/访问令牌。您也无需在azure门户中手动指定范围,它会自动列出。

它是从您的auth_code继承的,您可以删除范围和请求,它应该可以工作,而且一旦对access_token进行解码,您就应该能够看到在授权过程中请求的相同范围

答案 4 :(得分:0)

授予所有权限。您会发现多个下拉菜单(例如您在屏幕截图中显示的下拉菜单)。

每个下拉项目都有多个复选框,引用不同的凭据。检查每一个,然后你就可以了。

答案 5 :(得分:0)

向Azure AD注册的应用程序发生错误(委派权限),需要用户或管理员同意才能获得所需的权限。

https://nishantrana.me/2020/12/01/fixed-aadsts65001-the-user-or-administrator-has-not-consented-to-use-the-application-with-id/