4.17. セキュリティーサーバー設定の変更
JBoss EAP 7 に移行し、Java Security Manager を有効にして実行する計画がある場合、ポリシーを定義する方法に変更があり、追加の設定変更が必要になる可能性があります。また、JBoss EAP 7 ではカスタムセキュリティーマネージャーはサポートされないため注意してください。
Java Security Manager のサーバー設定の変更に関する詳細は、JBoss EAP『How to Configure Server Security』の「Considerations Moving from Previous Versions」を参照してください。
4.17.1. JBoss EAP 7.0 と JBoss EAP 7.1 間のレガシーセキュリティー動作の変更
4.17.1.1. 到達不可能な LDAP レルムの HTTP ステータスの変更
JBoss EAP 7.0 では、サーバーが到達できる LDAP レルムがない場合は security
サブシステムが HTTP ステータスコード「401 Unauthorized」を返しました。
JBoss EAP 7.1 以上のレガシー security
サブシステムは、予期せぬ状況が発生したためにサーバーがリクエストを処理できなかったことをより正確に示す HTTP ステータスコード「500 Internal Error」を返します。
4.17.1.2. LDAP セキュリティーレルムの有効化による DN のロールの解析
JBoss EAP 7.0 では、DN からのロールを解析するために org.jboss.as.domain.management.security.parseGroupNameFromLdapDN
システムプロパティーを使用して LDAP セキュリティーを有効にしました。このプロパティーが true
に設定されると、ロールは DN から解析されました。それ以外の場合は、ロールの検索に通常の LDAP 検索が使用されました。
JBoss EAP 7.1 以上では、このシステムプロパティーは非推奨になりました。このオプションを設定するには、以下の管理 CLI コマンドを使用して、コアサービスパスで新規導入された parse-group-name-from-dn
属性を true
に設定します。
/core-service=management/security-realm=REALM_NAME/authorization=ldap/group-search=principal-to-group:add(parse-group-name-from-dn=true)
4.17.1.3. JBoss EAP SSL 証明書の LDAP サーバーへの送信に関する変更
JBoss EAP 7.0 では、ldapSSL
セキュリティーレルムを使用するよう管理インターフェースが設定されていると、サーバーと LDAP 間の相互認証に失敗し、管理インターフェースの認証に失敗することがあります。これは、それぞれ異なるスレッドによって 2 つの LDAP 接続が確立され、これらの接続が SSL セッションを共有しないためです。
JBoss EAP 7.1 の LDAP outbound-connection
には、新しいブール値 always-send-client-cert
が導入されました。このオプションを使用すると、アウトバウンド LDAP 接続の設定によって、常にクライアント証明書が必要であると設定された LDAP サーバーをサポートすることができます。
LDAP 認証は 2 つの手順で行われます。
- アカウントを検索します。
- クレデンシャルを検証します。
デフォルトでは、always-send-client-cert
属性は false
に設定されるため、クライアント SSL 証明書は最初のアカウント検索リクエストとのみ送信されます。この属性が true
に設定されると、JBoss EAP LDAP クライアントは検索および検証リクエストの両方とともにクライアント証明書を LDAP サーバーに送信します。
以下の管理 CLI コマンドを使用してこの属性を true
に設定できます。
/core-service=management/ldap-connection=my-ldap-connection:write-attribute(name=always-send-client-cert,value=true)
これにより、サーバー設定ファイルに以下の LDAP アウトバウンド接続が追加されます。
<management> .... <outbound-connections> <ldap name="my-ldap-connection" url="ldap://127.0.0.1:389" search-dn="cn=search,dc=myCompany,dc=com" search-credential="myPass" always-send-client-cert="true"/> </outbound-connections> .... </management>
4.17.2. FIPS モードの変更
FIPS モードで実行している場合、JBoss EAP 7.0 のデフォルト動作が JBoss EAP 7.1 では変更になったことに注意してください。
レガシーセキュリティーレルムを使用している場合、JBoss EAP 7.1 以上では開発の目的で自己署名証明書が自動的に生成されます。この機能は JBoss EAP 7.0 にはなく、デフォルトで有効になっています。そのため、FIPS モードで実行している場合、サーバーを設定して自己署名証明書の自動作成を無効にする必要があります。無効にしないと、サーバーの起動時に以下のエラーが発生することがあります。
ERROR [org.xnio.listener] (default I/O-6) XNIO001007: A channel event listener threw an exception: java.lang.RuntimeException: WFLYDM0114: Failed to lazily initialize SSL context ... Caused by: java.lang.RuntimeException: WFLYDM0112: Failed to generate self signed certificate ... Caused by: java.security.KeyStoreException: Cannot get key bytes, not PKCS#8 encoded
自己署名証明書の自動作成に関する詳細は、JBoss EAP『How to Configure Server Security』の「Automatic Self-signed Certificate Creation for Applications」を参照してください。