4.3. 認証に Red Hat Single Sign-On を使用するための OpenShift3.11 の設定
OpenShift 3.11 を、OpenShift の認可ゲートウェイとして Red Hat Single Sign-On デプロイメントを使用するように設定します。
この例では、OpenShift Container Platform クラスターのインストール時に設定された ID プロバイダーとともに認証方法として Red Hat Single Sign-On を追加します。設定が完了すると、ユーザーが OpenShift Web コンソールにログインできるように Red Hat Single Sign-On メソッドも (設定されたアイデンティティープロバイダーとともに) 利用できます。
4.3.1. Red Hat Single Sign-On の認証情報の設定
前提条件
- Preparing Red Hat Single Sign-On Authentication for OpenShift Deployment で説明されている手順を前提としています。
手順
Red Hat Single Sign-On デプロイメント時に作成された xref:sso-administrator-setup 管理者アカウントを使用して、https://secure-sso-sso-app-demo.openshift32.example.com/auth/admin で暗号化された Red Hat Single Sign-On Web サーバーにログインします。
レルムの作成
- カーソルをサイドバーの上部にあるレルム名前空間 (デフォルトは Master) の上に置き、Add Realm をクリックします。
- レルム名 (この例では OpenShiftを使用) を入力し、Create をクリックします。
ユーザーの作成
Red Hat Single Sign-On が有効な OpenShift ログインを実証するのに使用できるテストユーザーを作成します。
- Manage サイドバーで Users をクリックし、レルムのユーザー情報を表示します。
- Add User をクリックします。
- 有効な ユーザー名 (この例では testuser を使用し) と任意の追加情報を入力し、Save をクリックします。
ユーザー設定を編集します。
- ユーザー空間の Credentials タブをクリックし、ユーザーのパスワードを入力します。
- Temporary Password オプションを Off に設定して、後でパスワードの変更を要求しないようにし、Reset Password をクリックしてユーザーパスワードを設定します。ポップアップウィンドウに追加の確認を求めるプロンプトが表示されます。
OpenID-Connect クライアントの作成および設定
- Manage サイドバーで Clients をクリックし、Create をクリックします。
- Client ID を入力します。この例では openshift-demo を使用します。
- ドロップダウンメニューから クライアントプロトコル を選択し (この例では openid-connectを使用)、Save をクリックします。openshift-demo クライアントの Settings ページに移動します。
- Access Type ドロップダウンメニューから、confidential を選択します。これは、サーバー側のアプリケーションのアクセスタイプです。
- Valid Redirect URIs ダイアログで、OpenShift Web コンソールの URI (この例では https://openshift.example.com:8443/*) を入力します。
次のセクションで、OpenShift マスターで OpenID-Connect を設定するには、クライアント シークレット が必要です。Credentials タブの下にコピーできます。この例では、シークレットは <7b0384a2-b832-16c5-9d73-2957842e89h7> です。
4.3.2. Red Hat Single Sign-On 認証用の OpenShift マスターの設定
OpenShift マスター CLI にログインします。
前提条件
/etc/origin/master/master-config.yaml ファイルを編集するために必要なパーミッションが必要です。
手順
/etc/origin/master/master-config.yaml ファイルを編集し、identityProviders セクションを見つけます。たとえば、OpenShift マスターが HTPassword ID プロバイダー で設定されている場合、identityProviders セクションは以下のようになります。
identityProviders: - challenge: true login: true name: htpasswd_auth provider: apiVersion: v1 file: /etc/origin/openshift-passwd kind: HTPasswdPasswordIdentityProvider
以下のスニペットのような内容で、Red Hat Single Sign-On をセカンダリーアイデンティティープロバイダーとして追加します。
- name: rh_sso challenge: false login: true mappingMethod: add provider: apiVersion: v1 kind: OpenIDIdentityProvider clientID: openshift-demo clientSecret: 7b0384a2-b832-16c5-9d73-2957842e89h7 ca: xpaas.crt urls: authorize: https://secure-sso-sso-app-demo.openshift32.example.com/auth/realms/OpenShift/protocol/openid-connect/auth token: https://secure-sso-sso-app-demo.openshift32.example.com/auth/realms/OpenShift/protocol/openid-connect/token userInfo: https://secure-sso-sso-app-demo.openshift32.example.com/auth/realms/OpenShift/protocol/openid-connect/userinfo claims: id: - sub preferredUsername: - preferred_username name: - name email: - email
- clientSecret の Red Hat Single Sign-On Secret ハッシュは、Red Hat Single Sign-On Web コンソールの Clients → openshift-demo → Credentials にあります。
urls のエンドポイントは、Red Hat Single Sign-On アプリケーションでリクエストを行うことで確認できます。以下に例を示します。
<curl -k https://secure-sso-sso-app-demo.openshift32.example.com/auth/realms/OpenShift/.well-known/openid-configuration | python -m json.tool>
応答には、authorization_endpoint、token_endpoint、および userinfo_endpoint が含まれます。
- このワークフロー例では、自己生成された CA を使用して、デモ目的でエンドツーエンドのワークフローを提供します。このため、ca は <ca: xpaas.crt> として提供されます。この CA 証明書も /etc/origin/master ディレクトリーにコピーする必要があります。検証済みの認証局から購入した証明書を使用する場合、この作業は必要ありません。
設定を保存して OpenShift マスターを再起動します。
$ systemctl restart atomic-openshift-master
4.3.3. OpenShift へのログイン
手順
OpenShift Web コンソールに移動します。この例では https://openshift.example.com:8443/console が使用されています。
OpenShift ログインページに、htpasswd_auth または rh-sso ID プロバイダーのいずれかを使用してログインするためのオプションが提供されるようになりましたか ?/etc/origin/master/master-config.yaml に存在するため、以前のバージョンは引き続き利用できます。
rh-sso を選択し、Red Hat Single Sign-On に先に作成した testuser ユーザーを使用して OpenShift にログインします。
OpenShift CLI に追加されるまで、testuser にはプロジェクトは表示されません。これは、現在外部ロールマッピングを受け入れないため、OpenShift のユーザー特権を提供する唯一の方法です。
sso-app-demo に testuser
view
権限を提供するには、OpenShift CLI を使用します。$ oc adm policy add-role-to-user view testuser -n sso-app-demo