【问题标题】:InteractionRequiredAuthError: AADSTS65001: The user or administrator has not consented to use the application with IDInteractionRequiredAuthError: AADSTS65001: 用户或管理员未同意使用带有 ID 的应用程序
【发布时间】:2021-05-15 17:05:48
【问题描述】:

尝试在 Azure 中创建一个简单的 SPA 并调用一个 Rest API,我收到 InteractionRequiredAuthError: AADSTS65001: The user or administrator has not agreeed to use the application with ID 'xxx' named 'MySpaApp'。为此用户和资源发送交互式授权请求。

做了以下事情:

注册了 REST Api 应用 为 MyRestApi.Tasks.Get 添加了权限,它的状态是为我的用户授予 为 Tasks.Get 添加了范围 使用 SPA 应用程序的客户端 ID 添加了一个客户端应用程序

注册SPA应用 URI 是 http://localhost 隐式授权和混合流: 检查访问令牌 已检查 ID 令牌 支持的帐户类型:任何组织目录 API 权限,添加了 MyRestApi.Tasks.Get

在企业应用程序 MySpaApp 中,单击为我的用户授予管理员同意

返回 MySpaApp,并确认 Tasks.Get 已被授予

从 MySpaApp 中,如果我使用“Tasks.Get”调用 msal.acquireTokenSilent 作为范围,我会得到: 用户或管理员未同意使用名为“MySpApp”的 ID 为“xxx”的应用程序。为此用户和资源发送交互式授权请求。

如果我以“User.Read”为范围调用 msal.acquireTokenSilent,我会取回一个令牌。

关于故障排除的任何其他想法?

【问题讨论】:

  • 您的scope 是否设置为:api://{api app client id}/Tasks.Get
  • 所以我发现如果我在SPA注册中创建任意范围名称(暴露一个API),我可以通过在请求中指定该范围来获取令牌。但是,如果我尝试使用与 API 权限名称相同的名称创建范围(在公开 API 中),则会收到“重复值”错误。那么,在一个 App 中,你不能有一个与权限同名的范围??
  • 好的,我想就是这样!谢谢!我在请求中使用了 SPA 客户端 ID,将其更改为 REST API 客户端 ID,它现在可以正常工作,或者至少更进一步。现在,当我调用 REST API 方法时,我正在处理 401。
  • 你能问一个新问题吗?最好附上您的代码并将我链接到您的新问题。我会为你解决401问题。不要忘记解析您的访问令牌并将其附加到问题中。
  • 谢谢,但我也解决了 401 问题。结果在自定义 REST API 的 appsettings.json 中,在“AzureAd”元素中,“ClientId”应该是 REST API 的 AppId。

标签: azure-active-directory


【解决方案1】:

试试我的方法:

在 Azure 中注册一个 SPA 并检查 id tokenaccess token

然后注册一个REST Api应用并暴露该api,然后将spa应用的client id添加到REST Api应用中。

接下来,转到 spa 应用程序。

  • 在“API 权限”下单击“添加权限”,然后单击 “我的 API”标签。
  • 找到您的 api 应用程序并选择范围。
  • 点击“添加权限”。
  • 授予管理员同意。

然后使用浏览器中的隐式流来获取token。

https://login.microsoftonline.com/{tenant id}/oauth2/v2.0/authorize?
client_id={client_id}
&response_type=id_token token
&redirect_uri={redirect_uri}
&scope=openid api://{api app client id}/{scope name}
&response_mode=fragment
&state=12345
&nonce=678910

解析令牌:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2020-01-06
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多