18.2. Business Central への RH-SSO クライアントアダプターのインストール
RH-SSO をインストールしたら、Red Hat JBoss EAP に RH-SSO クライアントアダプターをインストールして、Business Central に対して設定する必要があります。
前提条件
- Red Hat JBoss EAP 7.3 への Red Hat Process Automation Manager のインストールおよび設定 の記載通りに、Business Central が Red Hat JBoss EAP 7.3 インスタンスにインストールされている。
- 16章RH-SSO のインストールおよび設定 の記載通りに、RH-SSO がインストールされている。
-
「Red Hat Process Automation Manager ユーザーの追加」 の記載通りに、
admin
ロールが割り当てられたユーザーが RH-SSO に追加されている。
手順
Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。
- 製品: Red Hat Single Sign-On
- バージョン: 7.4
- Patches タブを選択します。
-
Red Hat Single Sign-on 7.4 Client Adaptor for EAP 7 (
rh-sso-7.4.6-eap7-adapter.zip
または最新のバージョン) をダウンロードします。 adapter zip を展開してインストールします。インストール手順は Red Hat Single Sign On アプリケーションおよびサービスのセキュリティー保護ガイド の JBoss EAP アダプターセクションを参照してください。
注記-Dserver.config=standalone-full.xml
プロパティーでアダプターをインストールします。-
Red Hat JBoss EAP インストールの
EAP_HOME/standalone/configuration
ディレクトリーに移動し、テキストエディターでstandalone-full.xml
ファイルを開きます。 以下の例に表示されているシステムプロパティーを
<system-properties>
に追加します。<system-properties> <property name="org.jbpm.workbench.kie_server.keycloak" value="true"/> <property name="org.uberfire.ext.security.management.api.userManagementServices" value="KCAdapterUserManagementService"/> <property name="org.uberfire.ext.security.management.keycloak.authServer" value="http://localhost:8180/auth"/> </system-properties>
オプション: クライアントロールを使用する場合は、以下のシステムプロパティーを追加します。
<property name="org.uberfire.ext.security.management.keycloak.use-resource-role-mappings" value="true"/>
デフォルトでは、クライアントのリソース名は
kie
です。クライアントリソース名は、RH-SSO でクライアントの設定に使用したクライアント名と同じである必要があります。カスタムのクライアントリソースを使用する場合は、以下のシステムプロパティーも追加します。<property name="org.uberfire.ext.security.management.keycloak.resource" value="customClient"/>
customClient
はクライアントリソース名に置き換えます。RH-SSO サブシステム設定を追加します。以下に例を示します。
<subsystem xmlns="urn:jboss:domain:keycloak:1.1"> <secure-deployment name="business-central.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> <enable-basic-auth>true</enable-basic-auth> <resource>kie</resource> <credential name="secret">759514d0-dbb1-46ba-b7e7-ff76e63c6891</credential> <principal-attribute>preferred_username</principal-attribute> </secure-deployment> </subsystem>
この例で、
-
secure-deployment name
は、アプリケーションの WAR ファイルの名前です。 -
realm
は、使用するアプリケーション用に作成したレルムの名前です。 -
realm-public-key
は、作成したレルムの公開鍵です。この鍵は、RH-SSO 管理コンソールで作成したレルムの Realm settings ページの Keys タブで確認できます。realm-public-key
の値を指定しない場合は、サーバーが自動的に取得します。 -
auth-server-url
は、RH-SSO 認証サーバーの URL です。 -
enable-basic-auth
は、クライアントがトークンベースと Basic 認証の両方のアプローチを使用して要求を実行できるように、Basic 認証メカニズムを有効にする設定です。 -
resource
は、作成したクライアントの名前です。クライアントロールを使用するには、RH-SSO でクライアントの設定時に使用したクライアントリソース名を設定します。 -
credential name
は、作成したクライアントの秘密鍵です。この鍵は、RH-SSO 管理コンソールの Clients ページの Credentials タブで確認できます。 principal-attribute
は、ユーザーのログイン名です。この値を指定しないと、アプリケーションに、ユーザー名ではなくユーザー ID が表示されます。注記RH-SSO サーバーは、ユーザー名を小文字に変換します。したがって、RH-SSO と統合すると、ユーザー名が Red Hat Process Automation Manager では小文字で表示されます。ユーザー名が、ビジネスプロセスに大文字でハードコードされている場合は、アプリケーションが大文字のユーザー名を識別できない場合があります。
クライアントロールを使用する場合は、
<secure-deployment>
の下に以下の設定も追加します。<use-resource-role-mappings>true</use-resource-role-mappings>
-
Elytron サブシステムには、JACC 仕様に基づいた組み込み型ポリシープロバイダーがあります。
standalone.xml
、または Elytron がインストールされているファイルで手動で JACC を有効にするには、以下のタスクのいずれかを実行します。ポリシープロバイダーを作成するには、 Red Hat JBoss EAP の管理コマンドラインインターフェイス (CLI) で以下のコマンドを入力します。
/subsystem=elytron/policy=jacc:add(jacc-policy={}) /subsystem=undertow/application-security-domain=other:remove /subsystem=undertow/application-security-domain=other:add(http-authentication-factory=keycloak-http-authentication,enable-jacc=true)
Red Hat JBoss EAP の管理 CLI に関する詳細は、Red Hat JBoss EAP の 管理 CLI ガイド を参照してください。
Red Hat JBoss EAP インストールの
EAP_HOME/standalone/configuration
ディレクトリーに移動します。standalone.xml
ファイルおよびstandalone-full.xml
ファイルで Elytron と undertow サブシステム設定の場所を特定して JACC を有効にします。以下は例になります。<subsystem xmlns="urn:wildfly:elytron:4.0" ...> ...... <policy name="jacc"><jacc-policy/></policy> </subsystem>
<subsystem xmlns="urn:jboss:domain:undertow:7.0" ...> ...... <application-security-domains> <application-security-domain name="other" http-authentication-factory="keycloak-http-authentication" enable-jacc="true"/> </application-security-domains> </subsystem>
注記Elytron サブシステムを使用するには、レガシー
security
サブシステムで JACC を無効にする必要があります。レガシーサブシステムで JACC を無効にするには、Red Hat JBoss EAP 管理 CLI で以下のコマンドを入力します。/subsystem=security:write-attribute(name=initialize-jacc, value=false)
レガシー security サブシステムでの JACC を無効化にする方法は、Red Hat JBoss EAP の 開発ガイド を参照してください。
EAP_HOME/bin/
に移動し、以下のコマンドを実行して Red Hat JBoss EAP サーバーを起動します。./standalone.sh -c standalone-full.xml
RH-SSO セキュリティーサブシステムを使用するようにアプリケーションの WAR ファイルを更新して、Business Central の RH-SSO アダプターを設定することもできます。ただし Red Hat では、RH-SSO サブシステムからアダプターを設定することを推奨します。つまり、設定を各 WAR ファイルに適用するのではなく、Red Hat JBoss EAP の設定を更新します。