次の方法で共有


servicePrincipal を upsert する

名前空間: microsoft.graph

新しい servicePrincipal オブジェクトが存在しない場合は作成するか、既存の servicePrincipal オブジェクトのプロパティを更新します。

重要

servicePrincipals 作成時に passwordCredential を追加することはサポートされていません。 servicePrincipal のパスワードまたはシークレットを追加するには、addPassword メソッドを使用します。

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

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

アクセス許可

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

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

マルチテナント アプリの場合、呼び出し元のユーザーは、次の Microsoft Entra ロールの少なくとも 1 つである必要もあります。

  • アプリケーション管理者
  • クラウド アプリケーション管理者

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

HTTP 要求

PATCH /servicePrincipals(appId='appId')

要求ヘッダー

名前 説明
Authorization ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。
Content-Type application/json. Required.
Prefer create-if-missing. アップサート動作に必要です。それ以外の場合、要求は更新操作として扱われます。

要求本文

要求本文で、servicePrincipal オブジェクトの JSON 表記を指定します。

応答

成功した場合、 appId を持つ servicePrincipal が存在しない場合、このメソッドは応答コード 201 Created と、応答本文に新しい servicePrincipal オブジェクトを返します。

appId を持つ servicePrincipal が既に存在する場合、このメソッドは servicePrincipal オブジェクトを更新し、204 No Content応答コードを返します。

例 1: 新しい servicePrincipal が存在しない場合は作成する

次の例では、指定した appId 値を持つ servicePrincipal が存在しないため、servicePrincipal を作成します。

要求

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

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 を更新する

次の例では、指定した appId 値を持つ servicePrincipal が存在するため、servicePrincipal を更新します。

要求

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

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