Menu Close

第5章 RH-SSO を使用した KIE Server の認証

KIE Server は、サードパーティークライアントの REST API を提供します。KIE Server と RH-SSO を統合した場合は、サードパーティークライアントのアイデンティティー管理を RH-SSO サーバーに委譲できます。

Red Hat Decision Manager のレルムクライアントを作成して、Red Hat JBoss EAP に RH-SSO クライアントアダプターを設定したら、KIE Server に RH-SSO 認証を設定できます。

前提条件

本章は以下のセクションで構成されます。

注記

このセクションは、「RH-SSO で KIE Server クライアントの作成」を除き、スタンドアロンのインストールが対象です。Red Hat OpenShift Container Platform で RH-SSO と Red Hat Decision Manager を統合する場合には、「RH-SSO で KIE Server クライアントの作成」の手順のみを実行して、Red Hat OpenShift Container Platform に Red Hat Decision Manager 環境をデプロイしてください。Red Hat OpenShift Container Platform への Red Hat Decision Manager のデプロイの手順は、Red Hat カスタマーポータル の適切なドキュメントを参照してください。

5.1. RH-SSO で KIE Server クライアントの作成

RH-SSO 管理コンソールを使用して、既存のレルムに KIE Server クライアントを作成します。

前提条件

手順

  1. RH-SSO 管理コンソールで、「2章RH-SSO のインストールおよび設定」で作成したセキュリティーレルムを開きます。
  2. Clients をクリックし、Create をクリックします。

    Add Client ページが表示されます。

  3. Add Client ページで、レルムに KIE Server クライアントを作成するのに必要な情報を入力し、Save をクリックします。以下は例になります。

    • クライアント ID: kie-execution-server
    • Root URL: http://localhost:8080/kie-server
    • クライアントのプロトコル: openid-connect

      注記

      Red Hat OpenShift Container Platform で RH-SSO を設定している場合には、KIE Server ルートに公開されている URL を入力します。OpenShift 管理者は、必要に応じてこの URL を提供してください。

  4. 新規クライアントの Access Type は、デフォルトでは public に設定されています。この設定を confidential に変更して、もう一度 Save をクリックします。
  5. Credentials タブに移動して秘密鍵をコピーします。秘密鍵は、kie-execution-server クライアントを設定するのに必要になります。

5.2. クライアントアダプターを使用する KIE Server のインストールおよび設定

RH-SSO をインストールしたら、Red Hat JBoss EAP に RH-SSO クライアントアダプターをインストールして、KIE Server に対して設定する必要があります。

前提条件

注記

KIE Server を Business Central 以外のアプリケーションにデプロイする場合には、2 番目のサーバーに RH-SSO をインストールして設定します。

手順

  1. Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。

    • 製品: Red Hat Single Sign-On
    • バージョン: 7.4
  2. Red Hat Single Sign-on 7.4.0 Client Adaptor for JBoss EAP 7 (rh-sso-7.4.0-eap7-adapter.zip) または最新のバージョンをダウンロードします。
  3. rh-sso-7.3.0-eap7-adapter.zip を展開してインストールします。インストール手順は『Red Hat Single Sign On Securing Applications and Services Guide』の「JBoss EAP Adapter」セクションを参照してください。
  4. EAP_HOME/standalone/configuration に移動して、standalone-full.xml ファイルを開きます。
  5. 両方のファイルから、<single-sign-on/> 要素を削除します。
  6. Red Hat JBoss EAP システムの EAP_HOME/standalone/configuration ディレクトリーに移動し、standalone-full.xml ファイルを編集して RH-SSO サブシステム設定を追加します。以下は例になります。
  7. 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-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 がアプリケーションに表示されます。
  8. 設定変更を保存します。
  9. 以下のコマンドを使用し、Red Hat JBoss EAP サーバーを再起動して KIE 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-server/services/rest/server -Dorg.kie.server.controller=http://localhost:8080/decision-central/rest/controller -Dorg.kie.server.controller.user=kiecontroller -Dorg.kie.server.controller.pwd=password
  10. KIE Server の実行中に、以下のコマンドを実行してサーバーの状態を確認します。<KIE_SERVER_USER>kie-server ロールが割り当てられているユーザー名で、そのパスワードは <PASSWORD> です。

    curl http://<KIE_SERVER_USER>:<PASSWORD>@localhost:8080/kie-server/services/rest/server/

5.3. KIE Server のトークンベースの認証

Red Hat Decision Manager と KIE Server 間の通信に、トークンベースの認証を使用することもできます。アプリケーションにおいて、(ユーザー名とパスワードではなく) 完全なトークンをアプリケーションサーバーのシステムプロパティーとして使用できます。ただし、トークンは自動的に更新されないので、アプリケーションの通信が行われている間トークンが失効しないようにする必要があります。トークンを取得する方法は「トークンベースの認証」を参照してください。

手順

  1. トークンを使用して KIE Server を管理するように Business Central を設定するには、以下を実行します。

    1. org.kie.server.token プロパティーを設定します。
    2. org.kie.server.user プロパティーと org.kie.server.pwd プロパティーは設定しないでください。

      これで、Red Hat Decision Manager は Authorization: Bearer $TOKEN 認証メソッドを使用します。

  2. トークンベースの認証を使用して REST API を使用する場合は、以下を行います。

    1. org.kie.server.controller.token プロパティーを設定します。
    2. org.kie.server.controller.user プロパティーおよび org.kie.server.controller.pwd プロパティーは設定しないでください。
注記

KIE Server はトークンを更新できないので、有効期限の長いトークンを使用してください。また、トークンの有効期限は、2038 年 1 月 19 日以降にならないようにしてください。セキュリティーのベストプラクティスをチェックし、お使いの環境に適したソリューションかどうかを確認してください。