【问题标题】:Technical Query : Reason behind some Service principal features技术查询:某些服务主体功能背后的原因
【发布时间】:2021-02-15 06:40:48
【问题描述】:

最近观察到可以在 Azure AD 中创建多个同名的服务主体:

注意:它们有不同的 clientIds 但名称相同。这反过来又会在 Azure SQL 中创建用户时产生问题。 那么在 AAD 中允许使用同名 App Id 的任何原因?

此外,通过企业应用程序查找和通过应用程序注册查看时,相同的客户端 ID 具有不同的 objectid。

是不是因为企业应用程序是所有托管身份、服务主体等的联合体,所以企业应用程序的 objectid 创建与应用程序注册不同。

【问题讨论】:

    标签: azure-active-directory azure-service-principal


    【解决方案1】:

    那么,为什么 AAD 中允许使用同名的 App Id?

    Azure SQL 中的服务主体和用户是完全不同的东西。我不认为一个是对另一个的参考。他们是这样设计的。

    一般来说,当一个字段的值不允许重复时,就意味着它是唯一的。我不熟悉 Azure SQL,但应该遵循这个原则。

    为什么 Azure 允许相同的服务主体名称?这是设计使然。在常见的场景中,我们主要根据它的object id来识别唯一性,它是全局唯一的标识符。请不要将名称作为查找服务主体的唯一条件。

    从设计的角度来看,我们确实不应该创建两个同名的服务主体。可惜Azure没有限制这个。

    此外,相同的客户端 ID 在通过以下方式查找时具有不同的 objectid 企业应用程序以及通过应用程序注册查看时。

    企业应用和关联的应用注册是两个不同的对象,因此它们具有不同的对象 ID。

    应用程序id实际上是应用程序注册的唯一标识符。它也只是显示在企业应用程序中。

    你可以看到Service Principal properties

    appId String 关联应用程序的唯一标识符(其 appId 属性)。

    还有Application Properties

    appId String 应用程序的唯一标识符 Azure AD 分配给应用程序。不可为空。只读。

    【讨论】:

    • 嘿@AllenWu,谢谢你的回复。还有一个查询:AppName 注册后是否可以更新?
    • @Nandan 是的。您可以使用 Microsoft Graph 更新应用名称:docs.microsoft.com/en-us/graph/api/…。使用Microsoft Graph explorer 进行快速测试。您也可以编辑应用注册的清单文件,直接修改名称。
    猜你喜欢
    • 2010-11-03
    • 2015-07-31
    • 2010-11-19
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2011-01-01
    • 1970-01-01
    相关资源
    最近更新 更多