第5章 RH-SSO を使用した Process Server の認証
Process Server は、サードパーティークライアントの REST API を提供します。Process Server と RH-SSO を統合した場合は、サードパーティークライアントのアイデンティティー管理を RH-SSO サーバーに委譲できます。
Red Hat Process Automation Manager のレルムクライアントを作成して、Red Hat JBoss EAP に RH-SSO クライアントアダプターを設定したら、Process Server に RH-SSO 認証を設定できます。
前提条件
- 「2章RH-SSO のインストールおよび設定」の記載通りに、RH-SSO がインストールされている。
-
「Red Hat Process Automation Manager ユーザーの追加」の記載通りに、
kie-server
ロールが割り当てられたユーザーが 1 つ以上 RH-SSO に追加されている。 - 『Red Hat JBoss EAP 7.2 への Red Hat Process Automation Manager のインストールおよび設定』の記載通りに、Process Server が Red Hat JBoss EAP 7.2 インスタンスにインストールされている。
本章は以下のセクションで構成されます。
このセクションは、「RH-SSO で Process Server クライアントの作成」 を除き、スタンドアロンのインストールが対象です。Red Hat OpenShift Container Platform で RH-SSO と Red Hat Process Automation Manager を統合する場合には、「RH-SSO で Process Server クライアントの作成」 の手順のみを実行して、Red Hat OpenShift Container Platform に Red Hat Process Automation Manager 環境をデプロイしてください。Red Hat OpenShift Container Platform への Red Hat Process Automation Manager のデプロイの手順は、Red Hat カスタマーポータル の適切なドキュメントを参照してください。
5.1. RH-SSO で Process Server クライアントの作成
RH-SSO 管理コンソールを使用して、既存のレルムに Process Server クライアントを作成します。
前提条件
- 『Red Hat JBoss EAP 7.2 への Red Hat Process Automation Manager のインストールおよび設定』の記載通りに、Process Server が Red Hat JBoss EAP 7.2 サーバーにインストールされている。
- 「2章RH-SSO のインストールおよび設定」の記載通りに、RH-SSO がインストールされている。
-
「Red Hat Process Automation Manager ユーザーの追加」の記載通りに、
kie-server
ロールが割り当てられたユーザーが 1 つ以上 RH-SSO に追加されている。
手順
- RH-SSO 管理コンソールで、「2章RH-SSO のインストールおよび設定」で作成したセキュリティーレルムを開きます。
Clients をクリックし、Create をクリックします。
Add Client ページが表示されます。
Add Client ページで、レルムに Process Server クライアントを作成するのに必要な情報を入力し、Save をクリックします。以下は例になります。
-
クライアント ID:
kie-execution-server
-
Root URL:
http://localhost:8080/kie-server
クライアントのプロトコル:
openid-connect
注記Red Hat OpenShift Container Platform で RH-SSO を設定している場合には、Process Server ルートに公開されている URL を入力します。OpenShift 管理者は、必要に応じてこの URL を提供してください。
-
クライアント ID:
-
新規クライアントの Access Type は、デフォルトでは
public
に設定されています。この設定をconfidential
に変更して、もう一度 Save をクリックします。 -
Credentials タブに移動して秘密鍵をコピーします。秘密鍵は、
kie-execution-server
クライアントを設定するのに必要になります。
5.2. クライアントアダプターを使用する Process Server のインストールおよび設定
RH-SSO をインストールしたら、Red Hat JBoss EAP に RH-SSO クライアントアダプターをインストールして、Process Server に対して設定する必要があります。
前提条件
- 『Red Hat JBoss EAP 7.2 への Red Hat Process Automation Manager のインストールおよび設定』の記載通りに、Process Server が Red Hat JBoss EAP 7.2 サーバーにインストールされている。
- 「2章RH-SSO のインストールおよび設定」の記載通りに、RH-SSO がインストールされている。
-
「Red Hat Process Automation Manager ユーザーの追加」の記載通りに、
kie-server
ロールが割り当てられたユーザーが 1 つ以上 RH-SSO に追加されている。
Process Server を Business Central 以外のアプリケーションにデプロイする場合には、2 番目のサーバーに RH-SSO をインストールして設定します。
手順
Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。
- 製品: Red Hat Single Sign-On
- Version: 7.3
-
Red Hat Single Sign-on 7.3.0 Client Adaptor for JBoss EAP 7 (
rh-sso-7.3.0-eap7-adapter.zip
) をダウンロードします。 -
rh-sso-7.3.0-eap7-adapter.zip
を展開してインストールします。インストール手順は『Red Hat Single Sign On Securing Applications and Services Guide』の「JBoss EAP Adapter」セクションを参照してください。 -
EAP_HOME/standalone/configuration
に移動して、standalone-full.xml
ファイルを開きます。 -
両方のファイルから、
<single-sign-on/>
要素を削除します。 -
Red Hat JBoss EAP システムの
EAP_HOME/standalone/configuration
ディレクトリーに移動し、standalone-full.xml
ファイルを編集して RH-SSO サブシステム設定を追加します。以下は例になります。 Red Hat JBoss EAP システムの
EAP_HOME/standalone/configuration
に移動し、standalone-full.xml
ファイルを編集して RH-SSO サブシステム設定を追加します。以下に例を示します。<subsystem xmlns="urn:jboss:domain:keycloak:1.1"> <secure-deployment name="kie-execution-server.war"> <realm>demo</realm> <realm-public-key>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB</realm-public-key> <auth-server-url>http://localhost:8180/auth</auth-server-url> <ssl-required>external</ssl-required> <resource>kie-execution-server</resource> <enable-basic-auth>true</enable-basic-auth> <credential name="secret">03c2b267-7f64-4647-8566-572be673f5fa</credential> <principal-attribute>preferred_username</principal-attribute> </secure-deployment> </subsystem> <system-properties> <property name="org.kie.server.sync.deploy" value="false"/> </system-properties>
この例で、
-
secure-deployment name
は、アプリケーションの WAR ファイルの名前です。 -
realm
は、使用するアプリケーション用に作成したレルムの名前です。 -
realm-public-key
は、作成したレルムの公開鍵です。この鍵は、RH-SSO 管理コンソールで作成したレルムの Realm settings ページの Keys タブで確認できます。この公開鍵の値を指定しない場合は、サーバーが自動的に取得します。 -
auth-server-url
は、RH-SSO 認証サーバーの URL です。 -
resource
は、作成したサーバークライアントの名前です。 -
enable-basic-auth
は、クライアントがトークンベースと Basic 認証アプローチの両方を使用して要求を実行できるように、Basic 認証メカニズムを有効にする設定です。 -
credential name
は、作成したサーバークライアントの秘密鍵です。この鍵は、RH-SSO 管理コンソールの Clients ページの Credentials タブで確認できます。 -
principal-attribute
は、ユーザーのログイン名です。この値を指定しないと、ユーザー名ではなくユーザー ID がアプリケーションに表示されます。
-
- 設定変更を保存します。
以下のコマンドを使用して Red Hat JBoss EAP サーバーを再起動し、Process Server を実行します。
EXEC_SERVER_HOME/bin/standalone.sh -c standalone-full.xml -Dorg.kie.server.id=<ID> -Dorg.kie.server.user=<USER> -Dorg.kie.server.pwd=<PWD> -Dorg.kie.server.location=<LOCATION_URL> -Dorg.kie.server.controller=<CONTROLLER_URL> -Dorg.kie.server.controller.user=<CONTROLLER_USER> -Dorg.kie.server.controller.pwd=<CONTOLLER_PASSWORD>
以下は例になります。
EXEC_SERVER_HOME/bin/standalone.sh -c standalone-full.xml -Dorg.kie.server.id=kieserver1 -Dorg.kie.server.user=kieserver -Dorg.kie.server.pwd=password -Dorg.kie.server.location=http://localhost:8080/kie-execution-server/services/rest/server -Dorg.kie.server.controller=http://localhost:8080/business-central/rest/controller -Dorg.kie.server.controller.user=kiecontroller -Dorg.kie.server.controller.pwd=password
Process Server の実行中に、以下のコマンドを実行してサーバーの状態を確認します。
<KIE_SERVER_USER>
はkie-server
ロールが割り当てられているユーザー名で、そのパスワードは<PASSWORD>
です。curl http://<KIE_SERVER_USER>:<PASSWORD>@localhost:8080/kie-execution-server/services/rest/server/
5.3. Process Server のトークンベースの認証
Red Hat Process Automation Manager と Process Server 間の通信に、トークンベースの認証を使用することもできます。アプリケーションにおいて、ユーザー名とパスワードの代わりに、完全なトークンをアプリケーションサーバーのシステムプロパティーとして使用できます。ただし、トークンは自動的に更新されないため、アプリケーションの通信が行われている間にトークンが失効しないようにする必要があります。トークンを取得する方法は「トークンベースの認証」を参照してください。
手順
トークンを使用して Process Server を管理するように Business Central を設定するには、以下を実行します。
-
org.kie.server.token
プロパティーを設定します。 org.kie.server.user
プロパティーとorg.kie.server.pwd
プロパティーは設定しないでください。これで、Red Hat Process Automation Manager は
Authorization: Bearer $TOKEN
認証メソッドを使用します。
-
トークンベースの認証を使用して REST API を使用する場合は、以下を行います。
-
org.kie.server.controller.token
プロパティーを設定します。 -
org.kie.server.controller.user
プロパティーおよびorg.kie.server.controller.pwd
プロパティーは設定しないでください。
-
Process Server はトークンを更新できないため、有効期限が長いトークンを使用してください。トークンの有効期限は、2038 年 1 月 19 日以降にならないようにしてください。セキュリティーのベストプラクティスで、お使いの環境に適したソリューションかどうかを確認してください。