15.2. Jakarta 承認セキュリティーの設定


Jakarta Authorization を設定するには、適切なモジュールでセキュリティードメインを設定し、必須のパラメーターが含まれるよう jboss-web.xml を編集する必要があります。

Jakarta Authentication のセキュリティードメインへの追加

Jakarta Authorization サポートをセキュリティードメインに追加するには、必要な フラグセットを使用して、Jakarta Authorization 承認ポリシーをセキュリティードメインの承認スタックに追加します。以下は、Jakarta Authorization がサポートされるセキュリティードメインの例です。ただし、セキュリティードメインは直接 XML を変更せずに、管理コンソールまたは管理 CLI で設定することが推奨されます。

例: Jakarta Authentication のあるセキュリティードメイン

<security-domain name="jacc" cache-type="default">
    <authentication>
        <login-module code="UsersRoles" flag="required">
        </login-module>
    </authentication>
    <authorization>
        <policy-module code="JACC" flag="required"/>
    </authorization>
</security-domain>
Copy to Clipboard

Jakarta Authentication を使用するように Web アプリケーションを設定

jboss-web.xml は デプロイメントの WEB-INF/ ディレクトリーに存在し、Web コンテナーに対する追加の JBoss 固有の設定を格納し、上書きします。Jakarta Authorization が有効になっているセキュリティードメインを使用するには、<security-domain> 要素が含まれるようにし、さらに <use-jboss-authorization> 要素を true に設定する必要があります。以下の XML は、上記の Jakarta Authorization セキュリティードメインを使用するように設定されています。

例: Jakarta Authentication セキュリティードメインの使用

<jboss-web>
    <security-domain>jacc</security-domain>
    <use-jboss-authorization>true</use-jboss-authorization>
</jboss-web>
Copy to Clipboard

Jakarta Authentication を使用するように akarta Enterprise Beans アプリケーションを設定

セキュリティードメインと Jakarta Authorization を使用するよう Jakarta Enterprise Beans を設定する方法は Web アプリケーションとは異なります。Jakarta Enterprise Beans の場合、ejb-jar.xml 記述子にてメソッドまたはメソッドのグループ上でメソッドパーミッションを宣言できます。<ejb-jar> 要素内では、すべての子 <method-permission> 要素に、ロールの Jakarta Authorization についての情報が含まれます。詳細は、設定例を参照してください。EJBMethodPermission クラスは Jakarta EE API の一部であり、Class EJBMethodPermission に記載されています。

例: Jakarta Enterprise Beans の Jakarta Authentication 方法のパーミッション

<ejb-jar>
  <assembly-descriptor>
    <method-permission>
      <description>The employee and temp-employee roles can access any method of the EmployeeService bean </description>
      <role-name>employee</role-name>
      <role-name>temp-employee</role-name>
      <method>
        <ejb-name>EmployeeService</ejb-name>
        <method-name>*</method-name>
      </method>
    </method-permission>
  </assembly-descriptor>
</ejb-jar>
Copy to Clipboard

Web アプリケーションと同様にセキュリティードメインを使用して Jakarta Enterprise Beans の認証および承認メカニズムを指定することも可能です。セキュリティードメインは <security> 子要素の jboss-ejb3.xml 記述子に宣言されます。セキュリティードメインの他に、Enterprise Beans が実行されるプリンシパルを変更する <run-as-principal> を指定することもできます。

例: Jakarta Enterprise Beans でのセキュリティードメイン宣言

<ejb-jar>
    <assembly-descriptor>
        <security>
        <ejb-name>*</ejb-name>
        <security-domain>myDomain</security-domain>
        <run-as-principal>myPrincipal</run-as-principal>
        </security>
    </assembly-descriptor>
</ejb-jar>
Copy to Clipboard

elytron サブシステムを使用した Jakarta Authorization の有効化

レガシーセキュリティーサブシステムでの Jakarta Authentication の無効化

デフォルトでは、アプリケーションサーバーはレガシー security サブシステムを使用して、ポリシープロバイダーおよびファクトリーの Jakarta Authorization を設定します。デフォルト設定は PicketBox から実装へマップします。

Elytron を使用して Jakarta Authorization 設定、またはアプリケーションサーバーにインストールするその他のポリシーを管理するには、最初にレガシー security サブシステムで Jakarta Authorization を無効にする必要があります。これには、以下の管理 CLI コマンドを使用できます。

/subsystem=security:write-attribute(name=initialize-jacc, value=false)
Copy to Clipboard

この作業を怠ると、次のエラーメッセージがサーバーログに出力されます: MSC000004: Failure during stop of service org.wildfly.security.policy: java.lang.StackOverflowError

Jakarta Authentication ポリシープロバイダーの定義

elytron サブシステムは、Jakarta Authorization 仕様をベースとした組み込みポリシープロバイダーを提供します。ポリシープロバイダーを作成するには、以下の管理 CLI コマンドを実行します。

/subsystem=elytron/policy=jacc:add(jacc-policy={})

reload
Copy to Clipboard

Web デプロイメントへの Jakarta Authentication の有効化

Jakarta Authorization ポリシープロバイダーを定義したら、以下のコマンドを実行して、Web デプロイメントの Jakarta Authorization を有効にできます。

/subsystem=undertow/application-security-domain=other:add(security-domain=ApplicationDomain,enable-jacc=true)
Copy to Clipboard

上記のコマンドは、jboss-web.xml ファイルに指定がない場合に、アプリケーションのデフォルトのセキュリティードメインを定義します。すでに application-security-domain が定義されている場合、以下のコマンドを実行すると JACC を有効にすることができます。

/subsystem=undertow/application-security-domain=my-security-domain:write-attribute(name=enable-jacc,value=true)
Copy to Clipboard

Jakarta Enterprise Beans デプロイメントへの Jakarta Authentication の有効化

Jakarta Authorization ポリシープロバイダーを定義したら、以下のコマンドを実行して、Jakarta Enterprise Beans デプロイメントの Jakarta Authorization を有効にできます。

/subsystem=ejb3/application-security-domain=other:add(security-domain=ApplicationDomain,enable-jacc=true)
Copy to Clipboard

上記のコマンドは、Jakarta Enterprise Beans のデフォルトのセキュリティードメインを定義します。application-security-domain がすでに定義されている場合、以下のようにコマンドを実行して Jakarta Authorization を有効にする必要があります。

/subsystem=ejb3/application-security-domain=my-security-domain:write-attribute(name=enable-jacc,value=true)
Copy to Clipboard

カスタム Elytron ポリシープロバイダーの作成

パーミッションをチェックするために一部の外部承認サービスと統合したい場合など、カスタム java.security.Policy が必要なときにカスタムのポリシープロバイダーが使用されます。カスタムポリシープロバイダーを作成するには、java.security.Policy を実装し、実装でカスタムモジュールを作成およびプラグし、elytron サブシステムのモジュールから実装を使用します。

/subsystem=elytron/policy=policy-provider-a:add(custom-policy={class-name=MyPolicyProviderA, module=x.y.z})
Copy to Clipboard

詳細は ポリシープロバイダープロパティー を参照してください。

注記

ほとんどの場合で、Jakarta Authorization ポリシープロバイダーを Jakarta EE 対応のアプリケーションサーバーの一部として想定どおりに使用できます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat