第4章 RH-SSO を使用した Business Central の認証
本章では、RH-SSO を介して Business Central を認証する方法を説明します。この章には以下のセクションが含まれます。
前提条件
- 『Red Hat JBoss EAP 7.2 への Red Hat Process Automation Manager のインストールおよび設定』の記載通りに、Business Central が Red Hat JBoss EAP 7.2 サーバーにインストールされている。
- 「2章RH-SSO のインストールおよび設定」の記載通りに、RH-SSO がインストールされている。
- 「「Red Hat Process Automation Manager ユーザーの追加」」の記載通りに、Business Central ユーザーが RH-SSO に追加されている。
このセクションは、「RH-SSO への Business Central クライアントの作成」 を除き、スタンドアロンのインストールが対象です。Red Hat OpenShift Container Platform で RH-SSO と Red Hat Process Automation Manager を統合する場合には、「RH-SSO への Business Central クライアントの作成」 の手順のみを実行して、Red Hat OpenShift Container Platform に Red Hat Process Automation Manager 環境をデプロイしてください。Red Hat OpenShift Container Platform への Red Hat Process Automation Manager のデプロイの手順は、Red Hat カスタマーポータル の適切なドキュメントを参照してください。
4.1. RH-SSO への Business Central クライアントの作成
RH-SSO サーバーの起動後、RH-SSO 管理コンソールを使用して RH-SSO 向けに Business Central クライアントを作成します。
手順
Web ブラウザーに
http://localhost:8180/auth/admin
と入力して、RH-SSO 管理コンソールを開き、RH-SSO のインストール時に作成した管理者の認証情報を使用してログインします。注記Red Hat OpenShift Container Platform で RH-SSO を設定している場合には、RH-SSO ルートに公開されている URL を入力します。OpenShift 管理者は、必要に応じてこの URL を提供してください。
初回ログイン時に、新規ユーザー登録で最初のユーザーを設定できます。
- RH-SSO 管理コンソールで、Realm Settings メニューアイテムをクリックします。
Realm Settings ページで Add Realm をクリックします。
Add realm ページが表示されます。
- Add realm ページで、レルムの名前を指定して Create をクリックします。
Clients メニューアイテムをクリックし、Create をクリックします。
Add Client ページが表示されます。
Add Client ページで、以下のようにレルムにクライアントを新規作成するのに必要な情報を指定します。
- Client ID: kie
- Client protocol: openid-connect
Root URL:
http://localhost:8080/business-central
注記Red Hat OpenShift Container Platform で RH-SSO を設定している場合には、Process Server ルートに公開されている URL を入力します。OpenShift 管理者は、必要に応じてこの URL を提供してください。
Save をクリックして変更を保存します。
作成した新規クライアントの Access Type は、デフォルトでは
public
に設定されています。この設定をconfidential
に変更します。これで、Business Central アプリケーションのクライアントが含まれるレルムに RH-SSO サーバーが設定され、
localhost:8180
で HTTP 接続をリッスンした状態で実行しています。このレルムは、Business Central アプリケーションに異なるユーザー、ロール、セッションを提供します。
4.2. Business Central への RH-SSO クライアントアダプターのインストール
RH-SSO をインストールしたら、Red Hat JBoss EAP に RH-SSO クライアントアダプターをインストールして、Business Central に対して設定する必要があります。
前提条件
- 『Red Hat JBoss EAP 7.2 への Red Hat Process Automation Manager のインストールおよび設定』の記載通りに、Business Central が Red Hat JBoss EAP 7.2 インスタンスにインストールされている。
- 「2章RH-SSO のインストールおよび設定」の記載通りに、RH-SSO がインストールされている。
-
「「Red Hat Process Automation Manager ユーザーの追加」」の記載通りに、
admin
ロールが割り当てられたユーザーが RH-SSO に追加されている。
手順
Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。
- 製品: Red Hat Single Sign-On
- Version: 7.3
-
Red Hat Single Sign-on 7.3. Client Adaptor for JBoss EAP 7 (
rh-sso-7.3-eap7-adapter.zip
) をダウンロードします。 rh-sso-7.3-eap7-adapter.zip
を展開してインストールします。インストール手順は『Red Hat Single Sign On Securing Applications and Services Guide』の「JBoss EAP Adapter」セクションを参照してください。注記-Dserver.config=standalone-full.xml
プロパティーでアダプターをインストールします。-
EAP_HOME/standalone/configuration
に移動して、standalone-full.xml
ファイルを開きます。 -
両方のファイルから、
<single-sign-on/>
要素を削除します。 -
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>
以下のように、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
は、作成したクライアントの名前です。 -
credential name
は、作成したクライアントの秘密鍵です。この鍵は、RH-SSO 管理コンソールの Clients ページの Credentials タブで確認できます。 principal-attribute
は、ユーザーのログイン名です。この値を指定しないと、ユーザー名ではなくユーザー ID がアプリケーションに表示されます。注記RH-SSO サーバーは、ユーザー名を小文字に変換します。したがって、RH-SSO と統合すると、ユーザー名が Red Hat Process Automation Manager では小文字で表示されます。ユーザー名が、ビジネスプロセスに大文字でハードコードされている場合は、アプリケーションが大文字のユーザー名を識別できない場合があります。
-
Red Hat JBoss EAP インストールの
EAP_HOME/standalone/configuration
ディレクトリーに移動し、standalone.xml
ファイルおよびstandalone-full.xml
ファイルで Elytron と undertow サブシステム設定の場所を特定して JACC を有効化します。以下に例を示します。<subsystem xmlns="urn:wildfly:elytron:4.0" ...> ...... <policy><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>
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 の設定を更新します。
4.3. RH-SSO を使用した Business Central ファイルシステムサービスのセキュリティー
ファイルシステムなど、他のリモートサービス (例: リモート GIT サービス) を使用するには、正しい RH-SSO ログインモジュールを指定する必要があります。
手順
JSON 設定ファイルを生成します。
- http://localhost:8180/auth/admin から RH-SSO 管理コンソール に移動します。
- Clients をクリックします。
以下の設定で新規クライアントを作成します。
-
Client ID は
kie-git
に設定します。 -
Access Type は
confidential
に設定します。 - Standard Flow Enabled オプションを無効にします。
- Direct Access Grants Enabled オプションを有効にします。
-
Client ID は
- 保存 をクリックします。
- クライアント設定画面の上部にある Installation タブをクリックして、Format Option に Keycloak OIDC JSON を選択します。
- Download をクリックします。
- ダウンロードした JSON ファイルを、サーバーのファイルシステム内でアクセス可能なディレクトリーに移動するか、アプリケーションクラスパスに追加します。
EAP_HOME/standalone/configuration/standalone-full.xml
ファイルに、正しい RH-SSO ログインモジュールを指定します。デフォルトでは、Red Hat Process Automation Manager のセキュリティードメインはother
に設定されます。このセキュリティードメインのlogin-module
のデフォルト値を、以下の例で示す値に置き換えます。<security-domain name="other" cache-type="default"> <authentication> <login-module code="org.keycloak.adapters.jaas.DirectAccessGrantsLoginModule" flag="required"> <module-option name="keycloak-config-file" value="$EAP_HOME/kie-git.json"/> </login-module> </authentication> </security-domain>
module-option
要素で指定した JSON ファイルには、リモートサービスのセキュリティーを確保するために使用するクライアントが含まれます。module-option
要素の$EAP_HOME/kie-git.json
の値を、この JSON 設定ファイルの絶対パスまたはクラスパス (classpath:/EXAMPLE_PATH/kie-git.json
) に置き換えます。これで、RH-SSO サーバーで認証されたすべてのユーザーは、内部 GIT リポジトリーのクローンを作成できます。以下のコマンドで、
USER_NAME
を RH-SSO ユーザー (admin
など) に変更します。git clone ssh://USER_NAME@localhost:8001/system