servicePrincipal を更新する

名前空間: microsoft.graph

servicePrincipal オブジェクトのプロパティを更新します。 この API は、@odata.type プロパティが #microsoft.graph.agentIdentityBlueprintPrincipal に設定されている場合は agentIdentityBlueprintPrincipal オブジェクトを、@odata.type プロパティが #microsoft.graph.agentIdentity に設定されている場合は agentIdentity オブジェクトを更新することもできます。

重要

  • PATCH を使用して passwordCredential を設定することはサポートされていません。 servicePrincipal のパスワードまたはシークレットを更新するために addPassword および removePassword メソッドを使用します。

  • サービス プリンシパルは、関連付けられているアプリの登録から特定のプロパティを継承します。 これらのプロパティはアプリの登録から同期されますが、同期は即時または継続的ではありません。 場合によっては、サービス プリンシパルを更新すると、ディレクトリでアプリ登録のプロパティを更新するように求められ、元の要求の一部ではない更新が発生することがあります。

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国
✅ ✅ ✅ ✅

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) Application.ReadWrite.All AgentIdentity.ReadWrite.All、Directory.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション Application.ReadWrite.OwnedBy AgentIdentity.ReadWrite.All、Application.ReadWrite.All、Directory.ReadWrite.All

重要

職場または学校アカウントを使用してアクセスを委任するには、サポートされている Microsoft Entra ロール、またはこの操作に必要なアクセス許可を付与するカスタム ロールが管理者に割り当てられている必要があります。 この操作では、必要最小限の特権のみを提供する次の組み込みロールがサポートされます。

  • マルチテナント アプリの場合:
    • アプリケーション管理者
    • クラウド アプリケーション管理者
  • 呼び出し元ユーザーが管理者以外のユーザーであるが、バックアップ アプリケーションの所有者であるシングルテナント アプリの場合、ユーザーは アプリケーション開発者 ロールを持っている必要があります。

職場または学校アカウントを使用する委任されたシナリオでは、エージェント ID とエージェント ID ブループリント プリンシパルを管理するために、次の権限がサポートされます。

  • サインインしたユーザーが所有者であるか、
  • サインインしたユーザーには、 エージェント ID 管理者 ロールが割り当てられます。

特定のシナリオのアクセス許可

  • customSecurityAttributes プロパティを更新するには:
    • 委任されたシナリオでは、管理者に Attribute Assignment Administrator ロールを割り当て、アプリに CustomSecAttributeAssignment.ReadWrite.All 委任されたアクセス許可を付与する必要があります。
    • Microsoft Graph のアクセス許可を使用するアプリのみのシナリオでは、アプリに CustomSecAttributeAssignment.ReadWrite.All アプリケーションのアクセス許可を付与する必要があります。

HTTP 要求

サービス プリンシパルは、 id または appId のいずれかを使用してアドレス指定できます。 id と appId は、Microsoft Entra 管理センターでのアプリの登録において、それぞれオブジェクト ID とアプリケーション (クライアント) ID と呼ばれます。

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

要求ヘッダー

名前 説明
Authorization ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。
Content-Type application/json. 必須です。

要求本文

要求本文で、更新する関連フィールドの値を指定します。 要求本文に含まれていない既存のプロパティは、以前の値を維持するか、他のプロパティ値の変更に基づいて再計算されます。 最適なパフォーマンスを得るためには、変更されていない既存の値を含めないでください。

プロパティ 型 説明
accountEnabled Boolean サービス プリンシパルのアカウントが有効な場合は true。それ以外の場合は false。
addIns addIn 特定のコンテキストで利用者サービスがアプリを呼び出すために使用できるカスタムの動作を定義します。 たとえば、ファイル ストリームのレダリングが可能なアプリケーションは、そのアプリケーションの "FileHandler" 機能のために addIns プロパティを設定することがあります。 これにより、Microsoft 365 などのサービスは、ユーザーが作業しているドキュメントのコンテキストでアプリケーションを呼び出すことができます。
alternativeNames String コレクション サブスクリプションによってサービス プリンシパルを取得し、 マネージド ID のリソース グループと完全なリソース ID を識別するために使用されます。
appRoleAssignmentRequired ブール値 Microsoft Entra ID がアプリケーションにユーザーまたはアクセス トークンを発行する前に、ユーザーまたはグループに対する appRoleAssignment が必要かどうかを指定します。 null 許容ではありません。
appRoles appRole コレクション 関連付けられているアプリケーションによって公開されるアプリケーション ロール。 詳細については、アプリケーション リソースの appRoles プロパティ定義を参照してください。 null 許容ではありません。
customSecurityAttributes customSecurityAttributeValue ディレクトリ オブジェクトに割り当てられたカスタム セキュリティ属性の値を保持するオープン複合型。
  • 委任されたシナリオでこのプロパティを更新するには、呼び出し元プリンシパルに属性割り当て管理者ロールを割り当て、アプリに CustomSecAttributeAssignment.ReadWrite.All 委任されたアクセス許可を付与する必要があります。
  • Microsoft Graph のアクセス許可を持つアプリ限定のシナリオでこのプロパティを更新するには、アプリに CustomSecAttributeAssignment.ReadWrite.All アプリケーションのアクセス許可を付与する必要があります。
  • displayName String サービス プリンシパルの表示名。
    HomePage String アプリケーションのホームページまたはランディングページ。
    keyCredentials keyCredential コレクション サービス プリンシパルに関連付けられているキー資格情報のコレクションです。null 許容型ではありません。 null 許容ではありません。
    logoutUrl String フロント チャネル、バック チャネル、または SAML ログアウト プロトコルを使用してユーザーをログアウトするために、Microsoft の承認サービスで使用される URL を指定します。
    oauth2PermissionScopes permissionScope コレクション 関連付けられているアプリケーションによって公開される OAuth 2.0 のアクセス許可。 詳しくは、アプリケーション・リソースのoauth2PermissionScopesプロパティ定義を参照してください。 null 許容ではありません。
    preferredSingleSignOnMode string このアプリケーションに構成されているシングルサインオンモードを指定します。 Microsoft Entra ID では、優先シングル サインオン モードを使用して、Microsoft 365 または マイ アプリ ポータルからアプリケーションを起動します。 サポートされている値は password、saml、external、および oidc です。
    replyUrls String コレクション 関連付けられたアプリケーションにサインインするためにユーザー トークンが送信される URL、または関連付けられたアプリケーションに対して OAuth 2.0 認証コードとアクセス トークンが送信されるリダイレクト URI。 null 許容ではありません。
    servicePrincipalNames String コレクション 関連するアプリケーションからコピーされた identifiersUris のリストが含まれています。 ハイブリッドアプリケーションに追加の値を追加できます。 これらの値を使用して、Microsoft Entra ID 内でこのアプリによって公開されるアクセス許可を識別できます。 例えば、
    • このリソースへのアクセス許可を要求するクライアント アプリでは、これらの URI を使用して、アプリケーション マニフェストの requiredResourceAccess プロパティや、アプリ登録エクスペリエンスの "API アクセス許可" ブレードで、必要とするアクセス許可を特定することができます。
    • クライアント アプリは、このプロパティの値に基づくリソース URI を指定して、アクセス トークンを取得できます。これは、"aud" クレームで返される URI です。

    多値プロパティのフィルター式には、any 演算子が必要です。 null 許容ではありません。
    tags String コレクション アプリケーションを分類および識別するために使用できるカスタム文字列です。 null 許容ではありません。
    tokenEncryptionKeyId 文字列 keyCredentials コレクションにある公開キーの keyId を指定します。 構成されている場合、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 Graph API を使用してカスタム セキュリティ属性の割り当てを割り当て、更新、一覧表示、または削除する」を参照してください。

    要求

    次の例は要求を示しています。

    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