web-dev-qa-db-ja.com

weblogicサーバーでenforce-valid-basic-auth-credentialsをfalseに設定するとどうなりますか

私のweblogicサーバーには、基本認証(web.xmlおよびweblogic.xml)が有効になっているアプリケーションがあります。現在、Spring-BootアプリケーションをTomcatからweblogicに移植しています。ここでは、基本認証もアプリケーション層で行われました。したがって、これを移植すると機能せず、enforce-valid-basic-auth-credentialsfalseに設定する必要があります。同じドメインで実行される(仮想ホストで実行される)最初のアプリケーションをリファクタリングする必要があると予想しましたが、このアプリケーションでは認証がまだ機能しているようです。では、本番サーバーでこのオプションを設定するとどうなりますか?

11
hudi

どこに影響しますか?

enforce-valid-basic-auth-credentialsフラグはドメイン全体に影響します。したがって、両方のプロジェクトで機能します。

Enforce-valid-basic-auth-credentialsフラグはデフォルトでtrueであり、WebLogicServer認証が実行されます。認証が失敗した場合、要求は拒否されます。したがって、WebLogic Serverは、ユーザーとパスワードに関する知識を持っている必要があります。

別の認証メカニズムに依存している場合は、デフォルトの動作を変更することをお勧めします。たとえば、バックエンドWebサービスを使用してクライアントを認証し、WebLogicServerがユーザーについて知る必要がない場合があります。デフォルトの認証強制を有効にすると、Webサービスは独自の認証を実行できますが、これはWebLogicServer認証が最初に成功した場合に限ります。

enforce-valid-basic-auth-credentialsフラグを明示的にfalseに設定すると、WebLogic Serverは、ターゲットリソースに対してアクセス制御が有効になっていないHTTPBASIC認証クライアント要求に対して認証を実行しません。

リソースリンク:

  1. セキュリティで保護されていないリソースを使用したBASIC認証について
  2. WebLogicバイパス基本認証

オラクルは、enforce-valid-basic-auth-credentialsについて何と言っていますか?

Oracle WebLogicServer認証はデフォルトで有効になっています。ただし、この構成では、Oracle WebLogicServerがアプリケーション管理認証を使用できなくなります。 Enforce-valid-basic-auth-credentialsパラメータをfalseに設定して、Oracle WebLogicServer認証を無効にする必要があります。

手順

Oracle WebLogic Server認証を無効にするには:

  1. テキスト・エディターで、IBM CMIS for Content ManagerOnDemandをデプロイしたドメインのconfig.xmlファイルを開きます。 config.xmlファイルは、Oracle/Middleware/user_projects/domains/domain_name/configディレクトリにあります。
  2. <security-configuration>要素を見つけます。
  3. 要素の最後に次の引数を追加します。

    <enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth -credentials>

  4. ドメイン内のすべてのサーバーを起動または再起動します。

リソースリンク:

  1. IBM CMIS for Content ManagerOnDemandのOracleWebLogic Server認証を無効にする

更新#1:

なぜそれは偽りにされるのですか?

システムが無効な基本認証資格情報を持つ要求に安全でないリソースへのアクセスを許可する必要があるかどうか。 (Interface = weblogic.management.configuration.SecurityConfigurationMBean Attribute = getEnforceValidBasicAuthCredentials)

実際、ここでは2つのことを行う必要があります。

  1. 時にはそれを誤りにするのに十分ではありません。
  2. したがって、WLSTを介してフラグを追加する必要があります。
connect('weblogicUser','weblogicPassword','t3://localhost:7001')
edit()
startEdit()
cd('SecurityConfiguration/Your_Domain')
set('EnforceValidBasicAuthCredentials','false')
save()
activate()

N.B :(「cd」コマンドでweblogicUser、weblogicPassword、weblogic url、およびドメインを使用して編集することを忘れないでください...)。これを正常に行うと、構成ファイルに影響します。

解決:

サーバーを再起動した後、config.xmlファイルを調べたところ、別のタグが追加されています。さて、config.xmlファイルは次のようになります:

.........
    <enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>
    <use-kss-for-demo>true</use-kss-for-demo>
</security-configuration>
............

ただし、このuse-kss-for-demoタグは、weblogicの構成によって異なる場合があります。したがって、 Val Bonn は、WSLTの方法を使用してこのフラグを更新することを強くお勧めします。

リソースリンク:

https://stackoverflow.com/a/39619242/2293534


更新#2:

それで、あなたはどのような影響があるのか​​知りたいですか?

デフォルトでは、WebLogic Serverは認証ヘッダーを確認します。コードとアプリが匿名アクセスを許可するように設定されている場合でも、HTTP認証ヘッダーがあると、WebLogicは要求の処理に失敗し、ブラウザのログインダイアログを表示します。

enter image description here

パブリッシャーWebサービスはデフォルトで認証ヘッダーを使用するため、パブリッシャー認証ヘッダーはポートレットコードに送信されます。幸い、これに対する修正は非常に簡単で、enforce-valid-basic-auth-credentialsをfalseに設定するように文書化されています。

リソースリンク:

  1. http://blog.integryst.com/webcenter-interaction/2010/03/24/setting-config-xml-for-weblogic-in-oracles-jdeveloper/
3
SkyWalker