3.6. Red Hat Single Sign-On サーバーの管理者アカウントの作成
Red Hat Single Sign-On は、事前設定された管理アカウントをそのまま提供しません。この管理者アカウントは、master
レルムの管理コンソールにログインして、レルムやユーザーの作成 Red Hat Single Sign-On でセキュリティー保護するためのアプリケーションの登録などのサーバーメンテナンス操作を実行するために必要です。
管理者アカウントは、以下の方法で作成できます。
- Red Hat Single Sign-On アプリケーションテンプレートのデプロイ時に SSO_ADMIN_USERNAME および SSO_ADMIN_PASSWORD パラメーター の値を提供することで。
- OpenShift イメージの Red Hat Single Sign-On がアプリケーションテンプレートなしでデプロイされる場合に、特定の Red Hat Single Sign-On Pod へのリモートシェルセッション で。
Red Hat Single Sign-On では、初期管理者アカウントを Welcome Page の Web フォームを介して作成することができますが、Welcome Page が localhost からアクセスされている場合に限ります。この管理者アカウント作成方法は、Red Hat Single Sign-On for OpenShift イメージには適用されません。
3.6.1. テンプレートパラメーターを使用した管理者アカウントの作成
Red Hat Single Sign-On アプリケーションテンプレートをデプロイする場合は、SSO_ADMIN_USERNAME パラメーターおよび SSO_ADMIN_PASSWORD パラメーターは、master
レルム用に作成される Red Hat Single Sign-On サーバーの管理者アカウントのユーザー名とパスワードを示します。
これらのパラメーターはいずれも必須です。指定されていない場合、それらはテンプレートがインスタンス化される時に OpenShift 命令メッセージとして自動生成され、表示されます。
Red Hat Single Sign-On サーバーの管理者アカウントのライフサイクルは、Red Hat Single Sign-On サーバーのデータベースを保存するために使用するストレージタイプによって異なります。
- インメモリデータベースモード (sso76-ocp3-https、sso76-ocp4-https、sso76-ocp3-x509-https、および sso76-ocp4-x509-https) の場合、アカウントは特定の Red Hat Single Sign-On Podのライフサイクルを通して存在します (保存されたアカウントデータはPodの破棄時に失われます)。
- 一時データベースモード (sso76-ocp3-postgresql および sso76-ocp4-postgresql テンプレート) の場合、アカウントはデータベース Pod のライフサイクル全体にわたって存在します。Red Hat Single Sign-On Pod が破壊的な場合でも、保存されたアカウントデータは、データベース Pod が実行中であることを前提として保持されます。
- 永続データベースモード (sso76-ocp3-postgresql-persistent、sso76-ocp4-postgresql-persistent、sso76-ocp3-x509-postgresql-persistent、および sso76-ocp4-x509-postgresql-persistent テンプレート) の場合、 アカウントは、データベースデータを保持するために使用される永続メディアのライフサイクルを通じて存在します。つまり、Red Hat Single Sign-On とデータベース Pod の両方が破壊されても、保存されたアカウントデータは保持されます。
Red Hat Single Sign-On アプリケーションテンプレートをデプロイして、(新しい Red Hat Single Sign-On アプリケーションをインスタンス化する必要があるたびに) アプリケーションに対応する OpenShift デプロイメント設定を取得し、そのデプロイメント設定を複数回再利用することが一般的です。
RH_SSO サーバーの管理者アカウントを作成したら 一時的または永続的データベースモード の場合、新しい Red Hat Single Sign-On アプリケーションをデプロイする前に、デプロイメント設定から SSO_ADMIN_USERNAME 変数および SSO_ADMIN_PASSWORD 変数を削除します。
手順
以下のコマンドを実行して、管理者アカウントの作成後に再利用できるように、以前に作成した Red Hat Single Sign-On アプリケーションのデプロイメント設定を準備します。
Red Hat Single Sign-On アプリケーションのデプロイメント設定を特定します。
$ oc get dc -o name deploymentconfig/sso deploymentconfig/sso-postgresql
SSO_ADMIN_USERNAME および SSO_ADMIN_PASSWORD 変数の設定を削除します。
$ oc set env dc/sso \ -e SSO_ADMIN_USERNAME="" \ -e SSO_ADMIN_PASSWORD=""
3.6.2. リモートシェルセッションによる Red Hat Single Sign-On Pod への管理者アカウントの作成
テンプレートを使用せずにイメージストリームから直接 Red Hat Single Sign-On for OpenShift イメージをデプロイする場合は、以下のコマンドを使用して、Red Hat Single Sign-On サーバーの master
レルムの管理者アカウントを作成します。
前提条件
- Red Hat Single Sign-On アプリケーション Pod が開始されました。
手順
Red Hat Single Sign-On アプリケーション Pod を特定します。
$ oc get pods NAME READY STATUS RESTARTS AGE sso-12-pt93n 1/1 Running 0 1m sso-postgresql-6-d97pf 1/1 Running 0 2m
Red Hat Single Sign-On for OpenShift コンテナーに対してリモートシェルセッションを開きます。
$ oc rsh sso-12-pt93n sh-4.2$
add-user-keycloak.sh
スクリプトを使用して、コマンドラインでmaster
レルムの Red Hat Single Sign-On サーバー管理者アカウントを作成します。sh-4.2$ cd /opt/eap/bin/ sh-4.2$ ./add-user-keycloak.sh \ -r master \ -u sso_admin \ -p sso_password Added 'sso_admin' to '/opt/eap/standalone/configuration/keycloak-add-user.json', restart server to load user
注記上記の例の sso_admin または sso_password 認証情報はデモ目的にのみ使用されます。安全なユーザー名とパスワードの作成方法は、組織内で適用されるパスワードポリシーを参照してください。
基盤の JBoss EAP サーバーインスタンスを再起動して、新たに追加したユーザーアカウントをロードします。サーバーが正しく再起動するまで待ちます。
sh-4.2$ ./jboss-cli.sh --connect ':reload' { "outcome" => "success", "result" => undefined }
警告サーバーを再起動する場合は、コンテナー全体ではなく、実行中の Red Hat Single Sign-On コンテナー内で JBoss EAP プロセスを再起動することが重要です。これは、
master
レルムの Red Hat Single Sign-On サーバー管理アカウントなしに、コンテナー全体の再起動がゼロから再作成されるためです。-
上記の手順で作成した認証情報を使用して、Red Hat Single Sign-On サーバーの
master
レルムの管理コンソールにログインします。ブラウザーで、Red Hat Single Sign-On Web サーバーの場合は http://sso-<project-name>.<hostname>/auth/admin に移動するか、暗号化された Red Hat Single Sign-On Web サーバーの場合は https://secure-sso-<project-name>.<hostname>/auth/admin に移動し、管理者ユーザーの作成に使用するユーザー名とパスワードを指定します。