AzureAAD App ObjectId和ApplicationId之间有什么区别,是否有特定的原因使两者都暴露给用户?是否存在用例上绝对需要ApplicationId上需要ObjectId的情况?
答案 0 :(得分:3)
Azure AD中的应用程序注册会导致一个 Application 对象。 Azure AD中的所有对象都有一个对象ID。当您发出API请求以寻址特定的 Application 对象时,应使用对象ID:
GET https://graph.windows.net/{tenant-id}/applications/{object-id}?api-version=1.6
Application 对象的对象ID仅与注册该应用程序的同一租户相关,并且仅用于标识该对象。
Application 对象的appId
属性在租户中使用,并且在多个对象类型上使用。有两个主要用途:
client_id
)来标识应用。答案 1 :(得分:1)
应用ID
ApplicationId
对于表示该应用程序的单个应用程序对象将是相同的,并且对于为此应用程序创建的所有服务主体也将相同。
对象ID
ObjectId
将是应用程序对象和每个服务主体的唯一值。这可以唯一标识Azure AD中的对象。您将在所有Azure AD对象中找到该属性,甚至包括用户,组或任何其他具有Azure AD的对象
是的,原因有很多。假设,您需要使用service principal了解应用程序的Microsoft Graph API。您不能直接调用它。
为此,您需要在响应中包含resourceId
,是为其进行分配的目标资源(服务主体)的object id
。
然后调用GET https://graph.microsoft.com/beta/servicePrincipals/,响应中的appId
是AD App的application id
。
然后调用GET https://graph.microsoft.com/beta/applications,响应中的appId
与GET https://graph.microsoft.com/beta/servicePrincipals/重新调整的appId
相同。然后,您可以匹配它们。
这就是为什么您需要公开ApplicationId
和ObjectId
的原因。像这样,您需要这些ID的原因很多。
您还可以参考提到的资源以进一步了解您的查询here
如果您还有任何问题,请随时在此处发表评论。谢谢。