В чем разница между ObjectId приложения Azure AAD и ApplicationId? - PullRequest
1 голос
/ 09 апреля 2019

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

Ответы [ 2 ]

3 голосов
/ 09 апреля 2019

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

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

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

Атрибут Приложения appId объектов используется для всех арендаторов и более чем для одного объекта.тип.Существует два основных варианта использования:

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

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

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

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

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

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

Да, есть много причин этого. Допустим, вам нужно знать о субъекте службы вашего приложения, используя Microsoft Graph API . Вы не можете позвонить прямо.

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...