Поделиться через


Upsert servicePrincipal

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

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

Важно!

Добавление 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 с appId не существует, этот метод возвращает код отклика 201 Created и новый объект servicePrincipal в теле отклика.

Если servicePrincipal с appId уже существует, этот метод обновляет объект servicePrincipal и возвращает 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