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

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

始める前に

次のセットアップが完了していることを確認してください。

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

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

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

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

次のサンプル方法のいずれかを使用してアプリケーションを作成および設定

  • Okta OpenID Connect を使用してアプリケーションを作成および設定する

  • Okta SAML を使用してアプリケーションを作成および設定する

Okta OpenID Connect を使用してアプリケーションを作成および設定する

OpenID Connect を使用して 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. アプリケーションが送信するカスタムグループクレーム検索条件を設定します。

    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)

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

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

    デフォルトの範囲

    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 (ユーザーの作成および更新時にマッピングを適用)]​ を選択します。 + ​image::aeh-sso-mapped-anypoint-idp-id-attribute.png[マップされた 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 (ユーザーの作成および更新時にマッピングを適用)]​ を選択します。 + ​image::aeh-sso-mapped-anypoint-username-attribute.png[マップされた 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 ポータルr) - ${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 (メンバー)]​ タブで、ユーザーが表示されていることを確認します。