システム管理者またはセキュリティチームは、API Experience Hub ポータルのログインオプションとして外部 ID プロバイダー (IdP) を実装できます。シングルサインオン (SSO) 認証は、組織の独自のブランドを使用して顧客にシームレスなログイン環境を提供します。ユーザーは、別のユーザー名とパスワードを覚えたり、ログイン情報を何度も入力したりすることなく、ポータルにログインできます。
ポータルのメンバーがポータルページにアクセスして SSO オプションを選択すると、認証のために ID プロバイダーのログインページにリダイレクトされます。SSO 認証プロセスでは、ID プロバイダーを使用してユーザーの ID を確認します。ログインが成功すると、ユーザープロファイルと一致するユーザーがアクセス管理内に作成されます。ユーザーが API を参照および検出するための API Experience Hub ポータルホームページが表示されます。
アクセス管理により、Anypoint Platform の SSO の ID 管理が設定されます。ID プロバイダーについての詳細は、アクセス管理の 「ID 管理」を参照してください。
ポータルの SSO の設定には、次の概要手順が含まれます。これらの手順は、ユースケースによって異なる場合があります。
-
ステップ 1 - ポータルの SSO を有効にする
このステップでは、ID プロバイダーでアプリケーションを作成して設定します。
-
ステップ 2: Salesforce ID プロバイダーを追加する
このステップでは、API Experience Hub UI から Salesforce ID プロバイダーを追加して有効にします。ID プロバイダーが有効になると、ユーザーはポータルのログインページからログインオプションを確認できます。
-
ステップ 3: グループマッピングを追加する
このステップでは、追加した Salesforce ID プロバイダーで作成したグループを、ポータルの対応するチームプロファイルにマップします。
-
ステップ 4: SSO 設定をテストする
このステップでは、ポータル用にセットアップした SSO 設定をテストします。
ユーザー名の割り当て戦略
ポータルの SSO ログインオプションをセットアップし、Anypoint Platform 組織で ID プロバイダーがすでに設定されている場合、ポータルユーザーと Anypoint Platform ユーザーではユーザー名の割り当て戦略が異なる可能性があるため、セキュリティチームがユーザー名の割り当て戦略を検討する必要があります。ポータルと Anypoint Platform 間で 1 つの ID を設定するには、ユーザー名の割り当ての形式が同じである必要があります。ユーザー名戦略が一致しない場合、anypoint_idp_id と anypoint_username の属性を追加して、ユーザー名の形式を調整する必要があります。その後、SSO に使用している Anypoint Platform ID プロバイダーにこの情報をマップする必要があります。これらのカスタム属性は、ID プロバイダーのプロファイルエディターを使用して追加されます。詳細は、「Anypoint Platform 用にすでに設定されている ID プロバイダーを使用する SSO の設定」を参照してください。
ユーザーロール
API Experience Hub の ID プロバイダーのセットアップには、さまざまなユーザーアクションを実行する複数のペルソナが含まれます。
組織のセットアップに応じて、次の 1 つ以上のロールをユーザーに割り当てることができます。
-
API Experience Hub Administrator (API Experience Hub 管理者)
AEH 管理者は、API EXperience Hub UI で ID プロバイダーを有効または無効にします。 Salesforce システム管理者 Salesforce システム管理者は、Salesforce で ID プロバイダーをセットアップします。
-
Anypoint 組織のシステム管理者
Anypoint 組織のシステム管理者は、アクセス管理チームのグループマッピング機能を使用して、ID プロバイダーグループを API Experience Hub プロファイルにマップします。
-
セキュリティチーム
組織のセキュリティチームは、必要なユーザーグループとアプリケーションを使用して ID プロバイダーをセットアップします。組織のセキュリティチームと組織の ID プロバイダーシステムを管理する Salesforce システム管理者は、Salesforce で適切なログインオプションを設定します。メイン組織のセキュリティチームと組織のシステム管理者は、必要に応じて、Anypoint Platform で同じ ID プロバイダーオプションを設定できます。メイン組織のセキュリティチームと組織のシステム管理者は、Salesforce と Anypoint Platform 間のマッピングを設定します。アクセス管理では、チームを使用して外部 ID プロバイダーのグループマッピングを追加する機能が提供されます。グループマッピングが適切に設定されている場合、ポータルにログインするユーザーは、そのユーザーが属する標準のプロファイルに自動的に追加されます。デフォルトの ID プロバイダーは、Salesforce ユーザー向けに Anypoint Platform で ID を作成するために提供されています。
Anypoint Platform と Salesforce の ID プロバイダーは、OpenID Connect または SAML (シングルサインオン設定) を使用して設定できます。
標準の設定
API Experience Hub には、SSO を有効にするプロセスを支援する次の標準の設定が用意されています。
-
anypoint_idp_id
カスタムクレームまたは SAML 属性は、ユーザーをマップする必要がある Anypoint Platform ID プロバイダーを決定する ID プロバイダーから受け取る情報を提供します。
-
AEH Users (AEH ユーザー) - ${salesforceOrganizationId}
すべてのセルフ登録ユーザーをマップするために Anypoint Platform で作成されるデフォルトの Anypoint Experience Hub ID プロバイダー。この ID プロバイダーは、ID プロバイダーで aeh_portal_idp が設定されていない場合に使用されます。セルフ登録ユーザーは、デフォルトの ID プロバイダーにマップされます。
-
AEH Portal (AEH ポータル) - ${salesforceOrganizationId}_$*{salesforceCommunityId}
このソリューションでは、アクセス管理に AEH Portal (AEH ポータル) というチームが自動的に作成されます。このチームには、システム管理者、ゲスト、メンバーのプロファイルが含まれます。グループマッピングを追加するときにこのチームを選択します。
-
AEHPortalRegistrationHandler.cls
API Experience Hub パッケージには、SAML および OpenID Connect と互換性のある AEHPortalRegistrationHandler.cls という 1 つの Apex クラスがあります。
登録ハンドラーは、ユーザーが Salesforce Experience Cloud サイトにログインしたときに実行される Apex コードです。Salesforce の認証プロバイダーを設定するときに、このハンドラーを選択します。ID プロバイダーが適切に設定されている場合、Salesforce はポータル ID を AEHPortalRegistrationHandler に渡します。ユーザーが存在しない場合、登録ハンドラーによって Salesforce にユーザーの ID が作成されます。ユーザーが存在する場合、ハンドラーは ID プロバイダーから送信された情報 (ユーザーの姓名など) に基づいてユーザーのメタデータを更新します。ポータルで特定の設定を読み込むため、登録ハンドラーは Salesforce のポータル ID を使用します。たとえば、登録ハンドラーは NetworkSelfRegistration オブジェクトからポータルに関連するプロファイルとアカウントでユーザーを作成します。
基本用語
このトピックでは次の用語が参照されています。
- 認証プロバイダー
-
認証プロバイダーは、プロトコルに応じて、承認されたデータアクセス、認証、またはその両方のために Salesforce をサードパーティに接続できるようにするフレームワークです。認証プロバイダーは OAuth 2.0 を実装して、Salesforce がサードパーティデータにアクセスすることを承認できます。または、OpenID Connect やカスタム認証プロトコルを実装して、サードパーティのデータアクセスと認証の両方をサポートすることもできます。
認証プロバイダーを使用している場合、Salesforce は常に証明書利用者となります。認証プロバイダーが OpenID Connect を実装している場合、サードパーティは OpenID プロバイダーと呼ばれます。カスタム認証プロトコルを実装している場合、サードパーティは ID プロバイダーと呼ばれます。
- ID プロバイダー
-
ID プロバイダーは、ユーザーの ID を認証する信頼できるサービスとして機能します。
- OpenID Connect
-
OpenID Connect は、OAuth 2.0 に基づいて構築されたオープン標準の認証プロトコルです。OpenID Connect を使用すると、証明書利用者と OpenID プロバイダーはユーザーが誰であるか、ユーザーはサービスで何をできるかについての情報を交換できます。
- OpenID プロバイダー
-
OpenID Connect では、ID プロバイダーは OpenID プロバイダーと呼ばれます。証明書利用者の要求に応じてユーザーを認証します。
- 証明書利用者
-
OpenID Connect およびカスタム認証プロトコルでは、サービスプロバイダーは証明書利用者と呼ばれますが、この 2 つの用語は言い換えて使用される場合もあります。認証は OpenID プロバイダーまたは ID プロバイダーに依存します。
- Security Assertion Markup Language (SAML)
-
SAML は、Salesforce 組織に SSO を実装するために使用できるオープン標準の認証プロトコルです。SAML を使用すると、ID プロバイダーとサービスプロバイダーがユーザー情報を安全に交換できるようになり、サービス間のユーザー認証が可能になります。
- シングルサインオン
-
シングルサインオン (SSO) は、ユーザーが 1 回のログインと 1 セットのログイン情報で複数のアプリケーションにアクセスできるようにする認証方法です。たとえば、ユーザーは組織にログインした後に、アプリケーションランチャーからすべてのアプリケーションに自動的にアクセスできます。サードパーティの ID プロバイダーを信頼してユーザーを認証するように Salesforce または Anypoint Platform 組織をセットアップできます。または、認証は組織に依存するようにサードパーティアプリケーションを設定することもできます。
始める前に
SSO を有効にする前に、次の権限とコンテキストがあることを確認してください。
-
Anypoint Platform メイン組織での「Organization Administrator (組織のシステム管理者)」権限またはロール。
-
Salesforce でのシステム管理者ロール。
-
ID 管理と SSO 用の ID プロバイダーのセットアップの経験。
-
Anypoint Platform の ID 管理を理解するには、アクセス管理の「ID プロバイダー」ドキュメントを参照してください。
-
ID プロバイダーでポータルの新しいアプリケーションを作成する場合、API Experience Hub で必要とされるクレームまたは属性に注意してください。
ID プロバイダーで必須のユーザークレームを設定することで、ユーザー情報が Salesforce および Anypoint ユーザーに正しくマップされます。
AEHPortalRegistrationHandler では、ユーザーを作成または更新するために ID プロバイダーからの特定のユーザー情報が必要です。必須のクレームは、ユーザー情報を抽出するために登録ハンドラーによって使用されます。次の表は、必要な情報と、その情報がどのクレームから抽出されるかを示しています。同じ値に対して複数のクレームがある場合、登録ハンドラーは次の表に示されている順序で最初の予期されるクレームを検索します。
項目 予期されるクレーム First Name (名)
given_name、first_name、firstname、firstName
Last Name (姓)
family_name、last_name、lastname、lastName
Email (メール)
email、email_address、emailAddress
Username (ユーザー名)
preferred_username、federation_identifier、email、sub、NameId
Groups (グループ)
グループ
ID プロバイダーが Anypoint Platform 用にすでに設定されている場合の SSO の設定などの特定のユースケースを設定するには、次の情報を使用します。
項目 説明 使用できる値 Anypoint Idp ID
ID を Anypoint Platform の特定の ID プロバイダーにマップします。
anypoint_idp_id
Anypoint Username (Anypoint ユーザー名)
ユーザーの ID が Anypoint Platform にすでに存在し、ユーザー名が Salesforce ユーザーとは異なる場合は、Anypoint Platform ユーザーを明示的に指定します。
anypoint_username
必要な情報がサポートされる形式ではない場合、サポートされる形式で新しいカスタム属性またはクレームを作成します。詳細は、ID プロバイダーのドキュメントを参照してください。