Использование метода PATCH для настройки passwordCredential не поддерживается. Используйте методы addPassword и removePassword, чтобы обновить пароль или секрет для servicePrincipal.
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения
Разрешения с наименьшими привилегиями
Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись)
Чтобы обновить свойство customSecurityAttributes , выполните следующие действия:
В делегированных сценариях администратору должна быть назначена роль администратора назначения атрибутов , а приложению — делегированное разрешение CustomSecAttributeAssignment.ReadWrite.All .
В сценариях только для приложений, использующих разрешения Microsoft Graph, приложению должно быть предоставлено разрешение CustomSecAttributeAssignment.ReadWrite.All .
HTTP-запрос
Вы можете обратиться к субъекту-службе, используя его идентификатор или appId.
Id и appId называются идентификатором объекта и идентификатором приложения (клиента) соответственно в регистрациях приложений в Центр администрирования Microsoft Entra.
В тексте запроса укажите значения для соответствующих полей, которые необходимо обновить. Существующие свойства, которые не включены в текст запроса, сохраняют свои предыдущие значения или пересчитываются на основе изменений других значений свойств. Для достижения оптимальной производительности не следует включать существующие значения, которые не изменились.
Свойство
Тип
Описание
accountEnabled
Boolean
Значение true, если учетная запись субъекта-службы включена. В противном случае используется значение false.
Определяет пользовательское поведение, которое служба может использовать для вызова приложения в определенных контекстах. Например, приложения, которые способны визуализировать файловые потоки, могут установить свойство addIns для его функции "FileHandler". Это позволяет таким службам, как Microsoft 365, вызывать приложение в контексте документа, над которым работает пользователь.
alternativeNames
Коллекция строк
Используется для получения субъектов-служб по подписке, идентификации групп ресурсов и полных идентификаторов ресурсов для управляемых удостоверений.
appRoleAssignmentRequired
Boolean
Указывает, требуется ли appRoleAssignment пользователю или группе, прежде чем Microsoft Entra ID выдаст пользователю или маркер доступа приложению. Значение null не допускается.
Роли приложения, предоставляемые связанным приложением. Дополнительные сведения см. в определении свойства appRoles в ресурсе приложения . Значение null не допускается.
Открытый сложный тип, который содержит значение настраиваемого атрибута безопасности, назначенного объекту каталога.
Чтобы обновить это свойство в делегированных сценариях, вызывающему субъекту должна быть назначена роль администратора назначения атрибутов, а приложению предоставлено делегированное разрешение CustomSecAttributeAssignment.ReadWrite.All .
Чтобы обновить это свойство в сценариях только для приложений с разрешениями Microsoft Graph, приложению должно быть предоставлено разрешение CustomSecAttributeAssignment.ReadWrite.All .
Коллекция ключевых учетных данных, связанных с субъектом-службой. Значение null не допускается.
logoutUrl
String
Указывает URL-адрес, который будет использоваться службой авторизации Майкрософт для выхода пользователя с помощью протоколов front-channel, back-channel или SAML logout.
Области разрешений 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. Обновление свойств указанного субъекта-службы
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new ServicePrincipal
{
AppRoleAssignmentRequired = true,
};
// To initialize your graphClient, see https://zcusa.951200.xyz/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.ServicePrincipals["{servicePrincipal-id}"].PatchAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewServicePrincipal()
appRoleAssignmentRequired := true
requestBody.SetAppRoleAssignmentRequired(&appRoleAssignmentRequired)
// To initialize your graphClient, see https://zcusa.951200.xyz/en-us/graph/sdks/create-client?from=snippets&tabs=go
servicePrincipals, err := graphClient.ServicePrincipals().ByServicePrincipalId("servicePrincipal-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ServicePrincipal servicePrincipal = new ServicePrincipal();
servicePrincipal.setAppRoleAssignmentRequired(true);
ServicePrincipal result = graphClient.servicePrincipals().byServicePrincipalId("{servicePrincipal-id}").patch(servicePrincipal);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\ServicePrincipal;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ServicePrincipal();
$requestBody->setAppRoleAssignmentRequired(true);
$result = $graphServiceClient->servicePrincipals()->byServicePrincipalId('servicePrincipal-id')->patch($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.service_principal import ServicePrincipal
# To initialize your graph_client, see https://zcusa.951200.xyz/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ServicePrincipal(
app_role_assignment_required = True,
)
result = await graph_client.service_principals.by_service_principal_id('servicePrincipal-id').patch(request_body)
Ниже показан пример отклика. Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 204 No Content
Пример 2. Назначение настраиваемого атрибута безопасности со строковым значением субъекту-службе
В следующем примере показано, как назначить субъекту-службе настраиваемый атрибут безопасности со строковым значением.
Набор атрибутов: Engineering
Атрибут: ProjectDate
Тип данных атрибута: строка
Значение атрибута: "2022-10-01"
Чтобы назначить настраиваемые атрибуты безопасности, вызывающему субъекту должна быть присвоена роль администратора назначения атрибутов и должно быть предоставлено разрешение CustomSecAttributeAssignment.ReadWrite.All.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
using Microsoft.Kiota.Abstractions.Serialization;
var requestBody = new ServicePrincipal
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new UntypedObject(new Dictionary<string, UntypedNode>
{
{
"@odata.type", new UntypedString("#Microsoft.DirectoryServices.CustomSecurityAttributeValue")
},
{
"projectDate", new UntypedString("2022-10-01")
},
})
},
},
},
};
// To initialize your graphClient, see https://zcusa.951200.xyz/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.ServicePrincipals["{servicePrincipal-id}"].PatchAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewServicePrincipal()
customSecurityAttributes := graphmodels.NewCustomSecurityAttributeValue()
additionalData := map[string]interface{}{
engineering := graph.New()
projectDate := "2022-10-01"
engineering.SetProjectDate(&projectDate)
customSecurityAttributes.SetEngineering(engineering)
}
customSecurityAttributes.SetAdditionalData(additionalData)
requestBody.SetCustomSecurityAttributes(customSecurityAttributes)
// To initialize your graphClient, see https://zcusa.951200.xyz/en-us/graph/sdks/create-client?from=snippets&tabs=go
servicePrincipals, err := graphClient.ServicePrincipals().ByServicePrincipalId("servicePrincipal-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ServicePrincipal servicePrincipal = new ServicePrincipal();
CustomSecurityAttributeValue customSecurityAttributes = new CustomSecurityAttributeValue();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
engineering = new ();
engineering.setOdataType("#Microsoft.DirectoryServices.CustomSecurityAttributeValue");
engineering.setProjectDate("2022-10-01");
additionalData.put("Engineering", engineering);
customSecurityAttributes.setAdditionalData(additionalData);
servicePrincipal.setCustomSecurityAttributes(customSecurityAttributes);
ServicePrincipal result = graphClient.servicePrincipals().byServicePrincipalId("{servicePrincipal-id}").patch(servicePrincipal);
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.service_principal import ServicePrincipal
from msgraph.generated.models.custom_security_attribute_value import CustomSecurityAttributeValue
# To initialize your graph_client, see https://zcusa.951200.xyz/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ServicePrincipal(
custom_security_attributes = CustomSecurityAttributeValue(
additional_data = {
"engineering" : {
"@odata_type" : "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
"project_date" : "2022-10-01",
},
}
),
)
result = await graph_client.service_principals.by_service_principal_id('servicePrincipal-id').patch(request_body)