5.4.2. RH SSO の設定
Red Hat Single Sign-On を設定するには、以下の手順を実施します。
- Red Hat Single Sign-On のドキュメント に記載の手順に従って、レルムを作成します。
- 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 をクリックして変更を保存します。
Red Hat Single Sign-On ローカルデータベースでユーザーを管理する場合は、必ずユーザーの Email Verified 属性を
ON
に設定してください。ユーザーフェデレーション を使用する場合は、3scale SSO インテグレーション用に前のステップで作成したクライアントで、トークン名を
email_verified
とし要求の値をtrue
に設定して、ハードコーディングされた要求を設定することができます。
オプションとして、
org_name
マッパーを設定します。
ユーザーは 3scale にサインアップするとき、サインアップフォームに組織名の値を入力するよう求められます。デベロッパーポータルでのサインアップフォームの入力を不要にして、ユーザーが Red Hat Single Sign-On によるサインアップを意識しないようにするには、さらに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 をクリックします。
Red Hat Single Sign-On のユーザーに
org_name
属性があれば、3scale は自動的にアカウントを作成することができます。属性がないユーザーについては、アカウント作成の前に組織名を指定するよう求められます。あるいは、Red Hat Single Sign-On アカウントでサインインするすべてのユーザーについて、Hardcoded claim タイプのマッパーを作成して、組織名をハードコーディング値に設定することもできます。
インテグレーションをテストするには、ユーザーを追加する必要があります。そのためには、Users に移動し、Add user をクリックして必須フィールドに入力します。Red Hat Single Sign-On でユーザーを作成する場合、Email Verified 属性 (
email_verified
) がON
に設定されている必要があることに留意してください。設定されていないと、ユーザーが 3scale でアクティブ化されません。Red Hat Single Sign-On をアイデンティティーブローカーとして使用することや、外部データベースをフェデレーションするように設定することができます。これらの設定方法については、Red Hat Single Sign-On のドキュメントで、アイデンティティーブローカー設定 および ユーザーフェデレーション に関する章を参照してください。
アイデンティティーブローカーとして Red Hat Single Sign-On の使用を選択し、さらに開発者が RH-SSO と 3scale のアカウント作成手順の両方をスキップできるようにすることを希望する場合は、下記の設定を行うことを推奨します。以下の例では、アイデンティティープロバイダーとして GitHub を使用しています。
Red Hat Single Sign-On で、アイデンティティープロバイダー に 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 では、必須フィールドとして姓および名に加えてメールアドレスの入力が必要です。3scale では、メールアドレス、ユーザー名、および組織名が必要です。したがって、組織名のマッパーを設定することに加え、ユーザーが両方のサインアップフォームをスキップできるよう、以下のことを確認してください。
- IdP アカウントで、姓と名が設定されている。
- IdP アカウントで、メールアドレスにアクセスできる。つまり、GitHub で、メールアドレスがプライベートに設定されている場合、共有されません。