Upsert servicePrincipal

Пространство имен: microsoft.graph

Создайте новый объект servicePrincipal , если он не существует, или обновите свойства существующего объекта servicePrincipal .

Этот API также может создать объект agentIdentityBlueprintPrincipal из agentIdentityBlueprint , если он не существует, или обновить свойства существующего agentIdentityBlueprintPrincipal, если свойство @odata.type имеет значение #microsoft.graph.agentIdentityBlueprintPrincipal.

Важно!

Добавление passwordCredential при создании объектов servicePrincipal не поддерживается. Используйте метод addPassword, чтобы добавлять пароли и секреты для servicePrincipal.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

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

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) Application.ReadWrite.All Directory.ReadWrite.All
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение Application.ReadWrite.OwnedBy Application.ReadWrite.All, Directory.ReadWrite.All

Важно!

Для делегированного доступа с использованием рабочих или учебных учетных записей администратору должна быть назначена поддерживаемая Microsoft Entra роль или пользовательская роль, которая предоставляет разрешения, необходимые для этой операции. Эта операция поддерживает следующие встроенные роли, которые предоставляют только минимальные необходимые привилегии:

  • Для мультитенантных приложений:
    • Администратор приложения
    • Администратор облачного приложения
  • Для однотенантных приложений, в которых вызывающий пользователь является пользователем без прав администратора, но владельцем резервного приложения, у пользователя должна быть роль разработчика приложений .

В делегированных сценариях с использованием рабочих или учебных учетных записей для управления удостоверениями агента и субъектами схемы удостоверений агента поддерживаются следующие привилегии:

  • Вошедшего пользователя является владельцем или
  • Вошедшего пользователя назначается роль администратора идентификаторов агента .

HTTP-запрос

PATCH /servicePrincipals(appId='appId')

Заголовки запросов

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Content-Type application/json. Обязательный параметр.
Prefer create-if-missing. Требуется для поведения upsert, в противном случае запрос обрабатывается как операция обновления.

Текст запроса

Предоставьте в тексте запроса описание объекта servicePrincipal в формате JSON.

Отклик

Если servicePrincipal или agentIdentityBlueprintPrincipal с appId не существует, этот метод возвращает 201 Created код отклика и новый объект servicePrincipal или agentIdentityBlueprintPrincipal в теле ответа.

Если servicePrincipal или agentIdentityBlueprintPrincipal с appId уже существует, этот метод обновляет объект servicePrincipal или agentIdentityBlueprintPrincipal и возвращает 204 No Content код ответа.

Примеры

Пример 1. Создание нового servicePrincipal, если он не существует

В следующем примере создается servicePrincipal, так как servicePrincipal с указанным значением appId не существует.

Запрос

Ниже показан пример запроса.

PATCH https://graph.microsoft.com/v1.0/servicePrincipals(appId='65415bb1-9267-4313-bbf5-ae259732ee12')
Content-type: application/json
Prefer: create-if-missing

{
  "displayName": "My app instance"
}

Отклик

Ниже показан пример отклика.

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals/$entity",
    "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,
    "displayName": "My app instance",
    "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": [],
    "addIns": [],
    "api": {
        "resourceSpecificApplicationPermissions": []
    },
    "appRoles": [],
    "info": {
        "termsOfServiceUrl": null,
        "supportUrl": null,
        "privacyStatementUrl": null,
        "marketingUrl": null,
        "logoUrl": null
    },
    "keyCredentials": [],
    "publishedPermissionScopes": [],
    "passwordCredentials": []
}

Пример 2. Обновление существующего servicePrincipal

В следующем примере обновляется servicePrincipal, так как существует servicePrincipal с указанным значением appId .

Запрос

Ниже показан пример запроса.

PATCH https://graph.microsoft.com/v1.0/servicePrincipals(appId='65415bb1-9267-4313-bbf5-ae259732ee12')
Content-type: application/json
Prefer: create-if-missing

{
  "displayName": "My app instance"
}

Отклик

Ниже приводится пример отклика.

HTTP/1.1 204 No Content