ID プロバイダーが Anypoint Platform 用にすでに設定されている場合の SSO の設定

このユースケースには、Anypoint Platform 用にすでに設定されている ID プロバイダーを使用してポータルの SSO を設定する手順が含まれています。このユースケースでは、ポータルと Anypoint Platform のユーザー名が一致しない場合に​ユーザー名の割り当て戦略​を調整する手順も提供されます。

このユースケースの手順では、ID プロバイダーの例として Okta を使用していますが、任意の ID プロバイダーを使用して SSO をセットアップできます。

始める前に

次のセットアップとコンテキストがあることを確認してください。

  • Anypoint Platform の ID プロバイダーがすでに設定されている。

  • アプリケーションにアクセスできるユーザーまたはユーザーのグループの ID が ID プロバイダーで作成されている。

  • ID プロバイダーのカスタムユーザー属性とクレームを設定するために API Experience Hub に必要なロール、権限、情報を理解する。

    「始める前に」​を参照してください。

ステップ 1 - ポータルの SSO を有効にする

このステップでは、API Experience Hub ポータルの ID プロバイダーでアプリケーションを作成および設定し、アプリケーション設定でグループ情報を送信する機能を有効にし、グループを設定し、アプリケーションを Anypoint Platform の ID プロバイダーにマップします。これらの手順を実行するには、アプリケーションと ID プロバイダーアプリケーション間を行き来して情報をコピーまたは追加する必要があります。

アプリケーションを作成および設定する

ID プロバイダーで API Experience Hub ポータル用の新しいアプリケーションを作成します。

  1. Okta で、OpenID Connect Web アプリケーションを作成します。詳細は、 「Create OIDC app integrations (OIDC アプリケーションインテグレーションの作成)」​を参照してください。

  2. [Connection (一般設定)]​ セクションで、次の項目に入力します。

    項目

    App integration name (アプリケーションインテグレーション名)

    アプリケーションの名前を入力します。

    Grant tpe (許可種別)

    [Authorization Code (認証コード)]​ を選択します。

    Assignments (割り当て)

    [Limit access to selected groups (選択済みのグループへのアクセスを制限)]​ を選択します。

    Selected group(s) (選択済みのグループ)

    API Experience Hub および Anypoint Platform のアプリケーションにアクセスする必要があるグループの名前を入力します。

  3. ID プロバイダーが、​「始める前に」​セクションにリストされた予期されるクレームを送信していることを確認します。

  4. アプリケーションが送信するクレームを設定します。

    たとえば、OpenID Connect の場合、次の手順を使用してグループクレームを設定します。

    1. [Sign On (サインオン)]​ タブで、​[OpenID Connect ID Token (OpenID Connect ID トークン)]​ セクションの ​[Edit (編集)]​ をクリックします。

    2. [Groups claim type (グループクレーム種別)]​ で、​[Filter (検索条件)]​ を選択します。

    3. [Groups claim filter (グループクレーム検索条件)]​ で、​[groups (グループ)]​ を入力します。

    4. 式で ​[Matches regex]​ を選択し、ワイルドカードに​「.」*​を入力します。

      グループクレーム検索条件の例

OpenID Connect を使用して Salesforce の認証プロバイダーを設定する

ID プロバイダーアプリケーション情報を使用して、Salesforce で認証プロバイダーまたは SSO 設定をセットアップします。

  1. OpenID Connect アプリケーションから、次の設定値を取得します。

    • Client ID (クライアント ID)

    • Client Secret (クライアントシークレット)

    • Authorize Endpoint URL (承認エンドポイント URL)

    • Token Endpoint URL (トークンエンドポイント URL)

    • User Info Endpoint URL (ユーザー情報 エンドポイント URL)

  2. Salesforce​ で ​[設定]​ に移動します。

  3. [クイック検索]​ ボックスに​「認証」​と入力し、​[認証プロバイダー]​ を選択します。

  4. [新規]​ をクリックします。

  5. [プロバイダータイプ]​ 項目で、​[OpenID Connect]​ を選択します。

  6. 次の項目に入力します。

    項目

    プロバイダータイプ

    OpenID Connect

    名前

    プロバイダーの名前を入力します。

    コンシューマーキー

    ID プロバイダーのクライアント ID を入力します。

    コンシューマーの秘密

    ID プロバイダーのクライアントシークレットを入力します。

    Authorize Endpoint URL (承認エンドポイント URL)

    https://{domainofOktaorg}.okta.com/oauth2/v1/authorize*​ と入力します。

    Token Endpoint URL (トークンエンドポイント URL)

    https://{domainofOktaorg}.okta.com/oauth2/v1/token​ と入力します。

    User Info Endpoint URL (ユーザー情報 エンドポイント URL)

    https://{domainofOktaorg}.okta.com/oauth2/v1/userinfo`​ と入力します。

    デフォルトの範囲

    profile openid email groups (プロファイルの openid メールグループ)

    登録ハンドラー

    AEHPortalRegistrationHandler

    他のアカウントで登録を実行

    システム管理者ユーザーを選択します。

    Salesforce 認証プロバイダーの例
  7. [保存]​ をクリックします。

ポータルのリダイレクト URI を設定する

リダイレクトを設定するには、15 桁の組織 ID と 18 桁の組織 ID を使用し、各組織 ID の URL を追加します。

  1. Okta アプリケーションで、​[General (一般)]​ タブを選択します。

  2. [Sign-in redirect URIs (サインインリダイレクト URI)]​ に次の URL を追加します。

Anypoint Platform の ID プロバイダーにアプリケーションをマップする

anypoint_idp_id という新しいカスタム属性を追加して設定することで、ID プロバイダー ID を anypoint_idp_id にマップする必要があります。

ポータルと Anypoint Platform のユーザー名が一致しない場合、anypoint_username という別のカスタム属性を追加して、ポータルの ID と Anypoint Platform のユーザーが一致するように既存の ID プロバイダーユーザーを強制的に更新します。

anypoint_idp_id を Anypoint Platform ID プロバイダー ID にマップする手順は、次のとおりです。

  1. Okta アプリケーションで、​[Directory (ディレクトリ)] > [Profile Editor (プロファイルエディター)]​ に移動します。

  2. 設定したポータルアプリケーションを選択します。

  3. [Add Attributes (属性を追加)]​ をクリックし、​anypoint_idp_id​ という新しい属性を作成します。

  4. 次の項目に入力します。

    項目

    Display name (表示名)

    anypoint_idp_id

    Value name (値の名前)

    anypoint_idp_id

  5. 変更を保存します。

  6. [Access Management (アクセス管理)] > [Identity Providers (ID プロバイダー)]​ に移動し、ID プロバイダーをクリックします。

  7. ブラウザーの URL から 32 桁の ID をコピーします。

    ブラウザーの URL にある 32 桁の例
  8. [Okta] > [Directory (ディレクトリ)] > [Profile Editor (プロファイルエディター)]​ に移動し、​[Mappings (マッピング)]​ をクリックします。

  9. 新しい anypoint_idp_id 属性の空の項目に ID を貼り付けます。ID は引用符で囲む必要があります。

  10. 黄色い矢印ドロップダウンメニューから、​[Apply mapping on user create and update (ユーザーの作成および更新時にマッピングを適用)]​ を選択します。

    マップされた anypoint_idp_id 属性の例
  11. [Save Mappings (マッピングを保存)]​ をクリックします。

  12. プロファイル内のすべてのユーザーにマッピングを適用します。

ユーザーがすでに存在し、anypoint_idp_id が設定される前にポータルにログインしている場合、デフォルトの ID プロバイダー [AEH Users (AEH ユーザー) - ${salesforceOrganizationId}] が使用されます。ユーザーが複製されることを防ぐため、ユーザーは anypoint_idp_id 項目で指定された新しい ID プロバイダーには追加されません。

ユーザーが Salesforce にすでに存在し、SSO を使用してポータルにログインしている場合、「API Experience Hub Member User (API Experience Hub メンバーユーザー)」権限セットがそのユーザーに割り当てられます (権限セットがまだ割り当てられていない場合)。

ポータルと Anypoint Platform での 1 つの ID に対するユーザー名の割り当てを調整する手順は、次のとおりです。

  1. Okta アプリケーションで、​[Directory (ディレクトリ)] > [Profile Editor (プロファイルエディター)]​ に移動します。

  2. 設定したポータルアプリケーションを選択します。

  3. [Add Attributes (属性を追加)]​ をクリックし、​anypoint_username​ という新しい属性を作成します。

  4. 次の項目に入力します。

    項目

    Display name (表示名)

    anypoint_username

    Value name (値の名前)

    anypoint_username

  5. 変更を保存します。

  6. [Mappings (マッピング)]​ をクリックします。

  7. 新しい ​anypoint_username​ 属性の空の項目に、​String.substringBefore(user.login, "@")​ と入力します。Okta ユーザー名はメールベースであるため、この式ではメールドメインが削除されます。

  8. 黄色い矢印ドロップダウンメニューから、​[Apply mapping on user create and update (ユーザーの作成および更新時にマッピングを適用)]​ を選択します。

    マップされた anypoint_username 属性の例
  9. [Save Mappings (マッピングを保存)]​ をクリックします。

ステップ 2: Salesforce ID プロバイダーを追加する

API Experience Hub UI から Salesforce ID プロバイダーを有効にします。ID プロバイダーが有効になっている場合、ユーザーはこの ID プロバイダーを使用してポータルにログインできます。

  1. [API Experience Hub] > [User management (ユーザー管理)]​ に移動します。

  2. [User management (ユーザー管理)]​ ページで、​[Login settings (ログイン設定)]​ タブを選択します。

  3. [Single sign-on (SSO) (シングルサインオン (SSO))]​ セクションから、​[Add Salesforce identity providers (Salesforce ID プロバイダーを追加)]​ セクションまでスクロールダウンします。

  4. Okta で設定した Salesforce ID プロバイダーで、スライダーを ​[Enabled (有効)]​ に移動します。

ステップ 3: グループマッピングを追加する

ポータルの SSO を設定する場合、ユーザーは Salesforce と Anypoint Platform の両方で ID を持っている必要があります。SSO ユーザーは、グループ名を使用してチームにマップされます。アクセス管理を使用して、ユーザーをチームにマップする必要があります。API Experience Hub には、​[AEH Portal (AEH ポータル) - ${salesforceOrganizationId}_${salesforceCommunityId}]​ という標準のチームが用意されており、アクセス管理のチームとして自動的に追加されています。

API Experience Hub で対応するプロファイルにユーザーを追加することで、グループマッピングを追加します。

  1. [Access Management (アクセス管理)]​ > [Teams (チーム)] に移動します。

  2. [AEH Portal Guests (AEH ポータルゲスト)]​ をクリックし、​[AEH Portal Members (AEH ポータルメンバー)]​ をクリックします。

  3. [External IdP Groups (外部 IdP グループ)]​ をクリックします。

  4. [Group Name (グループ名)]​ 項目に​「AEH Members」​ (AEH メンバー) と入力します。

  5. [Provider Name (プロバイダー名)]​ 項目で、対応する Salesforce ID プロバイダーの名前を選択します。

  6. [Type (種別)]​ 項目で ​[Member (メンバー)]​ を選択し、​[Add (追加)]​ をクリックします。

    アクセス管理グループマッピング
  7. [Save Changes (変更を保存)]​ をクリックします。

    指定したグループに関連付けられている SSO ユーザーがチームに割り当てられます。

ステップ 4: SSO 設定をテストする

ポータルの SSO が正しく設定されていることを確認します。

  1. ブラウザーでシークレットウィンドウを開きます。

  2. API Experience Hub ポータルに移動します。

  3. 設定した SSO オプションを選択します。

  4. ポータルの ID プロバイダーで設定したグループに属するユーザーでログインします。

  5. ポータルでのユーザーの API の表示を確認します。

  6. [Access Management (アクセス管理)]​ に移動し、​[Users (ユーザー)]​ を選択します。

  7. ユーザー名を使用して検索し、ユーザーが目的の ID プロバイダーにマップされていることを確認します。

  8. グループマッピングが設定されているチームに移動します。

    [Members (メンバー)]​ タブで、ユーザーが表示されていることを確認します。