技术查询:某些服务主要功能背后的原因
Technical Query : Reason behind some Service principal features
最近观察到可以在 Azure AD 中创建多个具有相同名称的服务主体:
注意:它们的clientId 不同但名称相同。这反过来会在 Azure SQL 中创建用户时产生问题。
那么在 AAD 中允许同名 App ID 的原因是什么?
此外,通过企业应用程序查找和通过应用程序注册查看时,相同的客户端 ID 具有不同的 objectid。
是否因为企业应用程序是所有托管身份、服务主体等的联合体,企业应用程序的 objectid 创建与应用程序注册不同。
So any reason why same name App Ids are allowed in AAD?
Azure 中的服务主体和用户 SQL 是完全不同的东西。我不认为一个是对另一个的参考。他们是这样设计的。
一般来说,当一个字段的值不允许重复时,就意味着它是唯一的。我对Azure不熟悉SQL,但应该遵循这个原则。
为什么 Azure 允许相同的服务主体名称?这是设计使然。在常见的场景中,我们主要是根据它的object id来识别唯一性,它是全局唯一的标识。请不要将名称作为查找服务主体的唯一条件。
从设计的角度来看,我们确实不应该创建两个同名的服务主体。可惜Azure对此没有限制
Also, a same client ID has different objectid when looked up via
Enterprise applications and when seen via App registrations.
企业应用和关联的应用注册是两个不同的对象,因此它们具有不同的对象 ID。
application id其实就是app注册的唯一标识。它也只是在企业应用程序中显示。
可以看到Service Principal properties:
appId String The unique identifier for the associated application (its
appId property).
appId String The unique identifier for the application that is
assigned to an application by Azure AD. Not nullable. Read-only.
最近观察到可以在 Azure AD 中创建多个具有相同名称的服务主体:
注意:它们的clientId 不同但名称相同。这反过来会在 Azure SQL 中创建用户时产生问题。 那么在 AAD 中允许同名 App ID 的原因是什么?
此外,通过企业应用程序查找和通过应用程序注册查看时,相同的客户端 ID 具有不同的 objectid。
是否因为企业应用程序是所有托管身份、服务主体等的联合体,企业应用程序的 objectid 创建与应用程序注册不同。
So any reason why same name App Ids are allowed in AAD?
Azure 中的服务主体和用户 SQL 是完全不同的东西。我不认为一个是对另一个的参考。他们是这样设计的。
一般来说,当一个字段的值不允许重复时,就意味着它是唯一的。我对Azure不熟悉SQL,但应该遵循这个原则。
为什么 Azure 允许相同的服务主体名称?这是设计使然。在常见的场景中,我们主要是根据它的object id来识别唯一性,它是全局唯一的标识。请不要将名称作为查找服务主体的唯一条件。
从设计的角度来看,我们确实不应该创建两个同名的服务主体。可惜Azure对此没有限制
Also, a same client ID has different objectid when looked up via Enterprise applications and when seen via App registrations.
企业应用和关联的应用注册是两个不同的对象,因此它们具有不同的对象 ID。
application id其实就是app注册的唯一标识。它也只是在企业应用程序中显示。
可以看到Service Principal properties:
appId String The unique identifier for the associated application (its appId property).
appId String The unique identifier for the application that is assigned to an application by Azure AD. Not nullable. Read-only.