1.2.16. Red Hat Single Sign-On での管理コンソールのセキュア化

elytron サブシステムを使用すると、Red Hat シングルサインオンで JBoss EAP 管理コンソールをセキュア化できます。

注記

この機能はスタンドアロンサーバーを実行する場合のみ利用でき、管理対象ドメイン実行時にはサポートされません。管理 CLI をセキュアにする Red Hat Single Sign-On の使用はサポートされません。

以下の手順に従い、Red Hat Single Sign-On を設定し、JBoss EAP 管理コンソールのユーザーを認証します。

JBoss EAP 管理用の Red Hat Single Sign-On サーバーの設定
  1. Red Hat Single Sign-On サーバーをダウンロードしてインストールします。基本的な手順については、Red Hat Single Sign-On Getting Started Guide を参照してください。
  2. Red Hat Single Sign-On サーバーを起動します。

    この手順では、ポートオフセット 100 でサーバーを起動したことを前提とします。

    $ RHSSO_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100
  3. http://localhost:8180/auth/ で Red Hat Single Sign-On 管理コンソールにログインします。

    Red Hat Single Sign-On 管理コンソールに初めてアクセスすると、初期管理ユーザーを作成するように求められます。

  4. wildfly-infra という名前の新規レルムを作成します。

    1. レルム名の横にあるドロップダウンメニューで、Add realm をクリックし、Name フィールドに wildfly-infra を入力し、Create をクリックします。
  5. wildfly-console というクライアントアプリケーションを作成します。

    重要

    このクライアントアプリケーションの名前は wildfly-consoleする必要があります

    1. Clients を選択し、Create をクリックします。
    2. Client ID フィールドに wildfly-console を入力し、Save をクリックします。
    3. 表示される Settings 画面で Access Typepublic に設定し、Valid Redirect URIshttp://localhost:9990/console/* に、Web Originshttp://localhost:9990 に設定し、Save をクリックします。
  6. wildfly-management というクライアントアプリケーションを作成します。

    1. Clients を選択し、Create をクリックします。
    2. Client ID フィールドに wildfly-management を入力し、Save をクリックします。
    3. 表示される Settings 画面で、Access Typebearer-only に設定し、Save をクリックします。
  7. JBoss EAP 管理コンソールへのアクセスを付与するためのロールを作成します。

    1. Roles を選択して Add Role をクリックします。
    2. Role Name フィールドに大文字で ADMINISTRATOR を入力し、Save をクリックします。

      以下の手順では、ADMINISTRATOR ロールを使用しますが、その他のロールもサポートされています。詳細は、JBoss EAP の『 セキュリティーアーキテクチャー 』の「 ロールベースのアクセス制御 」を参照してください。

  8. ユーザーを作成し、ADMINISTRATOR ロールを割り当てます。

    1. Users を選択して Add user をクリックします。
    2. Username フィールドに jboss を入力して Save をクリックします。
    3. Credentials タブを選択し、このユーザーのパスワードを設定します。
    4. Role Mappings タブを選択し、ADMINISTRATOR を選択して Add selected をクリックし、このユーザーにロールを追加します。
JBoss EAP に Red Hat Single Sign-On クライアントアダプターをインストールする
  1. Download the Red Hat Single Sign-On client adapter for JBoss EAP 7 from the ソフトウェアダウンロードページ から JBoss EAP 7 の Red Hat Single Sign-On クライアントアダプターをダウンロードします。
  2. このファイルを JBoss EAP インストールのルートディレクトリーに展開します。
  3. adapter-elytron-install-offline.cli スクリプトを実行し、JBoss EAP のインストールを設定します。

    $ EAP_HOME/bin/jboss-cli.sh --file=adapter-elytron-install-offline.cli
    重要

    このスクリプトにより、keycloak サブシステムと、elytron および undertow サブシステムのその他の必要なリソースが standalone.xml に追加されます。別の設定ファイルを使用する必要がある場合は、必要に応じてスクリプトを変更してください。

Red Hat Single Sign-On を使用するように JBoss EAP を設定する
  1. EAP_HOME/bin/ ディレクトリーで、以下の内容を含む protect-eap-mgmt-services.cli という名前のファイルを作成します。

    # Create a realm for both JBoss EAP console and mgmt interface
    /subsystem=keycloak/realm=wildfly-infra:add(auth-server-url=http://localhost:8180/auth,realm-public-key=REALM_PUBLIC_KEY)
    
    # Create a secure-deployment in order to protect mgmt interface
    /subsystem=keycloak/secure-deployment=wildfly-management:add(realm=wildfly-infra,resource=wildfly-management,principal-attribute=preferred_username,bearer-only=true,ssl-required=EXTERNAL)
    
    # Protect HTTP mgmt interface with Keycloak adapter
    /core-service=management/management-interface=http-interface:undefine-attribute(name=security-realm)
    /subsystem=elytron/http-authentication-factory=keycloak-mgmt-http-authentication:add(security-domain=KeycloakDomain,http-server-mechanism-factory=wildfly-management,mechanism-configurations=[{mechanism-name=KEYCLOAK,mechanism-realm-configurations=[{realm-name=KeycloakOIDCRealm,realm-mapper=keycloak-oidc-realm-mapper}]}])
    /core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory,value=keycloak-mgmt-http-authentication)
    /core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade, value={enabled=true, sasl-authentication-factory=management-sasl-authentication})
    
    # Enable RBAC where roles are obtained from the identity
    /core-service=management/access=authorization:write-attribute(name=provider,value=rbac)
    /core-service=management/access=authorization:write-attribute(name=use-identity-roles,value=true)
    
    # Create a secure-server in order to publish the JBoss EAP console configuration via mgmt interface
    /subsystem=keycloak/secure-server=wildfly-console:add(realm=wildfly-infra,resource=wildfly-console,public-client=true)
    
    # reload
    reload
  2. このファイルでの REALM_PUBLIC_KEY を公開鍵の値に置き換えます。この値を取得するには、Red Hat Single Sign-On 管理コンソールにログインし、wildfly-infra レルムを選択して Realm SettingsKeys の順に選択し、Public key をクリックします。
  3. JBoss EAP を起動します。

    $ EAP_HOME/bin/standalone.sh
    重要

    Red Hat Single Sign-On クライアントアダプターを取り付けるとき adapter-elytron-install-offline.cli スクリプトを変更して、standalone.xml 以外の設定ファイルを使用する場合は、その設定を使用して JBoss EAP を起動するようにしてください。

  4. protect-eap-mgmt-services.cli スクリプトを実行します。

    $ EAP_HOME/bin/jboss-cli.sh --connect --file=protect-eap-mgmt-services.cli

http://localhost:9990/console/ で JBoss EAP 管理コンソールにアクセスすると、ログインのために Red Hat Single Sign-On にリダイレクトされ、認証に成功したときに JBoss EAP 管理コンソールにリダイレクトされます。