1

我在尝试获取我们的某个API的访问密钥时遇到了错误。 “AADSTS65001:用户或管理员尚未同意使用ID为‘{GUID}’获取访问令牌和登录时出现Azure AD错误

首先我试图登录时提示=同意的申请,以为我有这样的过程中未提示的新同意登录,并且出现以下错误: “AADSTS65005:应用程序'{GUID}'要求获得访问已被移除或不再可用资源的权限。然而,联系应用程序供应商。” 我删除提示=同意,并开始在Azure中的权限摆弄现在我被困在了同样的错误。

我改变了这一切回来,因为它是,但我仍然得到错误,这只是发生在我的用户其他人仍然可以登录没有问题

所以我的问题,实际上是两个部分:。

  1. 试图获得API的访问令牌时,第一个错误 不知何故我需要经过同意提示用户,但我使用的是使用as的adal.js使用不可见的iframe无声检索密钥。我希望在用户登录到Web应用程序时获得同意。 这可能吗?

  2. 我的用户无法再登录到我们的网络应用程序。其他人都可以,任何人都遇到过这个?

该产品是SPA Web应用程序写在反应,我们使用adal.js(阿达尔香草)作为认证天青广告库。

更新 终于得到了一些东西的工作。不是所有的方式,但至少它是一个开始。

  1. 问题在于,在其他租户(这是多租户应用程序)上注册的用户不同意使用该API。这些用户得到错误。不过,我在同一个租户上注册了一个用户,一切都按预期工作。
  2. 问题二通过删除所有权限并逐个添加并在其间测试来解决。不知怎的,这在经过两三次尝试后才奏效。

现在的问题是,其他租户的用户没有得到同意提示访问该API。

+0

你试过提示= admin_consent? – juunas

+0

是的,我已经尝试提示= admin_consent和promt =同意。可悲的是,既不修复任何错误。 – Fralle

回答

0

不知怎的,这个问题得到了固定,我不是100%确定如何或为何但是这里是我进行的,如果有人发现自己在一个类似的情况来解决它的步骤:

  1. 确保所有的权限是正确的(API添加委派权限的客户端)
  2. 所有服务(Web应用程序的API &)的多租户
  3. 更新清单与:

"availableToOtherTenants": true, 
 
    "knownClientApplications": [ 
 
    "{client app application id}" 
 
    ],
(availableToOtherTenants是因为即使是在设置标记为多租户的API假)

0

同意可能可以通过prompt = admin_consent进行修复。

至于第二个问题,您可以将您的网络应用程序作为API的已知客户端应用程序添加为。当用户通过网络应用认证时,这将允许同时同意。

为此,请在Azure门户的Azure AD刀片中找到API应用注册。然后打开其清单(应用程序刀片上有一个清单按钮)。应该有一个“knownClientApplications”属性。将网络应用程序的客户端ID添加到数组中并保存清单。

E.g.:

"knownClientApplications": [ 
    "bda6ffff-ffff-ffff-ffff-ffff8bf8c57f" 
], 
+0

Manifest似乎修复它,至少为新用户,获取令牌获取和api调用通过200响应。 但是,当我尝试注销并重新用同一个用户登录。这在提取访问令牌时提示错误消息: “AADSTS65001:用户或管理员尚未同意使用ID为{GUID}的应用程序发送对此用户和资源的交互式授权请求。 – Fralle

+0

如果您尝试再次通过提示=同意,它也应提示您同意API。 – juunas

+0

我添加了提示=同意,我得到: “AADSTS65005:应用程序'{GUID}要求访问已被删除或不再可用的资源的权限,请与应用程序供应商联系。 试图登录时。 – Fralle

相关问题