18.2. Business Central への RH-SSO クライアントアダプターのインストール
RH-SSO をインストールしたら、Red Hat JBoss EAP に RH-SSO クライアントアダプターをインストールして、Business Central に対して設定する必要があります。
前提条件
- Red Hat JBoss EAP 7.4 への Red Hat Decision Manager のインストールおよび設定 の記載通りに、Business Central が Red Hat JBoss EAP 7.4 インスタンスにインストールされている。
- 16章RH-SSO のインストールおよび設定 の記載通りに、RH-SSO がインストールされている。
-
「Red Hat Decision 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>
オプション: クライアントロールを使用する場合は、以下のシステムプロパティーを追加します。
<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="decision-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 Decision Manager ではユーザー名が小文字で表示されます。ユーザー名が、ビジネスプロセスに大文字でハードコードされている場合は、アプリケーションが大文字のユーザー名を識別できない場合があります。
クライアントロールを使用する場合は、
<secure-deployment>の下に以下の設定も追加します。<use-resource-role-mappings>true</use-resource-role-mappings>
-
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)
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:ejb3:9.0"> ... <application-security-domains> <application-security-domain name="other" security-domain="KeycloakDomain"/> </application-security-domains>
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 の設定を更新します。