Обновление servicePrincipal

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

Обновление свойств объекта servicePrincipal. Этот API также может обновлять объект agentIdentityBlueprintPrincipal , если свойству @odata.type присвоено значение #microsoft.graph.agentIdentityBlueprintPrincipal, или объект agentIdentity , если свойству @odata.type присвоено значение #microsoft.graph.agentIdentity.

Важно!

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

  • Субъекты-службы наследуют определенные свойства от связанных регистраций приложений. Эти свойства синхронизируются с момента регистрации приложения, но синхронизация не является немедленной или непрерывной. Иногда обновление субъекта-службы может вызвать в каталоге обновление свойств из регистрации приложения, что приводит к обновлениям, которые не были частью исходного запроса.

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

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

Разрешения

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

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

Важно!

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

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

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

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

Разрешения для определенных сценариев

  • Чтобы обновить свойство customSecurityAttributes , выполните следующие действия.
    • В делегированных сценариях администратору должна быть назначена роль администратора назначения атрибутов , а приложению должно быть предоставлено делегированное разрешение CustomSecAttributeAssignment.ReadWrite.All .
    • В сценариях, предназначенных только для приложений с использованием разрешений Microsoft Graph, приложению необходимо предоставить разрешение приложения CustomSecAttributeAssignment.ReadWrite.All .

HTTP-запрос

К субъекту-службе можно обратиться с помощью его идентификатора или идентификатора AppId. id и appId называются идентификатором объекта и идентификатором приложения (клиента) соответственно при регистрации приложений в Центре администрирования Microsoft Entra.

PATCH /servicePrincipals/{id}
PATCH /servicePrincipals(appId='{appId}')

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

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения об аутентификации и авторизации.
Content-Type application/json. Обязательно.

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

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

Свойство Тип Описание
accountEnabled Boolean Значение true, если учетная запись субъекта-службы включена. В противном случае используется значение false.
addIns addIn Определяет пользовательское поведение, которое служба может использовать для вызова приложения в определенных контекстах. Например, приложения, которые способны визуализировать файловые потоки, могут установить свойство addIns для его функции "FileHandler". Это позволяет службам, таким как Microsoft 365, вызывать приложение в контексте документа, над которым работает пользователь.
alternativeNames Коллекция строк Используется для получения субъектов-служб по подписке, идентификации группы ресурсов и полных идентификаторов ресурсов для управляемых удостоверений.
appRoleAssignmentRequired Boolean Указывает, требуется ли appRoleAssignment пользователю или группе, прежде чем Microsoft Entra ID выдаст пользователю или маркер доступа приложению. Значение null не допускается.
appRoles Коллекция appRole Роли приложения, предоставляемые связанным приложением. Дополнительные сведения см. в разделе определения свойства appRoles ресурса приложения . Значение null не допускается.
customSecurityAttributes customSecurityAttributeValue Открытый сложный тип, который содержит значение настраиваемого атрибута безопасности, назначенного объекту каталога.
  • Чтобы обновить это свойство в делегированных сценариях, вызывающему субъекту должна быть назначена роль администратора назначения атрибутов, а приложению должно быть предоставлено делегированное разрешение CustomSecAttributeAssignment.ReadWrite.All .
  • Чтобы обновить это свойство в сценариях, предназначенных только для приложений с разрешениями Microsoft Graph, приложению должно быть предоставлено разрешение приложения CustomSecAttributeAssignment.ReadWrite.All .
  • displayName String Отображаемое имя для субъекта-службы.
    homepage String Главная или начальная страница приложения.
    keyCredentials Коллекция keyCredential Коллекция ключевых учетных данных, связанных с субъектом-службой. Значение null не допускается.
    logoutUrl String Указывает URL-адрес, который будет использоваться службой авторизации Майкрософт для выхода пользователя с помощью протоколов выхода front-channel, back-channel или SAML.
    oauth2PermissionScopes Коллекция permissionScope Области разрешений OAuth 2.0, предоставляемые связанным приложением. Дополнительные сведения см. в разделе определения свойства oauth2PermissionScopes ресурса приложения . Значение null не допускается.
    preferredSingleSignOnMode Строка Указывает режим единого входа, настроенный для этого приложения. Microsoft Entra ID использует предпочтительный режим единого входа для запуска приложения из Microsoft 365 или портала «Мои приложения». Поддерживаемые значения: password, saml, external и oidc.
    replyUrls Коллекция String URL-адреса, которым отправляются маркеры пользователей для входа с помощью связанного приложения, или URI перенаправления, которым отправляются коды авторизации OAuth 2.0 и маркеры доступа для связанного приложения. Значение null не допускается.
    ServicePrincipalNames Коллекция объектов string Содержит список объектов identifiersUris, скопированных из связанного объекта application. К гибридным приложениям можно добавить дополнительные значения. Эти значения можно использовать для определения разрешений, предоставляемых этим приложением в Microsoft Entra ID. Пример.
    • Клиентские приложения, запрашивающие разрешения на доступ к этому ресурсу, могут использовать эти URI для указания необходимых разрешений в свойстве requiredResourceAccess манифеста приложения или в колонке "Разрешения API" в интерфейсе регистрации приложений.
    • Клиентские приложения могут указать URI ресурса, основанный на значениях этого свойства, чтобы получить маркер доступа, который является URI, возвращаемым в утверждении aud.

    Оператор "any" требуется для выражений фильтров, применяемых к многозначным свойствам. Значение null не допускается.
    tags Коллекция String Настраиваемые строки, которые можно использовать для классификации и определения приложения. Значение null не допускается.
    tokenEncryptionKeyId String Задает значение открытого ключа keyId из коллекции keyCredentials. Если конфигурация настроена, Microsoft Entra ID выдает маркеры для этого приложения, зашифрованные с использованием ключа, указанного этим свойством. Код приложения, получающий зашифрованный маркер, должен использовать соответствующий закрытый ключ для расшифровки маркера, прежде чем его можно будет применить для пользователя, выполнившего вход.

    Отклик

    В случае успеха этот метод возвращает код отклика 204 No Content и обновленный объект servicePrincipal в тексте отклика.

    Пример

    Пример 1. Обновление свойств указанного субъекта-службы

    Запрос

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

    PATCH https://graph.microsoft.com/v1.0/servicePrincipals/{id}
    Content-type: application/json
    
    {
      "appRoleAssignmentRequired": true
    }
    

    Отклик

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

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

    HTTP/1.1 204 No Content
    

    Пример 2. Назначение настраиваемого атрибута безопасности со строковым значением субъекту-службе

    В следующем примере показано, как назначить субъекту-службе настраиваемый атрибут безопасности со строковым значением.

    • Набор атрибутов: Engineering
    • Атрибут: ProjectDate
    • Тип данных атрибута: строка
    • Значение атрибута: "2022-10-01"

    Чтобы назначить настраиваемые атрибуты безопасности, вызывающему субъекту должна быть присвоена роль администратора назначения атрибутов и должно быть предоставлено разрешение CustomSecAttributeAssignment.ReadWrite.All.

    Другие подобные примеры для пользователей см. в примерах: Назначение, обновление, перечисление или удаление назначений пользовательских атрибутов безопасности с помощью Microsoft API Graph.

    Запрос

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

    PATCH https://graph.microsoft.com/v1.0/servicePrincipals/{id}
    Content-type: application/json
    
    {
        "customSecurityAttributes":
        {
            "Engineering":
            {
                "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
                "ProjectDate":"2022-10-01"
            }
        }
    }
    

    Отклик

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

    HTTP/1.1 204 No Content