当前位置: 首页 > 知识库问答 >
问题:

为什么Azure Portal突然要求注册应用的声明使用OpenID连接范围?

经嘉
2023-03-14

我在我工作的公司的Azure门户上注册了几个应用程序,它们有以下可选声明:email、family_name、given_name和upn。当我添加这些声明时,一切正常,没有错误或警告。注册的应用程序用于验证ASP.NET核心2.2应用程序。返回的ID令牌包含这些声明,我可以在我的应用程序中使用它们。

如果我在未选中该框的情况下按下Add,我会在“令牌配置”页面上收到该警告,并且仅针对< code >用户。读取权限被添加到API权限中。如果我选中它,警告会消失,会添加一个额外的< code >个人资料权限。

此弹出窗口和警告似乎是最近的事情,但我没有在那些注册的应用程序中更改任何内容。无论警告是否存在,我仍然在ID令牌中获得声明。事实上,Microsoft留档表示:Microsoft身份验证库(MSAL)当前在授权和令牌请求中默认指定offline_access、openid、配置文件和电子邮件。这意味着,对于默认情况,如果您显式指定这些权限,Azure AD可能会返回错误。这将解释为什么我仍然获得声明。

因此,我有这个警告,但一切都正常,如果我明确指定<code>profile</code>权限,Azure AD可能会返回错误。

我对AzureAD不太了解,我不确定是否应该在选中该框的情况下添加索赔。为什么这个警告开始出现?处理这个问题的最佳行动方案是什么?

共有1个答案

楚俊杰
2023-03-14

这可能是门户、文档和库团队未对齐的一个案例。如您所见,默认情况下,MSAL 库将这些 OIDC 权限添加到其令牌请求 API。

默认情况下,当MSAL请求这些权限时,为什么您没有在门户上添加的权限仍然被授予?答案是动态同意——一种Azure广告机制,允许您随时指定所需的权限。由于默认情况下库会请求这些权限,所以在您的情况下一切都很好。

我的建议是检查您使用的特定MSAL库的留档/存储库,看看他们是否建议显式添加它们(例如,在MSAL.js,这是留给开发人员的,无论哪种方式都可以)。如果是这样,也只需在门户上添加它们,然后删除警告。

 类似资料:
  • 问题内容: 我和一个朋友正在学习Java。今天,我们正在研究接口,并且讨论了如何使用接口。 我的朋友向我展示的示例代码包含以下内容: 其中 IVehicle 的是,公司在汽车和自行车两个类实现的接口。定义接受 IVehicle 作为参数的方法时,可以使用接口方法,并且在运行代码时,上述对象可以正常工作。但是,这在声明汽车和自行车时非常正常,就像通常这样: 因此,我的问题是-在声明和实例化 mode

  • 问题内容: 为什么我们要在Java类中声明一个接口? 例如: 问题答案: 当您想在对象中收集一些字段以强调概念时,可以创建一个外部类,也可以创建一个内部类(称为嵌套(静态)或内部)。 如果要强调这个合作类在原始对象使用之外完全没有意义(没有用)的事实,可以将其嵌套/内部。 因此,在处理某些层次结构时,可以描述一个“嵌套” ,它将由包装类的子类实现。 在JDK中,最显著的例子是内部接口中定义的接口,

  • 问题内容: 有时我们有几个类,这些类的某些方法具有相同的签名,但是与声明的Java接口不对应。例如,和(在中的其他几个 )中都有一个方法 现在,假设我希望对具有该方法的对象进行一些操作。然后,我想有一个接口(或者自己定义),例如 这样我可以写: 但是,可悲的是,我不能: 此演员表将是非法的。编译器 知道 这 是不是 一个,因为类没有宣布实现该接口...... 然而“实际上”实现它 。 有时这会带来

  • 问题内容: 在开始阅读之前:这个问题不是关于理解monad的问题,而是关于确定Java类型系统的局限性的,这会限制接口的声明。 在我的努力去理解单子我读这个由埃里克利珀SO- 答案上询问单子简单的解释问题。在那里,他还列出了可以在monad上执行的操作: 有一种方法可以将未放大类型的值转换为放大类型的值。 有一种方法可以将未放大类型的操作转换为遵循前面提到的功能组成规则的放大类型的操作 通常,有一

  • Cassandra要使用的连接URL是什么? jdbc:cassandra:root/root@:/

  • 问题内容: 我读到要使一个类在Java中不可变,我们应该执行以下操作: Do not provide any setters Mark all fields as private Make the class final标记为私有 为什么需要步骤3?我为什么要上课呢? 问题答案: 如果你不标记该类,那么我可能会突然使你看似不变的类真正变得可变。例如,考虑以下代码: 现在,假设我执行以下操作: 注意