第9章 JBoss EAP での OpenID Connect


JBoss EAP ネイティブ OpenID Connect (OIDC) クライアントを使用して、外部 OpenID プロバイダーを介してアプリケーションをセキュリティー保護します。OIDC は、JBoss EAP などのクライアントが OpenID プロバイダー認証に基づいてユーザーの ID を検証できるようにする ID レイヤーです。たとえば、OpenID プロバイダーとして Red Hat Single Sign-On を使用して、JBoss EAP アプリケーションをセキュリティー保護できます。

9.1. JBoss EAP での OpenID Connect 設定

OpenID プロバイダーを使用してアプリケーションを保護する場合、セキュリティードメインリソースをローカルで設定する必要はありません。elytron-oidc-client サブシステムは、OpenID プロバイダーと接続するための JBoss EAP のネイティブ OpenID Connect (OIDC) クライアントを提供します。JBoss EAP は、OpenID プロバイダーの設定に基づいて、アプリケーションの仮想セキュリティードメインを自動的に作成します。

重要

Red Hat Single Sign-On で OIDC クライアントを使用することを推奨します。JSON Web トークン (JWT) であるアクセストークンを使用するように設定でき、RS256、RS384、RS512、ES256、ES384、または ES512 署名アルゴリズムを使用するように設定できる場合は、他の OpenID プロバイダーを使用できます。

OIDC の使用を有効にするには、elytron-oidc-client サブシステムまたはアプリケーション自体を設定できます。JBoss EAP は、次のように OIDC 認証をアクティブにします。

  • アプリケーションを JBoss EAP にデプロイすると、elytron-oidc-client サブシステムがデプロイメントをスキャンして、OIDC 認証メカニズムが必要かどうかを検出します。
  • サブシステムが elytron-oidc-client サブシステムまたはアプリケーションデプロイメント記述子のいずれかでデプロイメントの OIDC 設定を検出した場合、JBoss EAP はアプリケーションの OIDC 認証メカニズムを有効にします。
  • サブシステムが両方の場所で OIDC 設定を検出した場合、elytron-oidc-client サブシステム secure-deployment 属性の設定が、アプリケーションデプロイメント記述子の設定よりも優先されます。
注記

Red Hat Single Sign-On でアプリケーションをセキュリティー保護するための keycloak-client-oidc レイヤーは、JBoss EAPXP4.0.0 では非推奨になっています。代わりに、elytron-oidc-client サブシステムによって提供されるネイティブ OIDC クライアントを使用してください。

デプロイメント設定

デプロイメント記述子を使用して OIDC でアプリケーションを保護するには、アプリケーションのデプロイメント設定を次のように更新します。

  • OIDC 設定情報を含む oidc.json というファイルを WEB-INF ディレクトリーに作成します。

    oidc.json コンテンツの例

    {
      "client-id" : "customer-portal", 
    1
    
      "provider-url" : "http://localhost:8180/auth/realms/demo", 
    2
    
      "ssl-required" : "external", 
    3
    
       "credentials" : {
          "secret" : "234234-234234-234234" 
    4
    
       }
    }

    1
    OpenID プロバイダーで OIDC クライアントを識別するための名前。
    2
    OpenID プロバイダーの URL。
    3
    外部リクエストには HTTPS が必要です。
    4
    OpenID プロバイダーに登録されたクライアントシークレット。
  • アプリケーションデプロイメント記述子 web.xml ファイルで auth-method プロパティーを OIDC に設定します。

デプロイメント記述子の更新例

<login-config>
    <auth-method>OIDC</auth-method>
</login-config>

サブシステムの設定

次の方法で elytron-oidc-client サブシステムを設定することで、OIDC を使用してアプリケーションを保護できます。

  • アプリケーションごとに同じ OpenID プロバイダーを使用する場合は、複数のデプロイメントに対して単一の設定を作成します。
  • アプリケーションごとに異なる OpenID プロバイダーを使用する場合は、デプロイメントごとに異なる設定を作成します。

単一デプロイメントの XML 設定の例:

<subsystem xmlns="urn:wildfly:elytron-oidc-client:1.0">
    <secure-deployment name="DEPLOYMENT_RUNTIME_NAME.war"> 
1

        <client-id>customer-portal</client-id> 
2

        <provider-url>http://localhost:8180/auth/realms/demo</provider-url> 
3

        <ssl-required>external</ssl-required> 
4

        <credential name="secret" secret="0aa31d98-e0aa-404c-b6e0-e771dba1e798" /> 
5

    </secure-deployment
</subsystem>
1
デプロイメントランタイム名。
2
OpenID プロバイダーで OIDC クライアントを識別するための名前。
3
OpenID プロバイダーの URL。
4
外部リクエストには HTTPS が必要です。
5
OpenID プロバイダーに登録されたクライアントシークレット。

同じ OpenID プロバイダーを使用して複数のアプリケーションを保護するには、次の例に示すように、provider を個別に設定します。

<subsystem xmlns="urn:wildfly:elytron-oidc-client:1.0">
    <provider name="${OpenID_provider_name}">
        <provider-url>http://localhost:8080/auth/realms/demo</provider-url>
        <ssl-required>external</ssl-required>
    </provider>
    <secure-deployment name="customer-portal.war"> 
1

        <provider>${OpenID_provider_name}</provider>
        <client-id>customer-portal</client-id>
        <credential name="secret" secret="0aa31d98-e0aa-404c-b6e0-e771dba1e798" />
    </secure-deployment>
    <secure-deployment name="product-portal.war"> 
2

        <provider>${OpenID_provider_name}</provider>
        <client-id>product-portal</client-id>
        <credential name="secret" secret="0aa31d98-e0aa-404c-b6e0-e771dba1e798" />
    </secure-deployment>
</subsystem>
1
デプロイメント: customer-portal.war
2
別のデプロイメント: product-portal.war
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る