18.2. Business Central への RH-SSO クライアントアダプターのインストール
RH-SSO をインストールしたら、Red Hat JBoss EAP に RH-SSO クライアントアダプターをインストールして、Business Central に対して設定する必要があります。
前提条件
- Red Hat JBoss EAP 7.4 への Red Hat Process Automation Manager のインストールおよび設定 の記載通りに、Business Central が Red Hat JBoss EAP 7.4 インスタンスにインストールされている。
- 16章RH-SSO のインストールおよび設定 の記載通りに、RH-SSO がインストールされている。
-
「Red Hat Process Automation Manager ユーザーの追加」 の記載通りに、
admin
ロールが割り当てられたユーザーが RH-SSO に追加されている。
手順
Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。
- 製品: Red Hat Single Sign-On
- バージョン: 7.5
- Patches タブを選択します。
-
Red Hat Single Sign-On 7.5 Client Adapter for EAP 7 (
rh-sso-7.5.0-eap7-adapter.zip
または最新のバージョン) をダウンロードします。 adapter zip を展開してインストールします。インストール手順については、Red Hat Single Sign On Securing Applications and Services Guide の JBoss EAP Adapter セクションを参照してください。
注記-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>
<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>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: クライアントロールを使用する場合は、以下のシステムプロパティーを追加します。
<property name="org.uberfire.ext.security.management.keycloak.use-resource-role-mappings" value="true"/>
<property name="org.uberfire.ext.security.management.keycloak.use-resource-role-mappings" value="true"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、クライアントのリソース名は
kie
です。クライアントリソース名は、RH-SSO でクライアントの設定に使用したクライアント名と同じである必要があります。カスタムのクライアントリソースを使用する場合は、以下のシステムプロパティーも追加します。<property name="org.uberfire.ext.security.management.keycloak.resource" value="customClient"/>
<property name="org.uberfire.ext.security.management.keycloak.resource" value="customClient"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow customClient
はクライアントリソース名に置き換えます。RH-SSO サブシステム設定を追加します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例で、
-
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>
<use-resource-role-mappings>true</use-resource-role-mappings>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Elytron サブシステムには、JACC 仕様に基づいた組み込み型ポリシープロバイダーがあります。
standalone.xml
、または Elytron がインストールされているファイルで手動で JACC を有効にするには、以下のタスクのいずれかを実行します。ポリシープロバイダーを作成するには、 Red Hat JBoss EAP の管理コマンドラインインターフェイス (CLI) で以下のコマンドを入力します。
/subsystem=undertow/application-security-domain=other:remove() /subsystem=undertow/application-security-domain=other:add(http-authentication-factory="keycloak-http-authentication") /subsystem=ejb3/application-security-domain=other:write-attribute(name=security-domain, value=KeycloakDomain)
/subsystem=undertow/application-security-domain=other:remove() /subsystem=undertow/application-security-domain=other:add(http-authentication-factory="keycloak-http-authentication") /subsystem=ejb3/application-security-domain=other:write-attribute(name=security-domain, value=KeycloakDomain)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat JBoss EAP 管理 CLI に関する詳細は、Red Hat JBoss EAP の Management CLI Guide を参照してください。
Red Hat JBoss EAP インストールの
EAP_HOME/standalone/configuration
ディレクトリーに移動します。standalone.xml
ファイルおよびstandalone-full.xml
ファイルで Elytron と undertow サブシステム設定の場所を特定して JACC を有効にします。以下に例を示します。<subsystem xmlns="urn:jboss:domain:undertow:12.0" ... > ... <application-security-domains> <application-security-domain name="other" http-authentication-factory="keycloak-http-authentication"/> </application-security-domains>
<subsystem xmlns="urn:jboss:domain:undertow:12.0" ... > ... <application-security-domains> <application-security-domain name="other" http-authentication-factory="keycloak-http-authentication"/> </application-security-domains>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <subsystem xmlns="urn:jboss:domain:ejb3:9.0"> ... <application-security-domains> <application-security-domain name="other" security-domain="KeycloakDomain"/> </application-security-domains>
<subsystem xmlns="urn:jboss:domain:ejb3:9.0"> ... <application-security-domains> <application-security-domain name="other" security-domain="KeycloakDomain"/> </application-security-domains>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
EAP_HOME/bin/
に移動し、以下のコマンドを実行して Red Hat JBoss EAP サーバーを起動します。./standalone.sh -c standalone-full.xml
./standalone.sh -c standalone-full.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
RH-SSO セキュリティーサブシステムを使用するようにアプリケーションの WAR ファイルを更新して、Business Central の RH-SSO アダプターを設定することもできます。ただし Red Hat では、RH-SSO サブシステムからアダプターを設定することを推奨します。つまり、設定を各 WAR ファイルに適用するのではなく、Red Hat JBoss EAP の設定を更新します。