次の方法で共有


Microsoft Entra IDを使用した自動ユーザー プロビジョニング用に SAP Cloud Identity Services を構成する

この記事では、Microsoft Entra IDから SAP Cloud Identity Services へのプロビジョニングを構成する手順について説明します。 目標は、ユーザーが SAP Cloud Identity Services に対して認証を行い、他の SAP ワークロードにアクセスできるように、ユーザーを SAP Cloud Identity Services に自動的にプロビジョニングおよびプロビジョニング解除するMicrosoft Entra IDを設定することです。 SAP Cloud Identity Services では、そのローカル ID ディレクトリから他の SAP アプリケーションへ、ターゲット システムとしてのプロビジョニングがサポートされています。

この記事では、Microsoft Entra ユーザー プロビジョニング サービスに組み込まれているコネクタについて説明します。 このサービスの機能、しくみ、よく寄せられる質問の詳細については、「 Microsoft Entra ID を使用した SaaS アプリケーションへの自動ユーザー プロビジョニングとプロビジョニング解除」を参照してください。 SAP Cloud Identity Services には、Microsoft Entra IDからユーザーとグループを読み取る独自のコネクタもあります。 詳細については、「SAP Cloud Identity Services - Identity Provisioning - Microsoft Entra ID をソース システムとして」を参照>。

SAP Cloud Identity Services コネクタの新しいバージョンが一般公開され、Microsoft Entra アプリ ギャラリーの SAP Cloud Identity Services 一覧の既定値になりました。 このコネクタの現在のバージョンでは、次の変更が行われます。

  • SCIM 2.0 標準に更新されました
  • SAP Cloud Identity Services へのグループ プロビジョニングとプロビジョニング解除のサポート
  • カスタム拡張機能属性のサポート
  • OAuth 2.0 クライアント資格情報の付与のサポート

Important

SAP IAG で統合する場合は、ユーザー名行で EDIT を選択して、Microsoft Entra ObjectId をユーザー名にマップし、Source 属性と Target 属性を次のように設定します。

  • ソース属性: objectId
  • ターゲット属性: userName

前提条件

この記事で説明するシナリオでは、次の前提条件が既にあることを前提としています。

  • SAP Cloud Identity Services のテナント
  • 管理者権限を持つ SAP Cloud Identity Services のユーザー アカウント。
  • グループ プロビジョニング機能を使用するには、Microsoft Entra ID P1 ライセンスが必要です。

この統合は、米国政府機関向けクラウド環境Microsoft Entraから使用することもできます。 このアプリケーションは、Microsoft Entra US Government Cloud Application Gallery で見つけ、パブリック クラウド環境から行うのと同じ方法で構成できます。

Microsoft Entra IDにユーザーがまだ存在しない場合は、記事「SAPのソースアプリとターゲットアプリを用いたユーザーのプロビジョニングのためのMicrosoft Entra展開計画」から始めてください。 この記事では、SAP SuccessFactors など、組織内のワーカーの一覧の権限のあるソースとMicrosoft Entraを接続する方法について説明します。 また、Microsoft Entraを使用してこれらのワーカーの ID を設定し、SAP ECC や SAP S/4HANA などの 1 つ以上の SAP アプリケーションにサインインできるようにする方法についても説明します。

Microsoft Entra ID ガバナンスを使用して SAP ワークロードへのアクセスを管理する運用環境で SAP Cloud Identity Services へのプロビジョニングを構成する場合は、先に進む前にMicrosoft Entra IDを構成する前に前提条件を確認してください。

プロビジョニング用に SAP Cloud Identity Services を設定する

この記事では、SAP Cloud Identity Services に管理システムを追加し、Microsoft Entraを構成します。

SSO とプロビジョニング フローのアーキテクチャの図、SAP アプリケーション、SAP Cloud Identity Services、Microsoft Entra の間で。

  1. SAP Cloud Identity Services 管理コンソール、https://<tenantID>.accounts.ondemand.com/admin、または試用版の場合には https://<tenantID>.trial-accounts.ondemand.com/admin にサインインします。 [Users & Authorizations](ユーザーと承認) > [Administrators](管理者) に移動します。

    SAP Cloud Identity Services 管理コンソールのスクリーンショット。

  2. 新しい管理者を一覧に追加するには、左側パネルの [+ 追加] ボタンを押します。 [システムの追加] を選択し、システムの名前を入力します。

    SAP Cloud Identity Services の管理者 ID の種類は System にする必要があります。 管理者ユーザーは、プロビジョニング時に SAP SCIM API に対して認証を行うことができません。 SAP Cloud Identity Services では、システムの作成後にシステムの名前を変更することはできません。

  3. [Configure Authorizations](承認の構成) で、[Manage Users](ユーザーの管理) のトグル ボタンをオンにします。 次に、[ 保存] を選択してシステムを作成します。

    SAP Cloud Identity Services での SCIM の追加のスクリーンショット。

  4. 管理者システムが作成されたら、そのシステムに新しいシークレットを追加します。

  5. SAP によって生成された クライアント IDクライアント シークレット をコピーします。 これらの値は、[管理者ユーザー名] フィールドと [管理者パスワード] フィールドにそれぞれ入力されます。 これは、次のセクションで設定した SAP Cloud Identity Services アプリケーションの [プロビジョニング] タブで行います。

  6. SAP Cloud Identity Services には、ターゲット システムとして 1 つ以上の SAP アプリケーションへのマッピングが含まれる場合があります。 それらの SAP アプリケーションを SAP Cloud Identity Services を通してプロビジョニングする必要がある属性がユーザーにあるかどうかを確認します。 この記事では、SAP Cloud Identity Services とダウンストリーム ターゲット システムには、 userNameemails[type eq "work"].valueの 2 つの属性が必要であると想定しています。 SAP ターゲット システムに他の属性が必要であり、Microsoft Entra ID ユーザー スキーマに含まれていない場合は、synching 拡張機能属性を構成する必要があります。

Microsoft Entra IDを構成して SAP Cloud Identity Services への自動ユーザー プロビジョニングを行う前に、Microsoft Entra アプリケーション ギャラリーからテナントのエンタープライズ アプリケーションの一覧に SAP Cloud Identity Services を追加する必要があります。 この手順は、Microsoft Entra 管理センターで行うか、Graph APIを使用して実行できます。

SAP Cloud Identity Services が SAML を使用してMicrosoft Entraからシングル サインオンするように既に構成されており、アプリケーションがエンタープライズ アプリケーションのMicrosoft Entra一覧に既に存在する場合は、次のセクション>ɰ に進みます。

OpenID Connect 統合用にアプリケーション登録を以前に構成している場合、そのアプリケーション登録のプロビジョニングを構成することはできません。 代わりに、プロビジョニング用の別のエンタープライズ アプリケーションを作成します。

Microsoft Entra 管理センターを使用した SAP Cloud Identity Services の追加

Microsoft Entra 管理センターを使用してMicrosoft Entra アプリケーション ギャラリーから SAP Cloud Identity Services を追加するには、次の手順を実行します:

  1. Microsoft Entra 管理センターに少なくとも Cloud アプリケーション管理者としてサインインします。
  2. Entra ID>Enterprise apps>New application に移動します。
  3. アプリをギャラリーから追加するには、検索ボックスに「SAP CLoud Identity Services」と入力します。
  4. 結果のパネルから [SAP Cloud Identity Services] を選択し、アプリを追加します。 お使いのテナントにアプリが追加されるのを数秒待機します。
  5. 次のセクションに進み、プロビジョニングを構成します。

Microsoft Graphを使用した SAP Cloud Identity Services の追加

アプリケーションとサービス プリンシパルは、Graph APIを介して作成できます。

まず、 SAP Cloud Identity Servicesのギャラリー アプリケーション テンプレート識別子を取得します。

GET https://graph.microsoft.com/v1.0/applicationTemplates?$filter=displayName eq 'SAP Cloud Identity Services'

応答からアプリケーション テンプレートの id を抽出します。 次に、ギャラリー アプリケーションとサービス プリンシパルを作成します。

POST https://graph.microsoft.com/v1.0/applicationTemplates/{applicationTemplateId}/instantiate
Content-type: application/json

{
  "displayName": "SAP Cloud Identity Services"
}

応答には、新しいアプリケーション オブジェクトとサービス プリンシパル オブジェクトが含まれます。

次に、先ほど作成したサービス プリンシパルの id を使用して、プロビジョニング構成用のテンプレートを取得します。

GET https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/templates

プロビジョニングを有効にするには、ジョブを作成する必要があります。 プロビジョニング ジョブを作成するには、次の要求を使用します。 ジョブに使用するテンプレートを指定するときは、前の手順の idtemplateId として使用します。

POST https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs
Content-type: application/json

{
    "templateId": "sapcloudidentityservices"
}

次のセクションで説明するように、サービス プリンシパルに関連付けられている プロビジョニング ジョブとテンプレート スキーマ をさらに構成できます。 次に、Microsoft Entra が SAP Cloud Identity Services に対する認証を行うためにアクセスを許可し、その後、プロビジョニングジョブを開始します。

SAP Cloud Identity Services に対する自動ユーザー プロビジョニングの構成

このセクションでは、Microsoft Entra IDのアプリケーションへのユーザーとグループの割り当てに基づいて SAP Cloud Identity Services のユーザーとグループを作成、更新、無効化するようにMicrosoft Entra プロビジョニング サービスを構成する手順について説明します。

Microsoft Entra IDで SAP Cloud Identity Services の自動ユーザー プロビジョニングを構成するには:

  1. Microsoft Entra 管理センターに少なくとも Cloud アプリケーション管理者としてサインインします。

  2. Entra IDEnterprise apps に移動します

    [エンタープライズ アプリケーション] ブレードのスクリーンショット。

  3. アプリケーションのリストで、SAP Cloud Identity Services アプリケーションを選択します。

    アプリケーションの一覧の SAP Cloud Identity Services リンクのスクリーンショット。

  4. [プロパティ] タブを選択します。

  5. [割り当てが必要ですか?] オプションが [はい] に設定されていることを確認します。 [いいえ] に設定されている場合は、外部 ID を含むディレクトリ内のすべてのユーザーがアプリケーションにアクセスでき、アプリケーションへのアクセスをレビューすることはできません。

  6. [プロビジョニング] タブを選択します。

    [プロビジョニング] オプションが強調表示された [管理] オプションのスクリーンショット。

  7. [プロビジョニング モード][自動] に設定します。

    [自動] オプションが強調表示された [プロビジョニング モード] ドロップダウン リストのスクリーンショット。

  8. [ 管理者資格情報 ] セクションで、[ OAuth2 クライアント資格情報の付与] を選択します。 テナント URL に SAP Cloud Identity Services のテナント ID を使用し、https://<tenantID>.accounts.ondemand.com/scimを入力するか、試用版の場合はhttps://<tenantid>.trial-accounts.ondemand.com/scimを入力してください。 トークン エンドポイントを入力します。これは、次のhttps://<tenantID>.accounts.ondemand.com/oauth2/tokenのようになります。 SAP Cloud Identity Services の管理コンソールから以前に生成したクライアント IDクライアント シークレットの値を入力します。 Test Connection を選択して、Microsoft Entra IDが SAP Cloud Identity Services に接続できることを確認します。 接続に失敗した場合は、SAP Cloud Identity Services システム アカウントに管理者アクセス許可があり、シークレットがまだ有効であることを確認してから、もう一度やり直してください。

    プロビジョニング UX の [管理者資格情報] セクションのスクリーンショット。

    SAP Cloud Identity Services 管理コンソールのスクリーンショット。

  9. [通知用メール] フィールドに、プロビジョニングのエラー通知を受け取るユーザーまたはグループの電子メール アドレスを入力して、 [エラーが発生したときにメール通知を送信します] チェック ボックスをオンにします。

    [通知用メール] のスクリーンショット。

  10. 保存 を選択します。

  11. プロビジョニングの概要で [ID の検出] を 選択して、SAP Cloud Identity Services の アカウントを検出 します。 このオプションは、Entra ID ガバナンス ライセンスを持つ組織にのみ表示されます。

  12. Mappings セクションで、シナリオに応じて provision Microsoft Entra ID users または provision Microsoft Entra ID groups を選択します。

    SAP Cloud Identity Services のユーザーとグループのマッピングのスクリーンショット。

  13. Attribute Mapping セクションで、Microsoft Entra IDから SAP Cloud Identity Services に同期されるユーザー属性とグループ属性を確認します。 マッピングのターゲットとして使用できる SAP Cloud Identity Services の属性が表示されない場合は、[ 詳細オプションの表示 ] を選択し、 SAP Cloud Platform Identity Authentication Service の属性リストの編集 を選択して 、サポートされている属性の一覧を編集します。 SAP Cloud Identity Services テナントの属性を追加します。

  14. Matching プロパティとして選択したソース属性とターゲット属性を確認して記録します。 Matching precedence を持つマッピング。これらの属性は、Microsoft Entra プロビジョニング サービスの SAP Cloud Identity Services のユーザーとグループを照合して、新しいユーザー/グループを作成するか、既存のユーザー/グループを更新するかを決定するために使用されます。 照合に関する詳細については、「ソース システムとターゲット システムのユーザー照合」を参照してください。 その後の手順では、重複するユーザーが作成されないようにするために、SAP Cloud Identity Services に既に存在するすべてのユーザーに[ 照合 プロパティ]が設定された属性が選択されていることを確認します。

  15. IsSoftDeleted の属性マッピング、または IsSoftDeleted を含む関数がアプリケーションの属性にマップされていることを確認します。 ユーザーがアプリケーションから割り当て解除されたり、Microsoft Entra IDで論理的に削除されたり、サインインがブロックされたりすると、Microsoft Entra プロビジョニング サービスによって、isSoftDeleted にマップされた属性が更新されます。 マップされた属性がない場合、後でアプリケーション ロールから割り当て解除されたユーザーは、引き続きアプリケーションのデータ ストアに存在します。

  16. SAP Cloud Identity Services またはダウンストリームのターゲット SAP システムに必要なその他のマッピングを追加します。

  17. [保存] ボタンをクリックして変更をコミットします。

    ユーザー属性 タイプ フィルター処理のサポート SAP Cloud Identity Services に必要
    userName
    emails[type eq "work"].value
    active ブール値
    displayName
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager リファレンス
    addresses[type eq "work"].country
    addresses[type eq "work"].locality
    addresses[type eq "work"].postalCode
    addresses[type eq "work"].region
    addresses[type eq "work"].streetAddress
    name.givenName
    name.familyName
    name.honorificPrefix
    phoneNumbers[type eq "fax"].value
    phoneNumbers[type eq "mobile"].value
    phoneNumbers[type eq "work"].value
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:costCenter
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:division
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:organization
    locale
    timezone
    userType
    company
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute1
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute2
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute3
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute4
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute5
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute6
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute7
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute8
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute9
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute10
    sendMail
    mailVerified
    グループ属性 タイプ フィルター処理のサポート SAP Cloud Identity Services に必要
    id
    externalId
    displayName
    urn:sap:cloud:scim:schemas:extension:custom:2.0:Group:name
    urn:sap:cloud:scim:schemas:extension:custom:2.0:Group:description
    members リファレンス
  18. スコープ フィルターを構成するには、スコープ フィルターに関する記事に記載されている次の手順 参照してください。

  19. SAP Cloud Identity Services のMicrosoft Entra プロビジョニング サービスを有効にするには、Settings>/c0> セクションで Provisioning StatusOn に変更します。

    [プロビジョニング状態オン]のスクリーンショット。

  20. [設定] セクションの [範囲] の値には、[ロール割り当て済みユーザーとグループのみを同期する] を選択します。

    プロビジョニング スコープのスクリーンショット。

  21. プロビジョニングの準備ができたら、 [保存] を選択します。

    プロビジョニング設定の保存のスクリーンショット。

この操作によって、 [設定] セクションの [スコープ] で定義したすべてのユーザーの初期同期が開始されます。 [ロール割り当て済みユーザーとグループのみを同期する] に範囲を設定し、アプリケーションにユーザーまたはグループが割り当てられていない場合、ユーザーがアプリケーションに割り当てられるまで同期は行われません。

Microsoft Entra IDから SAP Cloud Identity Services への新しいテスト ユーザーのプロビジョニング

1 人の新しいMicrosoft Entraテスト ユーザーを SAP Cloud Identity Services に割り当てて、自動ユーザー プロビジョニング構成をテストすることをお勧めします。

  1. 少なくとも Microsoft Entra 管理センターCloud アプリケーション管理者およびユーザー管理者としてサインインします。
  2. Entra ID>Users に移動します。
  3. [新しいユーザー]>[新しいユーザーの作成] を選択します。
  4. 新しいテスト ユーザーの [ユーザー プリンシパル名][表示名] を入力します。 ユーザー プリンシパル名は、現在または以前のMicrosoft Entraユーザーまたは SAP Cloud Identity Services ユーザーと同じではなく、一意である必要があります。 [確認と作成][作成] の順に選択します。
  5. テスト ユーザーが作成されたら、Entra ID>Enterprise アプリに移動します。
  6. SAP Cloud Identity Services アプリケーションを選択します。
  7. [ユーザーとグループ] を選択し、次に [ユーザー/グループの追加] を選択します。
  8. [ユーザーとグループ] で、[選択なし] を選択して、テキスト ボックスにテスト ユーザーのユーザー プリンシパル名を入力します。
  9. [選択] を選択し、次に [割り当て] を選択します。
  10. [プロビジョニング] を選択し、次に [オンデマンド プロビジョニング] を選択します。
  11. [ユーザーまたはグループの選択] テキスト ボックスに、テスト ユーザーのユーザー プリンシパル名を入力します。
  12. プロビジョン を選択します。
  13. プロビジョニングが完了するまで待ちます。 成功した場合は、メッセージ Modified attributes (successful)が表示されます。

また、必要に応じて、ユーザーがアプリケーションのスコープ外になったときに、Microsoft Entra プロビジョニング サービスがプロビジョニングする内容を確認することもできます。

  1. ユーザーおよびグループの選択
  2. テスト ユーザーを選択し、次に [削除] を選択します。
  3. テスト ユーザーが削除されたら、[プロビジョニング] を選択し、[オンデマンドのプロビジョニング] を選択します。
  4. [ユーザーまたはグループ] テキスト ボックスに、割り当て解除されたばかりのテスト ユーザーのユーザー プリンシパル名を入力します。
  5. プロビジョン を選択します。
  6. プロビジョニングが完了するまで待ちます。

最後に、Microsoft Entra IDからテスト ユーザーを削除できます。

  1. Entra ID>Users に移動します。
  2. テスト ユーザーを選択し、[削除] を選択し、次に [OK] を選択します。 このアクションにより、テスト ユーザーがMicrosoft Entra IDから論理的に削除されます。

その後、SAP Cloud Identity Services からテスト ユーザーを削除することもできます。

アプリケーション内の既存のユーザーを識別し、エンタープライズ アプリケーションに割り当てる

Microsoft Entraは、アプリケーション内の既存のユーザーを検出し、エンタープライズ アプリケーションへの割り当てを簡素化できます。 プロビジョニングの概要ページの [ ID の検出 ] ボタンをクリックします。 レポートが生成されると、アプリケーション内のすべてのユーザーのビューが表示されます。アプリケーション内のユーザーは、Microsoft Entra ID ユーザーと一致し、どのユーザーが Microsoft Entra ID のエンタープライズ アプリケーションに既に割り当てられているか、アプリケーション内のどのユーザーがMicrosoft Entra IDユーザーと一致していません。 その後、単純な PowerShell スクリプトを実行して、検出されたユーザーをアプリケーションに割り当てることができます。

  1. CorrelatedUsers.ps1 ファイルをダウンロードします。

  2. 現在ロール割り当てがないユーザーに対するアプリケーションロール割り当てを作成する準備を行う(テスト実行):

    .\Assign-CorrelatedUsers.ps1 -ServicePrincipalId "7A22..." -DryRun
    
  3. 現在ロールの割り当てがないユーザーに対してアプリケーション ロールの割り当てを作成します。

    .\Assign-CorrelatedUsers.ps1 -ServicePrincipalId "7A22..."
    
  4. 変更がMicrosoft Entra ID内に反映されるまで 1 分待ちます。

検出機能には、Entra ID ガバナンス ライセンスが必要です。 必要なライセンスを持たない組織でも、以下の手順に従って SAP CLout Identity Services の既存のユーザーを特定し、Microsoft Entraのエンタープライズ アプリケーションに割り当てることができます。

既存の SAP Cloud Identity Services ユーザーが必要な合致属性を持っていることを確認する

Microsoft Entra IDの SAP Cloud Identity Services アプリケーションに非テスト ユーザーを割り当てる前に、Microsoft Entra IDのユーザーと同じユーザーを表す SAP Cloud Identity Services に既に存在するすべてのユーザーに、SAP Cloud Identity Services にマッピング属性が設定されていることを確認する必要があります。

プロビジョニング マッピングでは、Matching プロパティとして選択された属性が、Microsoft Entra IDのユーザー アカウントと SAP Cloud Identity Services のユーザー アカウントとの照合に使用されます。 SAP Cloud Identity Services に一致しないユーザーがMicrosoft Entra IDに存在する場合、Microsoft Entra プロビジョニング サービスは新しいユーザーの作成を試みます。 Microsoft Entra IDにユーザーが存在し、SAP Cloud Identity Services に一致する場合、Microsoft Entra プロビジョニング サービスはその SAP Cloud Identity Services ユーザーを更新します。 このため、SAP Cloud Identity Services に既に存在するユーザーには、[照合] プロパティとして選択されている属性が設定されていることを確認する必要があります。そうしないと、重複するユーザーが作成される可能性があります。 Microsoft Entraアプリケーション属性マッピングで一致する属性を変更する必要がある場合は、「ソース システムとターゲット システムのユーザーの照合を参照してください。

  1. SAP Cloud Identity Services 管理コンソール、https://<tenantID>.accounts.ondemand.com/admin、または試用版の場合には https://<tenantID>.trial-accounts.ondemand.com/admin にサインインします。

  2. [ユーザーと認可] > [ユーザーのエクスポート] に移動します。

  3. Microsoft Entraユーザーを SAP のユーザーと照合するために必要なすべての属性を選択します。 これらの属性には、SCIM IDuserNameemails、および識別子として SAP システムで使用できるその他の属性が含まれます。

  4. [エクスポート] を選択し、ブラウザーが CSV ファイルをダウンロードするまで待ちます。

  5. PowerShell ウィンドウを開きます。

  6. エディターに次のスクリプトを入力します。 1 行目で、userName 以外の照合属性を選択した場合は、sapScimUserNameField 変数の値を SAP Cloud Identity Services 属性の名前に変更します。 2 行目で、エクスポートした CSV ファイルのファイル名に引数を Users-exported-from-sap.csv からダウンロードしたファイルの名前に変更します。

    $sapScimUserNameField = "userName"
    $existingSapUsers = import-csv -Path ".\Users-exported-from-sap.csv" -Encoding UTF8
    $count = 0
    $warn = 0
    foreach ($u in $existingSapUsers) {
     $id = $u.id
     if (($null -eq $id) -or ($id.length -eq 0)) {
         write-error "Exported CSV file doesn't contain the ID attribute of SAP Cloud Identity Services users."
         throw "ID attribute not available, re-export"
         return
     }
     $count++
     $userName = $u.$sapScimUserNameField
     if (($null -eq $userName) -or ($userName.length -eq 0)) {
         write-warning "SAP Cloud Identity Services user $id doesn't have a $sapScimUserNameField attribute populated"
         $warn++
     }
    }
    write-output "$warn of $count users in SAP Cloud Identity Services did not have the $sapScimUserNameFIeld attribute populated."
    
  7. スクリプトを実行します。 スクリプトが完了したら、必要な照合属性がないユーザーが 1 人以上いた場合は、エクスポートされた CSV ファイルまたは SAP Cloud Identity Services 管理コンソールでそれらのユーザーを検索します。 これらのユーザーもMicrosoft Entraに存在する場合は、最初にそれらのユーザーの SAP Cloud Identity Services 表現を更新して、一致する属性が設定されるようにする必要があります。

  8. SAP Cloud Identity Services でこれらのユーザーの属性を更新したら、手順 2 から 5 と当セクションの PowerShell 手順で説明されているように SAP Cloud Identity Services からユーザーを再エクスポートし、SAP Cloud Identity Services のユーザーにそれらのユーザーへのプロビジョニングを妨げる照合属性がないことを確認します。

SAP Cloud Identity Services から取得したすべてのユーザーの一覧が作成されたので、アプリケーションのデータ ストアのユーザーを、既にMicrosoft Entra IDユーザーと照合して、プロビジョニングのスコープに含めるユーザーを決定します。

Microsoft Entra IDでユーザーの ID を取得する

このセクションでは、Microsoft Graph PowerShell コマンドレットを使用してMicrosoft Entra IDを操作する方法について説明します。

このシナリオで組織が初めてこれらのコマンドレットを使用するときは、テナントで powerShell Microsoft Graph使用できるようにするには、グローバル管理者ロールである必要があります。 以降の操作では、次のような低い特権のロールを使用できます。

  • ユーザー管理者、新しいユーザーの作成が予測される場合。
  • アプリケーション管理者または ID ガバナンス管理者、アプリケーション ロールの割り当ての管理だけを行う場合。
  1. PowerShell を開きます。

  2. Microsoft Graph PowerShell モジュールが既にインストールされていない場合は、次のコマンドを使用して、Microsoft.Graph.Users モジュールなどをインストールします。

    Install-Module Microsoft.Graph
    

    これらのモジュールが既にインストールされている場合は、最新バージョンを使用していることを確認します。

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Microsoft Entra IDに接続します。

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. このコマンドを初めて使用する場合は、Microsoft Graphコマンド ライン ツールにこれらのアクセス許可を付与することを許可する必要があります。

  5. アプリケーションのデータ ストアから取得したユーザーの一覧を、PowerShell セッションに読み込みます。 ユーザーの一覧の形式が CSV ファイルであった場合は、PowerShell コマンドレット Import-Csv を使用し、引数として前のセクションのファイルの名前を指定できます。

    たとえば、SAP Cloud Identity Services から取得したファイル名が Users-exported-from-sap.csv で、現在のディレクトリにある場合は、次のコマンドを入力します。

    $filename = ".\Users-exported-from-sap.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    

    別の例として、データベースまたはディレクトリを使用している場合、ファイル名が users.csv で、現在のディレクトリにある場合は、次のコマンドを入力します:

    $filename = ".\users.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    
  6. Microsoft Entra IDのユーザーの属性と一致するusers.csv ファイルの列を選択します。

    SAP Cloud Identity Services を使用している場合、既定のマッピングは、Microsoft Entra ID属性 userName を持つ SAP SCIM 属性 userPrincipalName です。

    $db_match_column_name = "userName"
    $azuread_match_attr_name = "userPrincipalName"
    

    別の例として、データベースまたはディレクトリを使用している場合、EMail という名前の列の値が Microsoft Entra 属性 userPrincipalName と同じ値であるデータベース内のユーザーがいる場合があります。

    $db_match_column_name = "EMail"
    $azuread_match_attr_name = "userPrincipalName"
    
  7. Microsoft Entra IDでこれらのユーザーの ID を取得します。

    次の PowerShell スクリプトでは、前に指定された $dbusers$db_match_column_name$azuread_match_attr_name の各値を使用します。 Microsoft Entra IDクエリを実行して、ソース ファイル内の各レコードに一致する値を持つ属性を持つユーザーを検索します。 ソース SAP Cloud Identity Services、データベース、またはディレクトリから取得したファイルに多数のユーザーが存在する場合、このスクリプトが完了するまでに数分かかる場合があります。 Microsoft Entra IDに値を持つ属性がなく、contains またはその他のフィルター式を使用する必要がある場合は、このスクリプトをカスタマイズし、次の手順 11 で別のフィルター式を使用する必要があります。

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    
  8. 前のクエリの結果を表示します。 エラーまたは一致が見つからないために、SAP Cloud Identity Services のユーザー、データベース、またはディレクトリがMicrosoft Entra IDに配置できなかったかどうかを確認します。

    次の PowerShell スクリプトでは、見つからなかったレコードの数を表示します。

    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Error "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    
  9. スクリプトが完了すると、データ ソースのレコードがMicrosoft Entra IDに存在しなかった場合にエラーが表示されます。 アプリケーションのデータ ストアのユーザーのすべてのレコードをMicrosoft Entra IDのユーザーとして配置できない場合は、一致しなかったレコードとその理由を調査する必要があります。

    たとえば、アプリケーションのデータ ソースで対応する mail プロパティが更新されずに、他のユーザーの電子メール アドレスと userPrincipalName がMicrosoft Entra IDで変更されている可能性があります。 または、ユーザーは既に組織を離れているが、まだアプリケーションのデータ ソースに存在する可能性があります。 または、アプリケーションのデータ ソースにベンダーまたはスーパー管理者アカウントがあり、Microsoft Entra IDの特定のユーザーに対応していない場合があります。

  10. Microsoft Entra IDに見つからないか、アクティブでサインインできないユーザーがいる場合で、SAP Cloud Identity Services、データベース、またはディレクトリで彼らのアクセス権を確認したり、属性を更新したりしたい場合は、アプリケーションや照合ルールを更新するか、Microsoft Entraでユーザーを更新または作成する必要があります。 変更を加えるための詳細については、「Microsoft Entra ID に一致しなかったアプリケーションの管理マッピングとユーザーアカウント」を参照してください。

    Microsoft Entra IDでユーザーを作成するオプションを選択した場合は、次のいずれかを使用してユーザーを一括で作成できます。

    • Microsoft Entra 管理センターで大量のユーザーを作成する方法については、CSV ファイル を参照してください。
    • New-MgUser コマンドレット

    これらの新しいユーザーには、Microsoft Entra IDが後でアプリケーション内の既存のユーザーと一致するために必要な属性と、userPrincipalNamemailNicknamedisplayName など、Microsoft Entra IDで必要な属性が設定されていることを確認します。 userPrincipalName は、ディレクトリ内のすべてのユーザー間で一意である必要があります。

    たとえば、EMail という名前の列の値が Microsoft Entra ユーザー プリンシパル名として使用する値、Alias 列の値にMicrosoft Entra IDメール のニックネームが含まれ、Full name 列の値にユーザーの表示名が含まれているデータベースにユーザーがいる場合があります。

    $db_display_name_column_name = "Full name"
    $db_user_principal_name_column_name = "Email"
    $db_mail_nickname_column_name = "Alias"
    

    その後、このスクリプトを使用して、SAP Cloud Identity Services、データベース、またはディレクトリ内でMicrosoft Entra IDのユーザーと一致しないユーザーに対し、Microsoft Entraのユーザーを作成できます。 このスクリプトを変更して、組織で必要なMicrosoft Entra属性を追加する必要がある場合や、$azuread_match_attr_namemailNickname でもuserPrincipalNameでもない場合は、Microsoft Entra属性を指定する必要があります。

    $dbu_missing_columns_list = @()
    $dbu_creation_failed_list = @()
    foreach ($dbu in $dbu_not_matched_list) {
       if (($null -ne $dbu.$db_display_name_column_name -and $dbu.$db_display_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_user_principal_name_column_name -and $dbu.$db_user_principal_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_mail_nickname_column_name -and $dbu.$db_mail_nickname_column_name.Length -gt 0)) {
          $params = @{
             accountEnabled = $false
             displayName = $dbu.$db_display_name_column_name
             mailNickname = $dbu.$db_mail_nickname_column_name
             userPrincipalName = $dbu.$db_user_principal_name_column_name
             passwordProfile = @{
               Password = -join (((48..90) + (96..122)) * 16 | Get-Random -Count 16 | % {[char]$_})
             }
          }
          try {
            New-MgUser -BodyParameter $params
          } catch { $dbu_creation_failed_list += $dbu; throw }
       } else {
          $dbu_missing_columns_list += $dbu
       }
    }
    
  11. 不足しているユーザーをMicrosoft Entra IDに追加したら、手順 7 のスクリプトをもう一度実行します。 次に、手順 8 のスクリプトを実行します。 エラーが報告されていないことを確認します。

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Warning "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count -ne 0) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    

既存のMicrosoft Entra ユーザーが必要な属性を持っていることを確認する

自動ユーザー プロビジョニングを有効にする前に、sap Cloud Identity Services にアクセスする必要Microsoft Entra IDユーザーを決定する必要があります。その後、それらのユーザーがMicrosoft Entra IDで必要な属性を持ち、それらの属性が SAP Cloud Identity Services の予想されるスキーマにマップされていることを確認する必要があります。

  • 既定では、Microsoft Entra ユーザー userPrincipalName 属性の値は、SAP Cloud Identity Services の userName 属性と emails[type eq "work"].value 属性の両方にマップされます。 ユーザーのメール アドレスがユーザー プリンシパル名と異なる場合は、このマッピングを変更する必要があります。
  • 会社の郵便番号の形式が会社の国または地域と一致しない場合、SAP Cloud Identity Services では、 postalCode 属性の値が無視されることがあります。
  • 既定では、Microsoft Entra属性 country は SAP Cloud Identity Services addresses[type eq "work"].country フィールドにマップされます。 country属性の値が 2 文字の ISO 3166 国コードでない場合、SAP Cloud Identity Services でそれらのユーザーを作成できない可能性があります。 詳細については、「 countries.properties」を参照してください。
  • 既定では、Microsoft Entra属性 department は SAP Cloud Identity Services urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department 属性にマップされます。 Microsoft Entraユーザーが department 属性の値を持っている場合、それらの値は SAP Cloud Identity Services で既に構成されている部門と一致する必要があります。そうしないと、ユーザーの作成または更新が失敗します。 詳細については、 departments.properties を参照してください。 Microsoft Entraユーザーのdepartment値が SAP 環境内の値と一致しない場合は、ユーザーを割り当てる前に、Microsoft Entraの部門の値を更新するか、SAP Cloud Identity Services で許可されている部門の値を更新するか、マッピングを削除します。
  • SAP Cloud Identity Services の SCIM エンドポイントでは、いくつかの属性を特定の形式にする必要があります。 これらの属性とその特定の形式の詳細については、ここを参照してください。

Microsoft Entra IDで SAP Cloud Identity Services アプリケーションにユーザーを割り当てる

Microsoft Entra IDでは、assignments という概念を使用して、選択したアプリへのアクセスを受け取るユーザーを決定します。 自動ユーザー プロビジョニングのコンテキストで、Scope の設定値が 割り当てられたユーザーとグループのみを同期するの場合、Microsoft Entra IDでそのアプリケーションのアプリケーション ロールに割り当てられているユーザーとグループのみが SAP Cloud Identity Services と同期されます。 SAP Cloud Identity Services にユーザーを割り当てるときは、有効なアプリケーション固有ロール (使用可能な場合) を割り当てダイアログで選択する必要があります。 既定のアクセス ロールのユーザーは、プロビジョニングから除外されます。 現在、SAP Cloud Identity Services で使用可能なロールは [ユーザー] のみです。

アプリケーションに対してプロビジョニングが既に有効になっている場合は、アプリケーションにさらにユーザーを割り当てる前に、アプリケーション プロビジョニングが 検疫 されていないことを確認します。 先に進む前に、検疫の原因となっている問題をすべて解決します。

SAP Cloud Identity Services に存在し、Microsoft Entra IDでアプリケーションにまだ割り当てられていないユーザーを確認します

前の手順では、SAP Cloud Identity Services のユーザーも Microsoft Entra ID のユーザーとして存在するかどうかを評価しました。 ただし、Microsoft Entra ID 内のすべてのユーザーがアプリケーションのロールに現在割り当てられているとは限りません。 そこで、次のステップでは、アプリケーション ロールに割り当てられていないユーザーがいないかを確認します。

  1. PowerShell を使用して、アプリケーションのサービスプリンシパルIDを検索します。

    たとえば、エンタープライズ アプリケーションの名前が SAP Cloud Identity Services である場合は、次のコマンドを入力します。

    $azuread_app_name = "SAP Cloud Identity Services"
    $azuread_sp_filter = "displayName eq '" + ($azuread_app_name -replace "'","''") + "'"
    $azuread_sp = Get-MgServicePrincipal -Filter $azuread_sp_filter -All
    
  2. Microsoft Entra IDで現在アプリケーションに割り当てられているユーザーを取得します。

    これは前のコマンドで設定した $azuread_sp 変数に基づいています。

    $azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
    
  3. SAP Cloud Identity Services と Microsoft Entra ID の両方に既に存在するユーザーのユーザー ID の一覧を、Microsoft Entra IDのアプリケーションに現在割り当てられているユーザーと比較します。 このスクリプトは、前のセクションで設定した $azuread_match_id_list 変数に基づいてビルドされています:

    $azuread_not_in_role_list = @()
    foreach ($id in $azuread_match_id_list) {
       $found = $false
       foreach ($existing in $azuread_existing_assignments) {
          if ($existing.principalId -eq $id) {
             $found = $true; break;
          }
       }
       if ($found -eq $false) { $azuread_not_in_role_list += $id }
    }
    $azuread_not_in_role_count = $azuread_not_in_role_list.Count
    Write-Output "$azuread_not_in_role_count users in the application's data store aren't assigned to the application roles."
    

    アプリケーション ロールに割り当てられているユーザーが0人でない場合、つまりすべてのユーザーがアプリケーション ロールに割り当てられていることを示します。これは、Microsoft Entra IDとSAP Cloud Identity Services間で共通のユーザーがいなかったことを示しているため、変更は必要ありません。 ただし、SAP Cloud Identity Services に既に存在する 1 人以上のユーザーが現在アプリケーション ロールに割り当てられていない場合は、手順を続行し、アプリケーションのロールのいずれかに追加する必要があります。

  4. アプリケーションのサービスプリンシパルのUserの役割を選択します。

    $azuread_app_role_name = "User"
    $azuread_app_role_id = ($azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User" -and $_.DisplayName -eq "User"}).Id
    if ($null -eq $azuread_app_role_id) { write-error "role $azuread_app_role_name not located in application manifest"}
    
  5. SAP Cloud Identity Services と Microsoft Entra に既に存在し、現在アプリケーションにロールの割り当てがないユーザーに対して、アプリケーション ロールの割り当てを作成します。

    foreach ($u in $azuread_not_in_role_list) {
       $res = New-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -AppRoleId $azuread_app_role_id -PrincipalId $u -ResourceId $azuread_sp.Id
    }
    
  6. 変更がMicrosoft Entra ID内に反映されるまで 1 分待ちます。

  7. 次のMicrosoft Entraプロビジョニング サイクルでは、Microsoft Entra プロビジョニング サービスによって、アプリケーションに割り当てられているユーザーの表現と SAP Cloud Identity Services の表現が比較され、SAP Cloud Identity Services ユーザーがMicrosoft Entra IDの属性を持つよう更新されます。

残りのユーザーを割り当てて初期同期を監視する

テストが完了し、ユーザーが SAP Cloud Identity Services に正常にプロビジョニングされ、既存の SAP Cloud Identity Services ユーザーがアプリケーション ロールに割り当てられると、ここの手順のいずれかに従って、追加の許可されているユーザーを SAP Cloud Identity Services アプリケーションに割り当てることができます:

ユーザーがアプリケーション ロールに割り当てられ、プロビジョニングのスコープに入ると、Microsoft Entra プロビジョニング サービスによって SAP Cloud Identity Services にプロビジョニングされます。 初期同期は後続の同期よりも実行に時間がかかることに注意してください。これは、Microsoft Entra プロビジョニング サービスが実行されている限り、約 40 分ごとに発生します。

ユーザーがプロビジョニングされているのが表示されない場合は、ユーザーがプロビジョニングされない問題に関するトラブルシューティング ガイドの手順を確認します。 次に、Microsoft Entra 管理センター または Graph API を使用してプロビジョニング ログを確認します。 ログを状態 [失敗] でフィルター処理します。 DuplicateTargetEntries の ErrorCode でエラーが発生した場合、これはプロビジョニングの一致ルールのあいまいさを示し、各Microsoft Entra ユーザーが 1 人のアプリケーション ユーザーと一致するように、照合に使用されるMicrosoft Entraユーザーまたはマッピングを更新する必要があります。 次に、ログをアクション [作成] と状態 [スキップ済み] でフィルター処理します。 ユーザーがNotEffectivelyEntitledのSkipReasonコードでスキップされた場合、これはMicrosoft Entra IDのユーザーアカウントが一致しなかったことを示している可能性があります。なぜなら、ユーザーアカウントの状態がDisabledであったからです。

シングル サインオンの構成

SAP Cloud Identity Services のシングル サインオンに関する記事で説明されている手順に従って、 SAP Cloud Identity Services に対して SAML ベースのシングル サインオンを有効にすることもできます。 シングル サインオンは自動ユーザー プロビジョニングとは別に構成できますが、これらの 2 つの機能は相補的な関係にあります。

プロビジョニングを監視する

Synchronization Details セクションを使用すると、進行状況を監視し、リンクをクリックしてプロビジョニング アクティビティ レポートを取得できます。このレポートには、MICROSOFT ENTRA プロビジョニング サービスによって SAP Cloud Identity Services に対して実行されたすべてのアクションが記載されています。 また、Microsoft Graph API を使用してプロビジョニング プロジェクトを監視することもできます。

Microsoft Entra プロビジョニング ログを読み取る方法の詳細については、「自動ユーザー アカウント プロビジョニングに関するレポートを参照してください。

アプリケーション ロールの割り当てを維持する

アプリケーションに割り当てられているユーザーがMicrosoft Entra IDで更新されると、それらの変更は SAP Cloud Identity Services に自動的にプロビジョニングされます。

Microsoft Entra ID ガバナンスがある場合は、Microsoft Entra IDの SAP Cloud Identity Services のアプリケーション ロールの割り当ての変更を自動化し、ユーザーが組織に参加するときに割り当てを追加または削除したり、ロールを離れたり変更したりできます。

SAP Cloud Identity Services SCIM 2.0 エンドポイントを使用するように SAP Cloud Identity Services アプリケーションを更新する

2025 年 9 月Microsoft、SAP Cloud Identity Services の SCIM 2.0 コネクタがリリースされました。このコネクタでは、SAP Cloud Identity Services へのグループ プロビジョニングとプロビジョニング解除、カスタム拡張機能属性、OAuth 2.0 クライアント資格情報の付与のサポートが追加されました。

以下の手順を完了すると、SAP Cloud Identity Services コネクタを既に使用していたお客様は、SCIM 1.0 エンドポイントから SCIM 2.0 エンドポイントに切り替えることができます。

  1. Microsoft Entra 管理センターに少なくとも Cloud アプリケーション管理者としてサインインします。

  2. Entra ID > Enterprise Apps > SAP Cloud Identity Services に移動します。

  3. [ プロパティ ] セクションで、オブジェクト ID をコピーします。

    SAP Cloud Identity Services コネクタの [プロパティ] ブレードでオブジェクト ID をコピーする場所のスクリーンショット。

  4. 新しい Web ブラウザー ウィンドウで、https://developer.microsoft.com/graph/graph-explorer に移動し、アプリが追加されるMicrosoft Entra テナントの管理者としてサインインします。

  5. 使用されているアカウントに正しいアクセス許可があることを確認します。 この変更を行うには、アクセス許可 "Directory.ReadWrite.All" が必要です。

    管理者が Directory.ReadWrite.All アクセス許可に同意するオプションを選択している Graph エクスプローラーの [アクセス許可] 画面のスクリーンショット。

  6. 以前にアプリから選択したオブジェクト ID を使用して、次のコマンドを実行します。

GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/
  1. 前の例の GET 要求の応答本文から "ID" 値を取得し、次のコマンドを実行し、"[job-id]" を GET 要求の ID 値に置き換えます。 この値の形式は "sapcloudidentityservices.xxxxxxxxxxxxxxx.xxxxxxxxxxxxxxx" である必要があります。
DELETE https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[job-id]
  1. Microsoft Graph エクスプローラーで、次のコマンドを実行します。 "[object-id]" を、3 番目の手順からコピーしたサービス プリンシパル ID (オブジェクト ID) に置き換えます。
POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs { "templateId": "sapcloudidentityservices" }
  1. 最初の Web ブラウザー ウィンドウに戻り、アプリケーションの [プロビジョニング] タブ 選択します。 構成がリセットされます。 ジョブ ID が "sapcloudidentityservices" で始まれば、アップグレードが成功したことを確認できます。

  2. [管理者資格情報] セクションのテナント URL を次のように更新します。https://<tenantID>.accounts.ondemand.com/scim、試用版の場合はhttps://<tenantid>.trial-accounts.ondemand.com/service/scim

  3. アプリケーションに対して行った以前の変更 (認証の詳細、スコープ フィルター、カスタム属性マッピング) を復元し、プロビジョニングを再度有効にします。

前の設定を復元できないと、SAP Cloud Identity Services で属性 (name.formatted など) が予期せず更新される可能性があります。 プロビジョニングを有効にする前に、必ず構成を確認してください。

変更ログ

  • 2025 年 9 月 30 日 – SCIM 2.0 エンドポイントを使用する SAP Cloud Identity Services コネクタの新しいバージョンを一般公開にリリース。 新しいバージョンでは、SAP Cloud Identity Services へのグループ プロビジョニングとプロビジョニング解除、カスタム拡張機能属性、OAuth 2.0 クライアント資格情報の付与がサポートされます。

その他のリソース