スタートガイド
Red Hat Single Sign-On 7.6 向け
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 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 ドキュメントの他のガイドを参照してください。
1.1. Red Hat Single Sign-On サーバーのインストール
Red Hat Single Sign-On のこのインスタンスの例では、この手順ではスタンドアロンモードでのインストールを扱います。サーバーのダウンロード ZIP ファイルには、Red Hat Single Sign-On サーバーを実行するためのスクリプトとバイナリーが含まれています。サーバーを Linux または Windows にインストールできます。
手順
- Red Hat カスタマーポータル に移動します。
- Red Hat Single Sign-On サーバー (rh-sso-7.6.zip) をダウンロードします。
- 選択したディレクトリーにファイルを配置します。
unzip、tar、Expand-Archive などの適切な
unzip
ユーティリティーを使用して ZIP ファイルをデプロイメントします。Linux/Unix
$ unzip rhsso-7.6.zip or $ tar -xvzf rh-sso-7.6.tar.gz
Windows
> Expand-Archive -Path 'C:Downloads\rhsso-7.6.zip' -DestinationPath 'C:\Downloads'
- Red Hat カスタマーポータル に戻ります。
-
Patches
タブをクリックします。 Red Hat Single Sign-On 7.6.11 サーバーパッチをダウンロードします。
選択したディレクトリーにダウンロードした ZIP ファイルを配置します。
- Red Hat Single Sign-On サーバーのルートディレクトリーに移動します。
JBoss EAP コマンドラインインターフェイスを起動します。
Linux/Unix
$ ./bin/jboss-cli.sh
Windows
> .\bin\jboss-cli.bat
パッチを適用します。
$ patch apply <path-to-zip>/rh-sso-7.6.11-patch.zip
1.2. Red Hat Single Sign-On の Java 17 の有効化
Java SE 17 を使用して Red Hat Single Sign-On を実行する必要がある場合は、追加のステップを認識する必要があります。バンドルされた enable-elytron-se17.cli
スクリプトファイルを実行して、サーバーを準備する必要があります。以前のバージョンの Java を使用する場合、この手順は必要ありません。
前提条件
- Red Hat Single Sign-On サーバーのインストール時にエラーがない。
手順
- Red Hat Single Sign-On サーバーのルートディレクトリーに移動します。
enable-elytron-se17.cli
スクリプトを渡してjboss-cli
コマンドを実行します。Linux/Unix
$ ./bin/jboss-cli.sh --file=docs/examples/enable-elytron-se17.cli
Windows
> .\bin\jboss-cli.bat --file=docs\examples\enable-elytron-se17.cli
1.3. Red Hat Single Sign-On サーバーの起動
インストールしたシステムでサーバーを起動します。
前提条件
- Red Hat Single Sign-On サーバーのインストール時にエラーがない。
手順
-
サーバーディストリビューションの
bin
ディレクトリーに移動します。 ブートスクリプト
standalone
を実行します。Linux/Unix
$ cd bin $ ./standalone.sh
Windows
> ...\bin\standalone.bat
1.4. 管理アカウントの作成
Red Hat Single Sign-On を使用する前に、Red Hat Single Sign-On 管理コンソールにログインするのに使用する管理者アカウントを作成する必要があります。
前提条件
- Red Hat Single Sign-On サーバーの起動時にエラーがない。
手順
Web ブラウザーで http://localhost:8080/auth を開きます。
Welcome ページが開き、サーバーが実行していることを確認します。
Welcome ページ
- ユーザー名とパスワードを入力して、最初の管理ユーザーを作成します。
1.5. 管理コンソールへのログイン
初期管理者アカウントを作成したら、管理コンソールにログインできます。このコンソールで、Red Hat Single Sign-On が保護されるようにユーザーを追加し、アプリケーションを登録します。
前提条件
- 管理コンソールの管理者アカウントがある。
手順
Welcome ページの Administration Console リンクをクリックします。または、http://localhost:8080/auth/admin/ (コンソール URL) に直接アクセスします。
注記管理コンソールは通常、Red Hat Single Sign-On ドキュメントの管理コンソールと呼ばれます。
Welcome ページで作成したユーザー名とパスワードを入力して、管理コンソール を開きます。
管理コンソールのログイン画面
管理コンソールの初期画面が表示されます。
管理コンソール
次のステップ
管理コンソールにログインできるようになったため、管理者がユーザーを作成できるレルムの作成を開始でき、アプリケーションへのアクセス権限を付与できます。詳細は、レルムおよびユーザーの作成 を参照してください。
第2章 レルムおよびユーザーの作成
Red Hat Single Sign-On 管理コンソールを最初に使用するのは、レルムを作成し、そのレルムでユーザーを作成することです。そのユーザーを使用して、新しいレルムにログインし、すべてのユーザーがアクセス可能な組み込みアカウントコンソールにアクセスします。
2.1. レルムとユーザー
管理コンソールにログインして、レルムで作業します。レルムは、対象を管理するスペースです。レルムは 2 種類存在します。
-
Master レルム
- このレルムは、Red Hat Single Sign-On の初回起動時に作成されました。これには、初回ログイン時に作成した管理者アカウントが含まれます。このレルムは、他のレルムを作成する場合にのみ使用します。 -
他のレルム
- このレルムは、マスターレルムで管理者により作成されます。じのレルムでは、管理者がユーザーとアプリケーションを作成します。アプリケーションはユーザーが所有します。
2.2. レルムの作成
マスターレルムの管理者として、管理者がユーザーおよびアプリケーションを作成するレルムを作成します。
前提条件
- Red Hat Single Sign-On がインストールされている。
- 管理コンソールの初期管理者アカウントがある。
手順
- http://localhost:8080/auth/admin/ にアクセスし、管理者アカウントを使用して Red Hat Single Sign-On 管理コンソールにログインします。
- マスターメニューから、Add Realm をクリックします。マスターレルムにログインすると、このメニューに他のすべてのレルムが一覧表示されます。
Name フィールドに
demo
と入力します。新しいレルム
注記レルム名は大文字と小文字を区別するため、大文字小文字に注意してください。
Create をクリックします。
レルムを
demo
に設定し、メインの管理コンソールページが開きます。demo レルム
-
Select realm ドロップダウンリストでエントリーをクリックして、
master
レルムと、作成したレルムの管理を切り替えます。
2.3. ユーザーの作成
demo
レルムでは、新規ユーザーと、その新しいユーザーの一時パスワードを作成します。
手順
- メニューから Users をクリックしてユーザーリストページを開きます。
- 空のユーザーリストの右側で、Add User をクリックして Add user ページを開きます。
Username
フィールドに名前を入力します。これは唯一の必須フィールドです。
Add user ページ
Email Verified スイッチを On に切り替え、Save をクリックします。
新規ユーザーの管理ページが開きます。
- Credentials タブをクリックして、新規ユーザーの一時パスワードを設定します。
- 新規パスワードを入力して確認します。
Set Password をクリックして、指定した新しいパスワードにユーザーパスワードを設定します。
認証情報ページの管理
注記このパスワードは一時的なもので、ユーザーは初回ログイン時にパスワードを変更する必要があります。永続的なパスワードを作成する場合は、Temporary スイッチを Off に切り替え、Set Password をクリックします。
2.4. アカウントコンソールへのログイン
レルムのすべてのユーザーは、アカウントコンソールにアクセスできます。このコンソールを使用してプロファイル情報を更新し、認証情報を変更します。これで、作成したレルムでそのユーザーによるログインをテストできるようになります。
手順
- ユーザーメニューを開き、Sign Out を選択して管理コンソールからログアウトします。
-
http://localhost:8080/auth/realms/demo/account にアクセスし、作成したユーザーで
demo
レルムにログインします。 新しいパスワードを入力するように求められたら、記憶できるパスワードを入力します。
パスワードの更新
このユーザーのアカウントコンソールが開きます。
アカウントコンソール
- このページを使用してテストする値で必須フィールドに入力します。
次のステップ
これで、JBoss EAP 上で実行するサンプルアプリケーションを保護するという最後の手順の準備が整いました。サンプルアプリケーションのセキュリティー保護 を参照してください。
第3章 サンプルアプリケーションのセキュリティー保護
これで、管理者アカウント、レルム、およびユーザーが、Red Hat Single Sign-On を使用してサンプル JBoss EAP サーブレットアプリケーションを保護できるようになりました。JBoss EAP クライアントアダプターをインストールし、管理コンソールでアプリケーションを登録し、JBoss EAP インスタンスを変更して Red Hat Single Sign-On と連携し、一部のサンプルコードと Red Hat Single Sign-On を使用してアプリケーションを保護します。
前提条件
- JBoss EAP とポートが競合しないように、Red Hat Single Sign-On が使用するポートを調整する。
3.1. Red Hat Single Sign-On が使用するポートの調整
このガイドの手順は、Red Hat Single Sign-On サーバーと同じマシン上で JBoss EAP の実行に適用されます。この状況では、JBoss EAP が Red Hat Single Sign-On にバンドルされている場合でも、JBoss EAP をアプリケーションコンテナーとして使用することはできません。サーブレットアプリケーションに対して別の JBoss EAP インスタンスを実行する必要があります。
ポートの競合を回避するには、Red Hat Single Sign-On および JBoss EAP を実行するには、異なるポートが必要です。
前提条件
- 管理コンソールの管理者アカウントがある。
- デモレルムが作成されている。
- デモレルムでユーザーが作成されている。
手順
- Red Hat カスタマーポータル から JBoss EAP 7.3 をダウンロードします。
ダウンロードした JBoss EAP をデプロイメントします。
$ unzip <filename>.zip
- Red Hat Single Sign-On の root ディレクトリーに移動します。
jboss.socket.binding.port-offset
システムプロパティーの値を指定して、Red Hat Single Sign-On サーバーを起動します。この値は、Red Hat Single Sign-On サーバーにより開かれる全ポートのベース値に追加されます。この例では、100 が値です。Linux/Unix
$ cd bin $ ./standalone.sh -Djboss.socket.binding.port-offset=100
Windows
> ...\bin\standalone.bat -Djboss.socket.binding.port-offset=100
Windows Powershell
> ...\bin\standalone.bat -D"jboss.socket.binding.port-offset=100"
Red Hat Single Sign-On サーバーが稼働していることを確認します。http://localhost:8180/auth/admin/ にアクセスします。
管理コンソールを開くと、JBoss EAP が Red Hat Single Sign-On と動作できるようにするクライアントアダプターをインストールすることができます。
3.2. JBoss EAP クライアントアダプターのインストール
JBoss EAP と Red Hat Single Sign-On を同じマシンにインストールする場合、JBoss EAP ではいくつかの変更が必要になります。この変更を加えるには、Red Hat Single Sign-On クライアントアダプターをインストールします。
前提条件
- JBoss EAP がインストールされている。
-
このファイルをカスタマイズする場合は
../standalone/configuration/standalone.xml
ファイルのバックアップを作成している。
手順
- Red Hat カスタマーポータル から、Client Adapter for EAP 7 をダウンロードします。
- JBoss EAP のルートディレクトリーに移動します。
ダウンロードしたクライアントアダプターをこのディレクトリーにデプロイメントします。以下に例を示します。
$ unzip <filename>.zip
bin ディレクトリーに移動します。
$ cd bin
プラットフォームに適したスクリプトを実行します。
注記file not found
エラーが発生した場合は、前の手順でunzip
を使用していたことを確認してください。この展開方法により、正しい場所にファイルがインストールされます。Linux/Unix
$ ./jboss-cli.sh --file=adapter-elytron-install-offline.cli
Windows
> jboss-cli.bat --file=adapter-elytron-install-offline.cli
注記このスクリプトを使用すると、
…/standalone/configuration/standalone.xml
ファイルに必要な編集が行われます。アプリケーションサーバーを起動します。
Linux/Unix
$ ./standalone.sh
Windows
> ...\standalone.bat
3.3. JBoss EAP アプリケーションの登録
Red Hat Single Sign-On 管理コンソールでクライアントを定義し、登録できるようになりました。
前提条件
- JBoss EAP と連携するクライアントアダプターがインストールされている。
手順
- 管理者アカウントで管理コンソール (http://localhost:8180/auth/admin/) にログインします。
-
左上のドロップダウンリストで、
Demo
レルムを選択します。 左側のメニューで
Clients
をクリックし、クライアントページを開きます。Clients
- 右側の Create をクリックします。
クライアントの追加ダイアログで、以下のようにフィールドを埋めて、vanilla という名前のクライアントを作成します。
クライアントの追加
- Save をクリックします。
- 表示される Vanilla クライアントページで、Installation タブをクリックします。
Keycloak OIDC JSON を選択して、後で必要なファイルを生成します。
Keycloak.json ファイル
- Download をクリックして、後で確認できる場所に Keycloak.json を保存します。
Keycloak OIDC JBoss Subsystem XML を選択して XML テンプレートを生成します。
テンプレート XML
- Download をクリックして、次の手順で使用するコピーを保存します。これには JBoss EAP の設定が含まれます。
3.4. JBoss EAP インスタンスの変更
JBoss EAP サーブレットアプリケーションは、Red Hat Single Sign-On によって保護される前に追加の設定を必要とします。
前提条件
- demo レルムに、vanilla という名前のクライアントが作成されている。
- このクライアントのテンプレート XML ファイルを保存している。
手順
-
JBoss EAP ルートディレクトリーの
standalone/configuration
ディレクトリーに移動します。 standalone.xml
ファイルを開き、以下のテキストを検索します。<subsystem xmlns="urn:jboss:domain:keycloak:1.1"/>
次に示すように、XML エントリーを自己終了から開始タグと終了タグのペアを使用するように変更します。
<subsystem xmlns="urn:jboss:domain:keycloak:1.1"> </subsystem>
以下の例のように、XML テンプレートの内容を
<subsystem>
要素内に貼り付けます。<subsystem xmlns="urn:jboss:domain:keycloak:1.1"> <secure-deployment name="WAR MODULE NAME.war"> <realm>demo</realm> <auth-server-url>http://localhost:8180/auth</auth-server-url> <public-client>true</public-client> <ssl-required>EXTERNAL</ssl-required> <resource>vanilla</resource> </secure-deployment> </subsystem>
WAR MODULE NAME.war
をvanilla.war
に変更します。<subsystem xmlns="urn:jboss:domain:keycloak:1.1"> <secure-deployment name="vanilla.war"> ... </subsystem>
- アプリケーションサーバーを再起動します。
3.5. サンプルコードをインストールしてアプリケーションを保護
最後の手順は、https://github.com/redhat-developer/redhat-sso-quickstarts リポジトリーから一部のサンプルコードをインストールして、このアプリケーションを保護する方法を説明します。クイックスタートは、最新の Red Hat Single Sign-On リリースと連携します。
サンプルコードは app-profile-jee-vanilla クイックスタートです。これは、WAR を変更せずに Basic 認証で保護された Jakarta EE アプリケーションを変更する方法を実証します。Red Hat Single Sign-On クライアントアダプターサブシステムは認証方法を変更し、設定を挿入します。
前提条件
以下がマシンにインストールされ、PATH で利用できる。
- Java JDK 8
- Apache Maven 3.1.1 以降
- Git
keycloak.json ファイルがある。
手順
- JBoss EAP アプリケーションサーバーが起動していることを確認します。
以下のコマンドを使用して、コードをダウンロードし、ディレクトリーを変更します。
$ git clone https://github.com/redhat-developer/redhat-sso-quickstarts $ cd redhat-sso-quickstarts/app-profile-jee-vanilla/config
-
keycloak.json
ファイルを現在のディレクトリーにコピーします。 -
app-profile-jee-vanilla
ディレクトリーに移動します。 以下のコマンドを使用してコードをインストールします。
$ mvn clean wildfly:deploy
アプリケーションのインストールが正常に完了したことを確認します。ログインページが表示される http://localhost:8080/vanilla に移動します。
成功を確認するログインページ
demo レルムで作成したアカウントを使用してログインします。
demo レルムへのログインページ
JBoss-EAPサンプルアプリケーションの保護にRed Hat Single Sign-Onを使用するのに成功したことを示すメッセージが表示されます。これですべての手順が終了しました。
完全な成功