このユースケースには、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 ポータル用の新しいアプリケーションを作成します。
-
Okta で、OpenID Connect Web アプリケーションを作成します。詳細は、 「Create OIDC app integrations (OIDC アプリケーションインテグレーションの作成)」を参照してください。
-
[Connection (一般設定)] セクションで、次の項目に入力します。
項目 値 App integration name (アプリケーションインテグレーション名)
アプリケーションの名前を入力します。
Grant tpe (許可種別)
[Authorization Code (認証コード)] を選択します。
Assignments (割り当て)
[Limit access to selected groups (選択済みのグループへのアクセスを制限)] を選択します。
Selected group(s) (選択済みのグループ)
API Experience Hub および Anypoint Platform のアプリケーションにアクセスする必要があるグループの名前を入力します。
-
ID プロバイダーが、「始める前に」セクションにリストされた予期されるクレームを送信していることを確認します。
-
アプリケーションが送信するクレームを設定します。
たとえば、OpenID Connect の場合、次の手順を使用してグループクレームを設定します。
-
[Sign On (サインオン)] タブで、[OpenID Connect ID Token (OpenID Connect ID トークン)] セクションの [Edit (編集)] をクリックします。
-
[Groups claim type (グループクレーム種別)] で、[Filter (検索条件)] を選択します。
-
[Groups claim filter (グループクレーム検索条件)] で、
[groups (グループ)] を入力します。 -
式で [Matches regex] を選択し、ワイルドカードに「.」*を入力します。
-
OpenID Connect を使用して Salesforce の認証プロバイダーを設定する
ID プロバイダーアプリケーション情報を使用して、Salesforce で認証プロバイダーまたは SSO 設定をセットアップします。
-
OpenID Connect アプリケーションから、次の設定値を取得します。
-
Client ID (クライアント ID)
-
Client Secret (クライアントシークレット)
-
Authorize Endpoint URL (承認エンドポイント URL)
-
Token Endpoint URL (トークンエンドポイント URL)
-
User Info Endpoint URL (ユーザー情報 エンドポイント URL)
-
-
Salesforce で [設定] に移動します。
-
[クイック検索] ボックスに
「認証」と入力し、[認証プロバイダー] を選択します。 -
[新規] をクリックします。
-
[プロバイダータイプ] 項目で、[OpenID Connect] を選択します。
-
次の項目に入力します。
項目 値 プロバイダータイプ
OpenID Connect
名前
プロバイダーの名前を入力します。
コンシューマーキー
ID プロバイダーのクライアント ID を入力します。
コンシューマーの秘密
ID プロバイダーのクライアントシークレットを入力します。
Authorize Endpoint URL (承認エンドポイント URL)
https://{domainofOktaorg}.okta.com/oauth2/v1/authorize* と入力します。Token Endpoint URL (トークンエンドポイント URL)
User Info Endpoint URL (ユーザー情報 エンドポイント URL)
https://{domainofOktaorg}.okta.com/oauth2/v1/userinfo` と入力します。デフォルトのスコープ
profile openid email groups (プロファイルの openid メールグループ)
登録ハンドラー
AEHPortalRegistrationHandler
他のアカウントで登録を実行
システム管理者ユーザーを選択します。
-
[保存] をクリックします。
ポータルのリダイレクト URI を設定する
リダイレクトを設定するには、15 桁の組織 ID と 18 桁の組織 ID を使用し、各組織 ID の URL を追加します。
-
Okta アプリケーションで、[General (一般)] タブを選択します。
-
[Sign-in redirect URIs (サインインリダイレクト URI)] に次の URL を追加します。
-
https://${domain}.my.site.com/aeh/services/authcallback/${authProviderURLSuffix}
URL を取得する手順は、次のとおりです。
-
salesforceOrganizationId の場合、[設定] > [組織情報] に移動する。
-
authProviderURLSuffix の場合、[設定] > [認証プロバイダー] に移動し、認証プロバイダーをクリックして [URL 接尾辞] を選択する。
-
domain の場合、[設定] > [私のドメイン] > [現在の [私のドメイン] の 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 にマップする手順は、次のとおりです。
-
Okta アプリケーションで、[Directory (ディレクトリ)] > [Profile Editor (プロファイルエディター)] に移動します。
-
設定したポータルアプリケーションを選択します。
-
[Add Attributes (属性を追加)] をクリックし、anypoint_idp_id という新しい属性を作成します。
-
次の項目に入力します。
項目 値 Display name (表示名)
anypoint_idp_id
Value name (値の名前)
anypoint_idp_id
-
変更を保存します。
-
[Access Management (アクセス管理)] > [Identity Providers (ID プロバイダー)] に移動し、ID プロバイダーをクリックします。
-
ブラウザーの URL から 32 桁の ID をコピーします。
-
[Okta] > [Directory (ディレクトリ)] > [Profile Editor (プロファイルエディター)] に移動し、[Mappings (マッピング)] をクリックします。
-
新しい anypoint_idp_id 属性の空の項目に ID を貼り付けます。ID は引用符で囲む必要があります。
-
黄色い矢印ドロップダウンメニューから、[Apply mapping on user create and update (ユーザーの作成および更新時にマッピングを適用)] を選択します。
-
[Save Mappings (マッピングを保存)] をクリックします。
-
プロファイル内のすべてのユーザーにマッピングを適用します。
ユーザーがすでに存在し、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 に対するユーザー名の割り当てを調整する手順は、次のとおりです。
-
Okta アプリケーションで、[Directory (ディレクトリ)] > [Profile Editor (プロファイルエディター)] に移動します。
-
設定したポータルアプリケーションを選択します。
-
[Add Attributes (属性を追加)] をクリックし、anypoint_username という新しい属性を作成します。
-
次の項目に入力します。
項目 値 Display name (表示名)
anypoint_username
Value name (値の名前)
anypoint_username
-
変更を保存します。
-
[Mappings (マッピング)] をクリックします。
-
新しい anypoint_username 属性の空の項目に、
String.substringBefore(user.login, "@") と入力します。Okta ユーザー名はメールベースであるため、この式ではメールドメインが削除されます。 -
黄色い矢印ドロップダウンメニューから、[Apply mapping on user create and update (ユーザーの作成および更新時にマッピングを適用)] を選択します。
-
[Save Mappings (マッピングを保存)] をクリックします。
ステップ 2: Salesforce ID プロバイダーを追加する
API Experience Hub UI から Salesforce ID プロバイダーを有効にします。ID プロバイダーが有効になっている場合、ユーザーはこの ID プロバイダーを使用してポータルにログインできます。
-
[API Experience Hub] > [User management (ユーザー管理)] に移動します。
-
[User management (ユーザー管理)] ページで、[Login settings (ログイン設定)] タブを選択します。
-
[Single sign-on (SSO) (シングルサインオン (SSO))] セクションから、[Add Salesforce identity providers (Salesforce ID プロバイダーを追加)] セクションまでスクロールダウンします。
-
Okta で設定した Salesforce ID プロバイダーで、スライダーを [Enabled (有効)] に移動します。
ステップ 3: グループマッピングを追加する
ポータルの SSO を設定する場合、ユーザーは Salesforce と Anypoint Platform の両方で ID を持っている必要があります。SSO ユーザーは、グループ名を使用してチームにマップされます。アクセス管理を使用して、ユーザーをチームにマップする必要があります。API Experience Hub には、[AEH Portal (AEH ポータル) - ${salesforceOrganizationId}_${salesforceCommunityId}] という標準のチームが用意されており、アクセス管理のチームとして自動的に追加されています。
API Experience Hub で対応するプロファイルにユーザーを追加することで、グループマッピングを追加します。
-
[Access Management (アクセス管理)] > [Teams (チーム)] に移動します。
-
[AEH Portal Guests (AEH ポータルゲスト)] を選択し、[AEH Portal Members (AEH ポータルメンバー)] を選択します。
-
[External IdP Groups (外部 IdP グループ)] を選択します。
-
[Group Name (グループ名)] 項目に「AEH Members」 (AEH メンバー) と入力します。
-
[Provider Name (プロバイダー名)] 項目で、対応する Salesforce ID プロバイダーの名前を選択します。
-
[Type (種別)] 項目で [Member (メンバー)] を選択し、[Add (追加)] をクリックします。
-
[Save Changes (変更を保存)] をクリックします。
指定したグループに関連付けられている SSO ユーザーがチームに割り当てられます。
ステップ 4: SSO 設定をテストする
ポータルの SSO が正しく設定されていることを確認します。
-
ブラウザーでシークレットウィンドウを開きます。
-
API Experience Hub ポータルに移動します。
-
設定した SSO オプションを選択します。
-
ポータルの ID プロバイダーで設定したグループに属するユーザーでログインします。
-
ポータルでのユーザーの API の表示を確認します。
-
[Access Management (アクセス管理)] > [Users (ユーザー)] に移動します。
-
ユーザー名を使用して検索し、ユーザーが目的の ID プロバイダーにマップされていることを確認します。
-
グループマッピングが設定されているチームに移動します。
[Members (メンバー)] タブで、ユーザーが表示されていることを確認します。