42 Jakarta Authenticationセキュリティの構成

Jakarta Authentication仕様(旧称JASPIC)は、サービス・プロバイダ・インタフェース(SPI)を定義します。Jakarta Authentication SPIは、サーバーのWebアプリケーション・メッセージ処理に統合できるメッセージ認証メカニズムを実装する、認証プロバイダによって使用されます。Oracle WebLogic ServerでJakarta Authenticationセキュリティを構成する方法を学習します。

Jakarta Authentication仕様(https://jakarta.ee/specifications/authentication/)を参照してください。

この章の内容は次のとおりです。

この項では、『Oracle WebLogic Serverセキュリティの理解』Jakarta Authenticationのセキュリティに関する項に示されているJakarta Authenticationの基本的な概要を理解していることを前提とします。

Jakarta AuthenticationメカニズムによるWebLogic Serverのデフォルトのオーバーライド

Webアプリケーションの認証構成プロバイダを構成すると、そのWebアプリケーションでは、これがWebLogic Server認証メカニズムのかわりに使用されます。Jakarta Authenticationの認証プロバイダは、ユーザーの資格証明を認証し、サブジェクトを返します。

したがって、認証構成プロバイダを指定する際は、これが独自のセキュリティ認証のニーズを満たすように注意する必要があります。

Jakarta Authenticationを構成するための前提条件

独自のまたはサード・パーティのサーバー認証モジュール(SAM)や認証構成プロバイダをWebLogic Serverで使用できるようにする方法を含め、使用する環境でJakarta Authenticationを構成するためには、一定の前提条件があります。

Jakarta Authenticationプログラミング・モデルについては、Jakarta Authentication仕様(https://jakarta.ee/specifications/authentication/)で説明されています。

SAM実装のサンプルについては、GlassFish Server Open Source Editionアプリケーション開発ガイドサーブレット・コンテナへの認証メカニズムの追加に関する項を参照してください。GlassFish Serverの観点から記載されていますが、SAMを記述する際のヒントおよびSAMサンプル自体は有益です。

この項には次のトピックが含まれます:

サーバー認証モジュールがクラスパス内に存在する必要がある

WebLogic Server認証構成プロバイダの構成を計画している場合、WebLogic Serverインスタンスの起動に使用する起動スクリプトまたはコマンドラインから、SAMのjarをシステム・クラスパスに追加する必要があります。これを行わない場合、WebLogic Serverは適切なクラスを見つけることができません。

カスタムの認証構成プロバイダがクラスパス内に存在する必要がある

カスタムの認証構成プロバイダの構成を計画している場合、WebLogic Serverインスタンスの起動に使用する起動スクリプトまたはコマンドラインから、カスタムの認証構成プロバイダのjarをシステム・クラスパスに追加する必要があります。これを行わない場合、WebLogic Serverは適切なクラスを見つけることができません。

構成データの場所

WebLogic Scripting Tool (WLST)を使用して、Jakarta Authenticationおよび認証構成プロバイダを構成できます。Jakarta Authenticationおよび認証構成プロバイダを構成すると、ドメイン全体の認証構成プロバイダの構成データは、ドメインのconfig.xmlファイルの<jaspic>要素に格納されます。

たとえば:

<jaspic>
      <auth-config-provider xsi:type="wls-auth-config-providerType">
        <name>WLSAuthConfigProvider-0</name>
      </auth-config-provider>
    </jaspic>

デプロイされたWebアプリケーションの認証構成プロバイダを構成すると、WLSTは、そのWebアプリケーションのデプロイメント・プラン(plan.xml)を、アプリケーション固有の認証構成プロバイダ構成で更新します。たとえば:

<variable>
      <name>JASPICProvider_AuthConfigProviderName_13210476440805</name>
      <value>WLSAuthConfigProvider-0</value>
</variable>
:
<variable-assignment>
   <name>JASPICProvider_AuthConfigProviderName_13210476440805</name>
   <xpath>/weblogic-web-app/jaspic-provider/auth-config-provider-name</xpath>
</variable-assignment>

アプリケーションでデプロイメント・プランを使用しない場合は、かわりにjaspic-providerデプロイメント記述子要素をweblogic.xmlに追加することができます。

jaspic-providerは、認証時に使用するために登録するauthConfigProviderを指定します。たとえば、<wls:jaspic-provider>my-acp</wls:jlaspic-provider>とします。

ドメインに対するJakarta Authenticationの構成

WebLogicリモート・コンソールおよびWLSTを使用して、ドメインに対してJakarta Authentication(旧称JASPIC)を構成できます。

デフォルトでは、ドメインに対してJakarta Authenticationが有効になっています。

ドメインに対してJakarta Authenticationを無効にすると、その構成に関係なく、そのドメイン内のすべてのWebアプリケーションでJakarta Authenticationが無効になります。

ドメインに対してJakarta Authenticationを構成するには:

  1. WebLogicリモート・コンソールで、「ツリーの編集」を開き、「環境」「ドメイン」の順に移動します。
  2. 「セキュリティ」タブで、「拡張フィールドの表示」をクリックします。
  3. 「JASPIC有効」オプションをオンにします。
  4. 「保存」をクリックし、変更をコミットします。
  5. WLSTを使用して、認証構成プロバイダを構成します。「WLSTを使用したJakarta Authenticationの構成」を参照してください。

ドメインのJakarta Authenticationプロパティを構成した後、特定のWebアプリケーションに適用する認証構成プロバイダを指定できます。Oracle WebLogic Remote Consoleオンライン・ヘルプJASPICのためのWebアプリケーションの構成に関する項を参照してください。

WLSTを使用したJakarta Authenticationの構成

WLSTを使用してドメインに対してJakarta Authenticationを構成し、WebLogic Server認証構成プロバイダまたはカスタム認証構成プロバイダの作成、すべてのWebLogic Serverおよびカスタム認証構成プロバイダのリスト、ドメインに対するJakarta Authenticationの有効化と無効化などのタスクを実行できます。

WLSTの使用については、『WebLogic Scripting Toolの理解』を参照してください。

この項では、WLSTを使用して次のMBeanを構成する必要があります:

追加のMBean情報については、Oracle WebLogic Server MBeanリファレンスを参照してください。

WLS認証構成プロバイダの作成

例42-1では、WLS認証構成プロバイダを作成し、SAMのクラス名を設定して、構成プロパティを設定します。

このサンプルを実行したら、WebLogic Serverを再起動します。

例42-1 WLS認証構成プロバイダの作成

connect('','','t3://host:port')
Please enter your username :
Please enter your password :
...
edit()
startEdit()
cd('SecurityConfiguration')
cd('mydomain')
jaspic = cmo.getJASPIC()
wacp = jaspic.createWLSAuthConfigProvider('wacp')
am = wacp.getAuthModule()
am.setClassName('com.my.auth.module.Classname')
props = Properties()
props.setProperty('property', 'value')
am.setProperties(props)
save()
activate()

カスタムの認証構成プロバイダの作成

例42-2では、カスタムの認証構成プロバイダを作成し、この認証構成プロバイダのクラス名を設定して、構成プロパティを設定します。

このサンプルを実行したら、WebLogic Serverを再起動します。

例42-2 カスタムの認証構成プロバイダの作成

connect('','','t3://host:port')
Please enter your username :
Please enter your password :
...
edit()
startEdit()
cd('SecurityConfiguration')
cd('mydomain')
jaspic = cmo.getJASPIC()
acp = jaspic.createCustomAuthConfigProvider('cacp')
acp.setClassName('com.my.acp.Classname')
props = Properties()
props.setProperty('property', 'value')
acp.setProperties(props)
save()
activate()

すべてのWLSおよびカスタム認証構成プロバイダのリスト

例42-3は、ドメインのすべての認証構成プロバイダをリストする方法を示しています。

例42-3 すべての認証構成プロバイダのリスト

connect('','','t3://host:port')
Please enter your username :
Please enter your password :
...
edit()
startEdit()
cd('SecurityConfiguration')
cd('mydomain')
jaspic = cmo.getJASPIC()
jaspic.getAuthConfigProviders()

ドメインに対するJakarta Authenticationの有効化

例42-4は、ドメインに対してJakarta Authenticationを有効にする方法を示しています。

このサンプルを実行したら、WebLogic Serverを再起動します。

例42-4 ドメインに対するJakarta Authenticationの有効化

connect('','','t3://host:port')
Please enter your username :
Please enter your password :
...
edit()
startEdit()
cd('SecurityConfiguration')
cd('mydomain')
jaspic = cmo.getJASPIC()
jaspic.setEnabled(false)
save()
activate()

ドメインに対するJakarta Authenticationの無効化

例42-5は、ドメインに対してJakarta Authenticationを無効にする方法を示しています。

このサンプルを実行したら、WebLogic Serverを再起動します。

例42-5 ドメインに対するJakarta Authenticationの無効化

connect('','','t3://host:port')
Please enter your username :
Please enter your password :
...
edit()
startEdit()
cd('SecurityConfiguration')
cd('mydomain')
jaspic = cmo.getJASPIC()
jaspic.setEnabled(false)
save()
activate()