Upsert アプリケーション

名前空間: microsoft.graph

重要

Microsoft Graph の /beta バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。

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

この API では、agentIdentityBlueprint から agentIdentityBlueprint オブジェクトを作成することもできます (存在しない場合)や、既存の agentIdentityBlueprint のプロパティを更新することもできます (@odata.type プロパティが #microsoft.graph.agentIdentityBlueprint に設定されている場合)。

重要

PATCH を使用して passwordCredential を設定することはサポートされていません。 addPassword メソッドと removePassword メソッドを使用して、アプリケーションのパスワードまたはシークレットを更新します。

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

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

アクセス許可

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

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) Application.ReadWrite.All 注意事項なし。
委任 (個人用 Microsoft アカウント) Application.ReadWrite.All 注意事項なし。
アプリケーション Application.ReadWrite.OwnedBy Application.ReadWrite.All

重要

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

  • テナント管理者がアクセスを制限しない限り、既定のユーザー アクセス許可を持つ非管理者メンバーまたはゲスト。
  • アプリケーション開発者。 管理者がメンバーとゲストへのアクセスを制限している場合でも、このロールはアプリを作成できます。 このロールを持つプリンシパルには、作成するアプリの所有権が割り当てられます。
  • ディレクトリ ライター。 このロールは拡張機能のプロパティを更新できます。
  • ハイブリッド ID 管理者。 このロールでは、基本的なプロパティのみを更新できます。
  • セキュリティ管理者
  • クラウド アプリケーション管理者
  • アプリケーション管理者

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

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

HTTP 要求

アプリケーションを作成または更新するには、クライアント指定の代替キーに uniqueName を指定します。

PATCH /applications(uniqueName='{uniqueName}')

要求ヘッダー

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

要求本文

リクエストの本文には、 アプリケーション オブジェクトの JSON 表現を指定します。 要求本文には、必須プロパティである displayName を含める必要があります。 作成または更新のために、アプリケーションに必要なその他の書き込み可能なプロパティを指定します。

応答

uniqueName を持つアプリケーションまたは agentIdentityBlueprint オブジェクトが存在しない場合、このメソッドは201 Created応答コードと、応答本文に uniqueName 値が割り当てられた新しいアプリケーションまたは agentIdentityBlueprint オブジェクトを返します。

uniqueName を持つアプリケーションまたは agentIdentityBlueprint オブジェクトが存在せず、Prefer: create-if-missing ヘッダーが指定されていない場合、このメソッドは404 Not Foundエラー コードを返します。

uniqueName を持つアプリケーションまたは agentIdentityBlueprint オブジェクトが既に存在する場合、このメソッドはアプリケーションまたは agentIdentityBlueprint オブジェクトを更新し、204 No Content応答コードを返します。

例 1: 存在しない場合は新しいアプリケーションを作成する

次の例では、指定された uniqueName 値を持つアプリケーションが存在しないため、アプリケーションが作成されます。

要求

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

PATCH https://graph.microsoft.com/beta/applications(uniqueName='app-65278')
Content-Type: application/json
Prefer: create-if-missing

{
  "displayName": "Display name"
}

応答

次の例は応答を示しています。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#applications/$entity",
    "id": "03ef14b0-ca33-4840-8f4f-d6e91916010e",
    "deletedDateTime": null,
    "isFallbackPublicClient": null,
    "appId": "631a96bc-a705-4eda-9f99-fdaf9f54f6a2",
    "applicationTemplateId": null,
    "identifierUris": [],
    "createdDateTime": "2019-09-17T19:10:35.2742618Z",
    "displayName": "Display name",
    "isDeviceOnlyAuthSupported": null,
    "groupMembershipClaims": null,
    "optionalClaims": null,
    "addIns": [],
    "publisherDomain": "contoso.onmicrosoft.com",
    "samlMetadataUrl": "https://graph.microsoft.com/2h5hjaj542de/app",
    "signInAudience": "AzureADandPersonalMicrosoftAccount",
    "tags": [],
    "tokenEncryptionKeyId": null,
    "api": {
        "requestedAccessTokenVersion": 2,
        "acceptMappedClaims": null,
        "knownClientApplications": [],
        "oauth2PermissionScopes": [],
        "preAuthorizedApplications": []
    },
    "appRoles": [],
    "publicClient": {
        "redirectUris": []
    },
    "info": {
        "termsOfServiceUrl": null,
        "supportUrl": null,
        "privacyStatementUrl": null,
        "marketingUrl": null,
        "logoUrl": null
    },
    "keyCredentials": [],
    "parentalControlSettings": {
        "countriesBlockedForMinors": [],
        "legalAgeGroupRule": "Allow"
    },
    "passwordCredentials": [],
    "requiredResourceAccess": [],
    "uniqueName": "app-65278",
    "web": {
        "redirectUris": [],
        "homePageUrl": null,
        "logoutUrl": null,
        "implicitGrantSettings": {
            "enableIdTokenIssuance": false,
            "enableAccessTokenIssuance": false
        }
    }, 
    "windows" : null
}

例 2: 既存のアプリケーションを更新する

次の例では、指定された uniqueName 値を持つアプリケーションが存在するため、アプリケーションを更新します。

要求

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

PATCH https://graph.microsoft.com/beta/applications(uniqueName='app-65278')
Content-Type: application/json
Prefer: create-if-missing

{
  "displayName": "Display name"
}

応答

次の例は応答を示しています。

HTTP/1.1 204 No Content