5.4. Red Hat Single Sign-On および Red Hat build of Keycloak による認証の有効化と無効化
この機能は、Enterprise プランでのみ利用可能です。
Red Hat Single Sign-On および Red Hat build of Keycloak は、統合サインオンソリューション (SSO) です。3scale と組み合わせて使用すると、利用可能な任意の Red Hat Single Sign-On アイデンティティーブローカー機能とユーザーフェデレーションオプションを使用して、開発者を認証できます。
3scale との互換性があるシングルサインオンバージョンの情報は、サポートされる構成 ページを参照してください。
5.4.1. 作業開始前の準備 リンクのコピーリンクがクリップボードにコピーされました!
シングルサインオンを 3scale と統合するには、稼働中の Red Hat Single Sign-On および Red Hat build of Keycloak インスタンスが必要です。インストール手順は、Red Hat Single Sign-On のドキュメント または Red Hat build of Keycloak のドキュメント を参照してください。
5.4.2. 開発者ポータルを認証するためのシングルサインオンの設定 リンクのコピーリンクがクリップボードにコピーされました!
シングルサインオンを設定するには、次の手順を実行します。
- Red Hat Single Sign-On のドキュメント または Red Hat build of Keycloak のドキュメント の説明に従ってレルムを作成します。
- Clients に移動して Create をクリックし、クライアントを追加します。
以下のフィールドと値を考慮してフォームに入力します。
- Client ID: クライアントの希望の名前を入力します。
-
Enabled:
ONに切り替えます。 -
Consent Required:
OFFに切り替えます。 - Client Protocol: openid-connect を選択します。
- Access Type: confidential を選択します。
-
Standard Flow Enabled:
ONに切り替えます。 -
Root URL: 3scale 管理ポータルの URL を入力します。これは、開発者ポータルへのログインに使用する URL アドレスでなければなりません (例:
https://yourdomain.3scale.netまたはカスタムの URL)。 Valid Redirect URLs:
/*を付けて再度開発者ポータルを入力します (例:https://yourdomain.3scale.net/*)。その他のパラメーターはすべて空のままにするか、
OFFに切り替える必要があります。
以下の手順によりクライアントシークレットを取得します。
- 前のステップで作成したクライアントに移動します。
- Credentials タブをクリックします。
Client Authenticator フィールドで、Client Id and Secret を選択します。
email_verifiedマッパーを設定します。3scale では、ユーザーデータのemail_verified要求がtrueに設定されている必要があります。"Email Verified" ユーザー属性をemail_verified要求にマッピングするには、以下の手順を実施します。- クライアントの Mappers タブに移動します。
Add Builtin をクリックします。
email verified オプションのチェックボックスを選択し、Add selected をクリックして変更を保存します。
シングルサインオンのローカルデータベースでユーザーを管理する場合は、必ずユーザーの Email Verified 属性を
ONに設定してください。ユーザーフェデレーション を使用する場合は、3scale SSO インテグレーション用に前のステップで作成したクライアントで、トークン名を
email_verified、要求の値をtrueに設定して、ハードコーディングされた要求を設定できます。
オプションとして、
org_nameマッパーを設定します。
ユーザーは 3scale にサインアップするとき、サインアップフォームに組織名の値を入力するよう求められます。開発者ポータルでのサインアップフォームの入力を不要にして、ユーザーがシングルサインオンによるサインアップを意識しないようにするには、さらにorg_nameマッパーを設定する必要があります。- クライアントの Mappers タブに移動します。
- Create をクリックします。
以下のようにマッパーのパラメーターを入力します。
-
Name: 希望する任意の名前を入力します (例:
org_name)。 -
Consent Required:
OFFに切り替えます。 - Mapper Type: User Attribute を選択します。
- User Attribute: org_name を入力します。
- Token Claim Name: org_name を入力します。
- Claim JSON Type: String を選択します。
-
Add to ID token:
ONに切り替えます。 -
Add to access token:
ONに切り替えます。 -
Add to userinfo:
ONに切り替えます。 -
Multivalued:
OFFに切り替えます。
-
Name: 希望する任意の名前を入力します (例:
Save をクリックします。
シングルサインオンのユーザーに
org_name属性があれば、3scale は自動的にアカウントを作成できます。属性がないユーザーには、アカウント作成の前に組織名を指定するよう求められます。あるいは、シングルサインオンアカウントでサインインするすべてのユーザーについて、Hardcoded claim タイプのマッパーを作成して、組織名をハードコーディング値に設定することもできます。
-
インテグレーションをテストするには、ユーザーを追加する必要があります。そのためには、Users に移動し、Add user をクリックして必須フィールドに入力します。Red Hat Single Sign-On でユーザーを作成する場合、Email Verified 属性 (
email_verified) がONに設定されている必要があることに留意してください。設定されていないと、ユーザーが 3scale でアクティブ化されません。
Red Hat Single Sign-On または Red Hat build of Keycloak をアイデンティティーブローカーとして使用します
Red Hat Single Sign-On と Red Hat build of Keycloak をアイデンティティーブローカーとして使用したり、外部データベースをフェデレーションするように設定したりできます。設定方法の詳細は、Red Hat Single Sign-On または Red Hat build of Keycloak のアイデンティティーブローカーに関するドキュメントと、Red Hat Single Sign-On または Red Hat build of Keycloak のユーザーフェデレーションに関するドキュメントを参照してください。
アイデンティティーブローカーとしてシングルサインオンを使用し、開発者が SSO アカウントと 3scale アカウントの作成手順を両方省略できるようにする場合は、次の設定が推奨されます。以下の例では、アイデンティティープロバイダーとして GitHub を使用しています。
シングルサインオンでは、アイデンティティープロバイダー で GitHub を設定した後、Mappers タブに移動して Create をクリックします。
- 名前を付けて、識別できるようにします。
- Mapper Type で Attribute Importer を選択します。
- Social Profile JSON Field Path に company を追加します。これは GitHub での属性の名前です。
User Attribute Name に org_name を追加します。これは Red Hat Single Sign-On での属性の呼び方です。
注記Red Hat Single Sign-On と Red Hat build of Keycloak では、必須フィールドとして名と姓、およびメールが必要です。3scale では、メールアドレス、ユーザー名、および組織名が必要です。したがって、組織名のマッパーを設定することに加え、ユーザーが両方のサインアップフォームをスキップできるよう、以下のことを確認してください。
- IdP アカウントで、姓と名が設定されている。
- IdP アカウントで、メールアドレスにアクセスできる。たとえば GitHub では、メールアドレスをプライベートとして設定すると共有されません。
5.4.3. 開発者ポータルを認証するための 3scale API Management の設定 リンクのコピーリンクがクリップボードにコピーされました!
API プロバイダーは、Red Hat Single Sign-On を使用した開発者ポータルの認証が可能になるように 3scale を設定します。
デフォルトでは、Red Hat Single Sign-On による認証は有効になっていません。Red Hat Single Sign-On は、エンタープライズ 3scale アカウントでのみ利用可能です。したがって、アカウントマネージャーに Red Hat Single Sign-On による認証を有効にするように依頼する必要があります。
前提条件
- エンタープライズ 3scale アカウントが、Red Hat Single Sign-On を有効にするように設定されている。
開発者ポータルを認証するために Red Hat Single Sign-On を設定 し、以下の詳細情報を取得した。
クライアント
Red Hat Single Sign-On でのクライアントの名前。
クライアントシークレット
Red Hat Single Sign-On でのクライアントシークレット。
レルム
レルム名および Red Hat Single Sign-On アカウントへの URL アドレス。
手順
- 3scale 管理ポータルで Audience > Developer Portal > SSO Integrations の順に選択します。
- Red Hat Single Sign-On をクリックします。
- 開発者ポータルを認証するように Red Hat Single Sign-On を設定する で設定した Red Hat Single Sign-On クライアントの詳細 (クライアント、クライアントシークレット、レルム) を指定します。
- 変更を保存するには、Create Red Hat Single Sign-On をクリックします。