В чем разница между идентификатором объекта приложения Azure AAD и идентификатором приложения?

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

Взгляните, я надеюсь, вы получите правильное представление о. Тем не менее, если у вас есть какие-либо вопросы, не стесняйтесь задавать их здесь в комментариях.

Md Farid Uddin Kiron 09.04.2019 05:32

Спасибо, это также проясняет мой вопрос о разнице между субъектом службы и приложением aad!

Yituo 09.04.2019 19:18

Рад слышать, будьте на связи и удачного кодирования!

Md Farid Uddin Kiron 10.04.2019 02:50
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
5
3
9 721
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Идентификатор приложения

ApplicationId будет одинаковым для одного объекта приложения, представляющего это приложение, а также для всех субъектов-служб, созданных для этого приложения.

Идентификатор объекта

ObjectId будет уникальным значением для объекта приложения и каждого субъекта-службы. Это однозначно идентифицирует объект в Azure AD. Это свойство, которое вы найдете во всех объектах Azure AD, таких как пользователь, группа или что-то еще в Azure AD.

  1. Есть ли конкретная причина, по которой оба выставлены пользователям?
  2. Есть ли вариант использования, когда ObjectId определенно требуется вместо ApplicationId?

Да тому много причин. Скажем, вам нужно знать о вашем субъект-служба вашего приложения, используя 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. Таким образом, есть много причин, по которым вам нужен этот идентификатор.

Вы также можете обратиться к упомянутому ресурсу, чтобы получить больше информации о ваших запросах здесь

Если у вас все еще есть какие-либо вопросы, не стесняйтесь задавать их здесь в комментариях. Спасибо.

Возможно ли, чтобы у одного человека (одно электронное письмо) были разные идентификаторы объектов?

Kostya Vyrodov 04.06.2020 16:36

Что это значит?

Md Farid Uddin Kiron 04.06.2020 17:20

Ответ не ясен. «вы не можете вызвать это напрямую», вызвать что напрямую?

SijuMathew 11.11.2020 11:02
object Id нельзя вызывать напрямую, для получения информации о каждом зарегистрированном приложении нам необходимо использовать Application (client) ID. Надеюсь, это разрешит ваше замешательство. Тем не менее, если у вас есть еще какие-либо опасения, не стесняйтесь, дайте мне знать. Спасибо
Md Farid Uddin Kiron 11.11.2020 11:11

Регистрация приложения в Azure AD приводит к созданию объекта Заявление. Все объекты в Azure AD имеют идентификатор объекта. Когда вы делаете запрос API для обращения к конкретному объекту Заявление, вы должны использовать идентификатор объекта:

GET https://graph.windows.net/{tenant-id}/applications/{object-id}?api-version=1.6

Идентификатор объекта объекта Заявление актуален только в том же клиенте, где зарегистрировано приложение, и используется только для идентификации этого объекта.

Атрибут appId объектов Заявление используется между арендаторами и для нескольких типов объектов. Есть два основных варианта использования:

  1. Чтобы идентифицировать приложение в различных потоках входа и токенов (например, client_id в OAuth 2.0 и OpenID Connect).
  2. Для уникальной идентификации резервного объекта Заявление объекта ServicePrincipal. (Думайте об объекте ServicePrincipal как об «экземпляре» приложения в данном клиенте Azure AD.)

Другие вопросы по теме