В чем разница между идентификатором объекта приложения AzureAAD и идентификатором приложения, есть ли конкретная причина, по которой оба они доступны пользователям? Есть ли вариант использования, когда ObjectId определенно требуется вместо ApplicationId?
Спасибо, это также проясняет мой вопрос о разнице между субъектом службы и приложением aad!
Рад слышать, будьте на связи и удачного кодирования!


Идентификатор приложения
ApplicationId будет одинаковым для одного объекта приложения, представляющего это приложение, а также для всех субъектов-служб, созданных для этого приложения.
Идентификатор объекта
ObjectId будет уникальным значением для объекта приложения и каждого субъекта-службы. Это однозначно идентифицирует объект в Azure AD. Это свойство, которое вы найдете во всех объектах Azure AD, таких как пользователь, группа или что-то еще в Azure AD.
Да тому много причин. Скажем, вам нужно знать о вашем субъект-служба вашего приложения, используя API-интерфейс Microsoft Graph. Вы не можете вызвать его напрямую.
Для этого вам нужно иметь resourceId в ответе, это object id целевого ресурса (субъекта-службы), для которого было сделано назначение.
Затем вызовите GET https://graph.microsoft.com/beta/servicePrincipals/, appId в ответе — это application id приложения AD.
Затем вызовите GET https://graph.microsoft.com/beta/applications, appId в ответе совпадает с appId, перенастроенным с помощью GET https://graph.microsoft.com/beta/servicePrincipals/. Тогда вы сможете соответствовать им.
Вот почему вам нужно разоблачить ApplicationId и ObjectId. Таким образом, есть много причин, по которым вам нужен этот идентификатор.
Вы также можете обратиться к упомянутому ресурсу, чтобы получить больше информации о ваших запросах здесь
Если у вас все еще есть какие-либо вопросы, не стесняйтесь задавать их здесь в комментариях. Спасибо.
Возможно ли, чтобы у одного человека (одно электронное письмо) были разные идентификаторы объектов?
Что это значит?
Ответ не ясен. «вы не можете вызвать это напрямую», вызвать что напрямую?
object Id нельзя вызывать напрямую, для получения информации о каждом зарегистрированном приложении нам необходимо использовать Application (client) ID. Надеюсь, это разрешит ваше замешательство. Тем не менее, если у вас есть еще какие-либо опасения, не стесняйтесь, дайте мне знать. Спасибо
Регистрация приложения в Azure AD приводит к созданию объекта Заявление. Все объекты в Azure AD имеют идентификатор объекта. Когда вы делаете запрос API для обращения к конкретному объекту Заявление, вы должны использовать идентификатор объекта:
GET https://graph.windows.net/{tenant-id}/applications/{object-id}?api-version=1.6
Идентификатор объекта объекта Заявление актуален только в том же клиенте, где зарегистрировано приложение, и используется только для идентификации этого объекта.
Атрибут appId объектов Заявление используется между арендаторами и для нескольких типов объектов. Есть два основных варианта использования:
client_id в OAuth 2.0 и OpenID Connect).
Взгляните, я надеюсь, вы получите правильное представление о. Тем не менее, если у вас есть какие-либо вопросы, не стесняйтесь задавать их здесь в комментариях.