4.8. Red Hat Single Sign-On Client

クライアントは、ユーザー認証を要求する Red Hat Single Sign-On エンティティーです。クライアントは、ユーザー認証を提供するために Red Hat Single Sign-On を要求するアプリケーションを使用することも、認証ユーザーの代わりにサービスを開始するためのアクセストークンの要求を行うことができます。詳細は、Red Hat Single Sign-On ドキュメントの「クライアントの管理」の章を参照してください。

Red Hat Single Sign-On は、OpenID-ConnectおよびSAML クライアントプロトコルを提供します。
OpenID-Connect が推奨されるプロトコルとなり、3 つの異なるアクセス種別が使用されます。

  • public: ブラウザーで直接実行し、サーバー構成が必要ない JavaScript アプリケーションに役立ちます。
  • confidential: ブラウザーログインを実行する必要がある EAP Web アプリケーションなどのサーバー側クライアントに役立ちます。
  • bearer-only: ベアラートークンリクエストを許可するバックエンドサービスに役立ちます。

アプリケーションの web.xml ファイルの <auth-method> キーでクライアントタイプを指定する必要があります。このファイルは、デプロイ時にイメージにより読み取られます。<auth-method> 要素の値を以下のように設定します。

  • OpenID Connect クライアントの KEYCLOAK
  • SAML クライアントの KEYCLOAK-SAML

以下は、OIDC クライアントを設定するアプリケーションの web.xml のスニペットの例です。

...
<login-config>
        <auth-method>KEYCLOAK</auth-method>
</login-config>
...

4.8.1. Red Hat Single Sign-On Client の自動および手動での登録方法

eap64-sso-s2ieap71-sso-s2i、および datavirt63-secure-s2i に固有の変数に渡される認証情報を使用すると、クライアントアプリケーションを Red Hat Single Sign-On レルムに自動的に登録できます。

または、Red Hat Single Sign-On クライアントアダプターを設定してエクスポートし、クライアントアプリケーション設定に追加することで、クライアントアプリケーションを手動で登録できます。

4.8.1.1. Red Hat Single Sign-On Client の自動登録

Red Hat Single Sign-On クライアントの自動登録は、eap64-sso-s2ieap71-sso-s2i、および datavirt63-secure-s2i に固有の Red Hat Single Sign-On 環境変数により決定されます。テンプレートに指定された Red Hat Single Sign-On 認証情報は、クライアントアプリケーションのデプロイメント時にクライアントを Red Hat Single Sign-On レルムに登録するのに使用されます。

eap64-sso-s2ieap71-sso-s2i、および datavirt63-secure-s2i テンプレートに含まれる Red Hat Single Sign-On の環境変数は次のとおりです。

変数説明

HOSTNAME_HTTP

http サービスルートのカスタムホスト名。<application-name>.<project>.<default-domain-suffix> のデフォルトホスト名には空白のままにします。

HOSTNAME_HTTPS

https サービスルートのカスタムホスト名。<application-name>.<project>.<default-domain-suffix> のデフォルトホスト名には空白のままにします。

SSO_URL

Red Hat Single Sign-On の Web サーバーの認証アドレス: https://secure-sso-<project-name>.<hostname>/auth

SSO_REALM

この手順用に作成された Red Hat Single Sign-On レルム。

SSO_USERNAME

レルム管理ユーザー の名前。

SSO_PASSWORD

ユーザーのパスワード。

SSO_PUBLIC_KEY

レルムによって生成された公開鍵。これは、Red Hat Single Sign-On コンソールの Realm SettingsKeys タブにあります。

SSO_BEARER_ONLY

True に設定すると、OpenID Connect クライアントは bearer-only として登録されます。

SSO_ENABLE_CORS

True に設定すると、Red Hat Single Sign-On アダプターは、Cross-Origin Resource Sharing (CORS) を有効にします。

Red Hat Single Sign-On クライアントが SAML プロトコルを使用する場合は、以下の追加変数を設定する必要があります。

変数説明

SSO_SAML_KEYSTORE_SECRET

SAML キーストアへのアクセスに使用するシークレット。デフォルトは sso-app-secret です。

SSO_SAML_KEYSTORE

SAML キーストアシークレットのキーストアファイル名。デフォルトは keystore.jks です。

SSO_SAML_KEYSTORE_PASSWORD

SAML のキーストアパスワード。デフォルトは mykeystorepass です。

SSO_SAML_CERTIFICATE_NAME

SAML に使用するキー/証明書のエイリアス。デフォルトは jboss です。

OpenID-Connect クライアントを使用してクライアントの自動登録方法のエンドツーエンドの例は、「ワークフローの例: OpenID-Connect クライアントを使用した Red Hat Single Sign-On での EAP アプリケーションの自動登録」を参照してください。

4.8.1.2. Red Hat Single Sign-On Client の手動登録

Red Hat Single Sign-On におけるクライアントの手動登録は、クライアントアプリケーションの ../configuration/ ディレクトリーにおけるデプロイメントファイルの存在によって判断されます。これらのファイルは、Red Hat Single Sign-On Web コンソールのクライアントアダプターからエクスポートされます。このファイルの名前は、OpenID-Connect および SAML クライアントの場合とは異なります。

OpenID-Connect

../configuration/secure-deployments

SAML

../configuration/secure-saml-deployments

これらのファイルは、アプリケーションのデプロイ時に standalone-openshift.xml の Red Hat Single Sign-On アダプター構成セクションにコピーされます。

Red Hat Single Sign-On アダプター設定をクライアントアプリケーションに渡す方法は 2 つあります。

  • デプロイメントファイルを変更して Red Hat Single Sign-On アダプター設定が含まれるように修正し、デプロイメント時に standalone-openshift.xml ファイルに含まれるようにします。
  • クライアントアプリケーションの ../WEB-INF ディレクトリーに OpenID-Connect の keycloak.json ファイル、または SAML keycloak-saml.xml ファイルを手動で追加します。

SAML クライアントを使用した手動の Red Hat Single Sign-On クライアント登録方法のエンドツーエンドの例は、「ワークフローのサンプル: SAML クライアントを使用して、Red Hat Single Sign-On 認証を使用するアプリケーションを手動で設定」を参照してください。