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 の認証情報の設定

前提条件

手順

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 サーバーにログインします。

レルムの作成

  1. カーソルをサイドバーの上部にあるレルム名前空間 (デフォルトは Master) の上に置き、Add Realm をクリックします。
  2. レルム名 (この例では OpenShiftを使用) を入力し、Create をクリックします。

ユーザーの作成

Red Hat Single Sign-On が有効な OpenShift ログインを実証するのに使用できるテストユーザーを作成します。

  1. Manage サイドバーで Users をクリックし、レルムのユーザー情報を表示します。
  2. Add User をクリックします。
  3. 有効な ユーザー名 (この例では testuser を使用し) と任意の追加情報を入力し、Save をクリックします。
  4. ユーザー設定を編集します。

    1. ユーザー空間の Credentials タブをクリックし、ユーザーのパスワードを入力します。
    2. Temporary Password オプションを Off に設定して、後でパスワードの変更を要求しないようにし、Reset Password をクリックしてユーザーパスワードを設定します。ポップアップウィンドウに追加の確認を求めるプロンプトが表示されます。

OpenID-Connect クライアントの作成および設定

  1. Manage サイドバーで Clients をクリックし、Create をクリックします。
  2. Client ID を入力します。この例では openshift-demo を使用します。
  3. ドロップダウンメニューから クライアントプロトコル を選択し (この例では openid-connectを使用)、Save をクリックします。openshift-demo クライアントの Settings ページに移動します。
  4. Access Type ドロップダウンメニューから、confidential を選択します。これは、サーバー側のアプリケーションのアクセスタイプです。
  5. 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 ファイルを編集するために必要なパーミッションが必要です。

手順

  1. /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
    1. clientSecret の Red Hat Single Sign-On Secret ハッシュは、Red Hat Single Sign-On Web コンソールの Clientsopenshift-demoCredentials にあります。
    2. 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_endpointtoken_endpoint、および userinfo_endpoint が含まれます。

    3. このワークフロー例では、自己生成された CA を使用して、デモ目的でエンドツーエンドのワークフローを提供します。このため、ca は <ca: xpaas.crt> として提供されます。この CA 証明書も /etc/origin/master ディレクトリーにコピーする必要があります。検証済みの認証局から購入した証明書を使用する場合、この作業は必要ありません。
  2. 設定を保存して OpenShift マスターを再起動します。

    $ systemctl restart atomic-openshift-master

4.3.3. OpenShift へのログイン

手順

  1. OpenShift Web コンソールに移動します。この例では https://openshift.example.com:8443/console が使用されています。

    OpenShift ログインページに、htpasswd_auth または rh-sso ID プロバイダーのいずれかを使用してログインするためのオプションが提供されるようになりましたか ?/etc/origin/master/master-config.yaml に存在するため、以前のバージョンは引き続き利用できます。

  2. rh-sso を選択し、Red Hat Single Sign-On に先に作成した testuser ユーザーを使用して OpenShift にログインします。

    OpenShift CLI に追加されるまで、testuser にはプロジェクトは表示されません。これは、現在外部ロールマッピングを受け入れないため、OpenShift のユーザー特権を提供する唯一の方法です。

  3. sso-app-demotestuser view 権限を提供するには、OpenShift CLI を使用します。

    $ oc adm policy add-role-to-user view testuser -n sso-app-demo