インバウンド プロビジョニング API へのアクセスを付与する

はじめに

API 駆動インバウンド プロビジョニング アプリを構成したら、API クライアントがプロビジョニング /bulkUpload API に要求を送信し、プロビジョニング ログ API に対してクエリを実行できるように、アクセス許可を付与する必要があります。 このチュートリアルでは、これらの権限を構成する手順について説明します。

お使いの API クライアントが Microsoft Entra ID で認証を行う方法に応じて、次の 2 つの構成オプションから選択できます。

サービス プリンシパルの構成

この構成により、外部 API クライアントを表すアプリが Microsoft Entra ID に登録され、それにインバウンド プロビジョニング API を呼び出す権限が付与されます。 OAuth クライアント資格情報付与フローでは、サービス プリンシパルのクライアント ID とクライアント シークレットを使用できます。

  1. 少なくともアプリケーション管理者 のログイン資格情報で Microsoft Entra 管理センター (https://entra.microsoft.com) にログインします。
  2. [Microsoft Entra ID] ->[アプリケーション] ->[アプリの登録] の順に移動します。
  3. オプション [新規登録] をクリックします。
  4. アプリ名を指定し、既定のオプションを選択して、[登録] をクリックします。 アプリ登録のスクリーンショット。
  5. [概要] ブレードから [アプリケーション (クライアント) ID][ディレクトリ (テナント) ID] の値をコピーし、後で API クライアントで使用できるように保存します。 アプリ クライアント ID のスクリーンショット。
  6. アプリのコンテキスト メニューで、[証明書とシークレット] オプションを選択します。
  7. 新しいクライアント シークレットを作成します。 シークレットと有効期限の説明を入力します。
  8. 生成されたクライアント シークレットの値をコピーし、後で API クライアントで使用するために保存します。
  9. コンテキスト メニュー [API 権限] から、オプション [権限の追加] を選択します。
  10. [API 権限の要求] で、[Microsoft Graph] を選択します。
  11. [アプリケーションのアクセス許可] を選択します。
  12. 権限 [AuditLog.Read.All][SynchronizationData-User.Upload] を検索して選択します。
  13. 次の画面で [管理者の同意の付与] をクリックして、権限の割り当てを完了します。 確認ダイアログで [はい] をクリックします。 アプリには次の権限セットがあるはずです。 アプリ権限のスクリーンショット。
  14. これで、API クライアントでサービス プリンシパルを使用する準備ができました。
  15. 運用環境のワークロードに対しては、クライアント証明書ベースの認証でサービス プリンシパルまたはマネージド ID を使用することをお勧めします。

マネージド ID の構成

このセクションでは、マネージド ID に必要な権限を割り当てる方法について説明します。

  1. Azure リソースで使用するマネージド ID を構成します。

  2. Microsoft Entra 管理センターからマネージド ID の名前をコピーします。 たとえば、次のスクリーンショットは、"CSV2SCIMBulkUpload" という名前の Azure Logic Apps ワークフローに関連付けられているシステム割り当てマネージド ID の名前を示しています。

    マネージド ID 名のスクリーンショット。

  3. 次の PowerShell スクリプトを実行して、マネージド ID に権限を割り当てます。

    Install-Module Microsoft.Graph -Scope CurrentUser
    
    Connect-MgGraph -Scopes "Application.Read.All","AppRoleAssignment.ReadWrite.All,RoleManagement.ReadWrite.Directory"
    $graphApp = Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"
    
    $PermissionName = "SynchronizationData-User.Upload"
    $AppRole = $graphApp.AppRoles | `
    Where-Object {$_.Value -eq $PermissionName -and $_.AllowedMemberTypes -contains "Application"}
    $managedID = Get-MgServicePrincipal -Filter "DisplayName eq 'CSV2SCIMBulkUpload'"
    New-MgServicePrincipalAppRoleAssignment -PrincipalId $managedID.Id -ServicePrincipalId $managedID.Id -ResourceId $graphApp.Id -AppRoleId $AppRole.Id
    
    $PermissionName = "AuditLog.Read.All"
    $AppRole = $graphApp.AppRoles | `
    Where-Object {$_.Value -eq $PermissionName -and $_.AllowedMemberTypes -contains "Application"}
    $managedID = Get-MgServicePrincipal -Filter "DisplayName eq 'CSV2SCIMBulkUpload'"
    New-MgServicePrincipalAppRoleAssignment -PrincipalId $managedID.Id -ServicePrincipalId $managedID.Id -ResourceId $graphApp.Id -AppRoleId $AppRole.Id
    
  4. 権限が適用されたことを確認するには、Microsoft Entra ID の [エンタープライズ アプリケーション] でマネージド ID サービス プリンシパルを見つけます。 [アプリケーションの種類] フィルターを削除して、すべてのサービス プリンシパルを表示します。 マネージド ID プリンシパルのスクリーンショット。

  5. [セキュリティ][権限] ブレードをクリックします。 権限が設定されていることを確認します。 マネージド ID 権限のスクリーンショット。

  6. これで、API クライアントでマネージド ID を使用する準備ができました。

次のステップ