Получение объекта servicePrincipal
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Получение свойств и связей объекта servicePrincipal.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | Application.Read.All | Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
Приложение | Application.Read.All | Application.ReadWrite.OwnedBy, Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All |
Примечание.
- Субъект-служба может получить сведения о собственном приложении и субъекте-службе без предоставления разрешений приложения.
- Разрешение Application.ReadWrite.OwnedBy позволяет приложению вызывать
GET /applications
иGET /servicePrincipals
выводить список всех приложений и субъектов-служб в клиенте. Это область доступа разрешено для разрешения. - Чтобы прочитать свойство customSecurityAttributes , выполните следующие действия:
- В делегированных сценариях администратору должна быть назначена роль администратора назначения атрибутов , а приложению — делегированное разрешение CustomSecAttributeAssignment.Read.All .
- В сценариях только для приложений, использующих разрешения Microsoft Graph, приложению должно быть предоставлено разрешение CustomSecAttributeAssignment.Reade.All .
HTTP-запрос
Вы можете обратиться к субъекту-службе, используя его идентификатор или appId. Id и appId называются идентификатором объекта и идентификатором приложения (клиента) соответственно в регистрациях приложений в Центр администрирования Microsoft Entra.
GET /servicePrincipals/{id}
GET /servicePrincipals(appId='{appId}')
Необязательные параметры запросов
Этот метод поддерживает $select
параметры запроса OData и $expand
для настройки ответа.
Этот метод поддерживает $count
параметры запроса OData , $expand
$filter
, $orderby
, $search
, $select
, и $top
для настройки ответа. Некоторые запросы поддерживаются только при использовании заголовка ConsistencyLevel с присвоенным значением eventual
и $count
. Дополнительные сведения см. в разделе Расширенные возможности запросов к объектам каталогов.
По умолчанию этот API не возвращает значение открытого ключа key в свойстве keyCredentials, если в запросе $select
не указан параметр keyCredentials.
Например, $select=id,appId,keyCredentials
.
При использовании $select
с целью получения keyCredentials для субъектов-служб применяется ограничение регулирования в количестве 150 запросов в минуту для каждого клиента.
Заголовки запросов
Имя | Описание |
---|---|
Авторизация | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
Принять-Язык | Код языка. Необязательное свойство. |
Предоставление заголовка Accept-Language с поддерживаемым кодом языка, например es-ES
или de-DE
, приведет к возврату локализованных значений там, где они доступны. Обратите внимание, что заголовок не поддерживается для операций перечисления.
Текст запроса
Не указывайте текст запроса для этого метода.
Отклик
В случае успеха этот метод возвращает код отклика 200 OK
и объект servicePrincipal в тексте отклика.
Примеры
Пример 1. Получение свойств указанного субъекта-службы
Запрос
Ниже показан пример запроса.
GET https://graph.microsoft.com/beta/servicePrincipals/{id}
Отклик
Ниже показан пример отклика.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"id": "59e617e5-e447-4adc-8b88-00af644d7c92",
"deletedDateTime": null,
"accountEnabled": true,
"appDisplayName": "My App",
"appId": "65415bb1-9267-4313-bbf5-ae259732ee12",
"applicationTemplateId": null,
"appOwnerOrganizationId": "1bc1c026-2f7b-48a5-98da-afa2fd8bc7bc",
"appRoleAssignmentRequired": false,
"disabledByMicrosoftStatus": null,
"displayName": "foo",
"errorUrl": null,
"homepage": null,
"loginUrl": null,
"logoutUrl": null,
"notificationEmailAddresses": [],
"preferredSingleSignOnMode": null,
"preferredTokenSigningKeyEndDateTime": null,
"preferredTokenSigningKeyThumbprint": null,
"publisherName": "Contoso",
"replyUrls": [],
"samlMetadataUrl": null,
"samlSingleSignOnSettings": null,
"servicePrincipalNames": [
"f1bd758f-4a1a-4b71-aa20-a248a22a8928"
],
"signInAudience": "AzureADandPersonalMicrosoftAccount",
"tags": [],
"verifiedPublisher": {
"displayName": "publisher_contoso",
"verifiedPublisherId": "9999999",
"addedDateTime": "2021-04-24T17:49:44Z"
},
"addIns": [],
"api": {
"resourceSpecificApplicationPermissions": []
},
"appRoles": [],
"info": {
"termsOfServiceUrl": null,
"supportUrl": null,
"privacyStatementUrl": null,
"marketingUrl": null,
"logoUrl": null
},
"keyCredentials": [],
"publishedPermissionScopes": [],
"passwordCredentials": []
}
Пример 2. Получение субъекта-службы с помощью его appId и только определенных свойств
Запрос
Ниже показан пример запроса.
GET https://graph.microsoft.com/beta/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')?$select=id,appId,displayName,appRoles,publishedPermissionScopes,resourceSpecificApplicationPermissions
Отклик
Ниже показан пример отклика.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(id,appId,displayName,appRoles,publishedPermissionScopes)/$entity",
"id": "7408235b-7540-4850-82fe-a5f15ed019e2",
"appId": "00000003-0000-0000-c000-000000000000",
"displayName": "Microsoft Graph",
"appRoles": [
{
"allowedMemberTypes": [
"Application"
],
"description": "Allows the app to read all class assignments without grades for all users without a signed-in user.",
"displayName": "Read all class assignments without grades",
"id": "6e0a958b-b7fc-4348-b7c4-a6ab9fd3dd0e",
"isEnabled": true,
"origin": "Application",
"value": "EduAssignments.ReadBasic.All"
}
],
"publishedPermissionScopes": [
{
"adminConsentDescription": "Allows the app to see your users' basic profile (e.g., name, picture, user name, email address)",
"adminConsentDisplayName": "View users' basic profile",
"id": "14dad69e-099b-42c9-810b-d002981feec1",
"isEnabled": true,
"type": "User",
"userConsentDescription": "Allows the app to see your basic profile (e.g., name, picture, user name, email address)",
"userConsentDisplayName": "View your basic profile",
"value": "profile"
}
]
}
Пример 3. Получение назначений настраиваемых атрибутов безопасности указанного субъекта-службы
В следующем примере выполняется получение настраиваемых атрибутов безопасности указанного субъекта-службы.
Атрибут №1
- Набор атрибутов:
Engineering
- Атрибут:
Project
- Тип данных атрибута: коллекция строк
- Значение атрибута:
["Baker","Cascade"]
Атрибут №2
- Набор атрибутов:
Engineering
- Атрибут:
CostCenter
- Тип данных атрибута: коллекция целых чисел
- Значение атрибута:
[1001]
Атрибут №3
- Набор атрибутов:
Engineering
- Атрибут:
Certification
- Тип данных атрибута: логический
- Значение атрибута:
true
Атрибут №4
- Набор атрибутов:
Marketing
- Атрибут:
Level
- Тип данных атрибута: строка
- Значение атрибута:
"Public"
Чтобы получить назначения настраиваемых атрибутов безопасности, вызывающему субъекту должна быть назначена роль читателя назначения атрибутов или администратора назначения атрибутов, а также должно быть предоставлено разрешение CustomSecAttributeAssignment.Read.All или CustomSecAttributeAssignment.ReadWrite.All.
Запрос
GET https://graph.microsoft.com/beta/servicePrincipals/{id}?$select=customSecurityAttributes
Отклик
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(customSecurityAttributes)/$entity",
"customSecurityAttributes": {
"Engineering": {
"@odata.type": "#microsoft.graph.customSecurityAttributeValue",
"Project@odata.type": "#Collection(String)",
"Project": [
"Baker",
"Cascade"
],
"CostCenter@odata.type": "#Collection(Int32)",
"CostCenter": [
1001
],
"Certification": true
},
"Marketing": {
"@odata.type": "#microsoft.graph.customSecurityAttributeValue",
"Level": "Public"
}
}
}
Если субъекту-службе не назначены настраиваемые атрибуты безопасности или у вызывающего субъекта нет прав доступа, отклик будет выглядеть указанным ниже образом.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(customSecurityAttributes)/$entity",
"customSecurityAttributes": null
}