ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverの保護
12cリリース1 (12.1.1)
B65913-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

14 JASPICセキュリティの構成

この章では、JASPIC (Java Authentication Service Provider)を構成する方法について説明します。

JASPIC (Java Authentication Service Provider Interface for Containers)の仕様(http://www.jcp.org/en/jsr/detail?id=196)には、サービス・プロバイダ・インタフェース(SPI)が定義されており、これにより、メッセージ認証メカニズムを実装する認証プロバイダを、サーバーのWebアプリケーション・メッセージ処理コンテナまたはランタイムに統合できます。

この節の内容は以下のとおりです。

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

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

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

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

JASPICの構成の前提条件

ここでは、使用する環境でJASPICを構成するための前提条件について説明します。サード・パーティのサーバー認証モジュール(SAM)や認証構成プロバイダをWebLogic Serverで使用できるようにする方法も含みます。

JASPICプログラミング・モジュールについては、JASPIC (Java Authentication Service Provider Interface for Containers)の仕様(http://www.jcp.org/en/jsr/detail?id=196)で説明されています。

SAMの実装サンプルについては、GlassFishサーブレット・コンテナへの認証メカニズムの追加で説明されています。GlassFish Serverの観点から記載されていますが、SAMを記述する際のヒントおよびSAMサンプル自体は有益です。

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

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

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

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

構成データの場所

JASPICおよび認証構成プロバイダの構成には、管理コンソールまたはWLST(WebLogic Scripting Tool)を使用できます。

JASPICおよび認証構成プロバイダを構成すると、ドメイン規模の認証構成プロバイダの構成データは、ドメインの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構成

デフォルトでは、JASPICはドメインに対して有効です。つまり、ドメインに対してJASPICプロパティを構成でき、認証構成プロバイダを指定した任意のWebアプリケーションに対してJASPICを使用できます。

管理コンソールでJASPICを構成するための特有の手順については、Oracle WebLogic Server管理コンソール・ヘルプのJASPICのためのWebアプリケーションの構成に関する項を参照してください。

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

ドメインに対してJASPICを構成するには、次の手順に従います。

  1. 左のペインでJASPICを構成するドメインの名前を選択します。

  2. 「セキュリティ」→JASPIC→「一般」を選択します。

    JASPICの一般ページが表示されます。

  3. このドメインに対して「JASPICの有効化」コントロールが設定されていることを確認します。

  4. 「保存」をクリックします。

  5. 「セキュリティ」→JASPIC→「認証構成プロバイダ」を選択します。

    そのドメインのJASPICの「認証構成プロバイダ」ページが表示されます。

  6. 「新規」をクリックします。

  7. ドロップダウン・リストから、「新しいWLS認証構成プロバイダの作成」または「カスタムWLS認証構成プロバイダの作成」を選択します。

  8. 「新しいWLS認証構成プロバイダの作成」ページでは、「名前」フィールドおよび「サーバー認証モジュール・クラス名」フィールドに必要な値を設定します。

    推奨名のWLSAuthConfigProvider-0を受け入れるか、別に選択した名前を使用できます。「サーバー認証モジュール・クラス名」では、この認証構成プロバイダが使用するSAMのJavaクラス名を特定します。

  9. 「新しいカスタム認証構成プロバイダの作成」ページでは、「名前」フィールドおよび「クラス名」フィールドに必要な値を設定します。

    推奨名のCustomAuthConfigProvider-0を受け入れるか、別に選択した名前を使用できます。「クラス名」は、カスタム認証構成プロバイダの実装に依存します。

  10. 「構成プロパティ」テキスト・ボックスに認証構成プロバイダの構成プロパティを入力します。

    各プロパティを個別の行に記述する必要があります。たとえばproperty1=value1のようになります。

  11. 「終了」をクリックします。

  12. WebLogic Serverを再起動します。

認証構成プロバイダの表示

ドメインの認証構成プロバイダを表示するには、次の手順に従います。

  1. 左のペインで、認証構成プロバイダを表示するドメインの名前を選択します。

  2. 「セキュリティ」→JASPIC→「認証構成プロバイダ」を選択します。

    そのドメインのJASPICの「認証構成プロバイダ」ページが表示されます。

  3. 構成プロパティを表示する既存の認証構成プロバイダを選択します。

    この認証構成プロバイダの「設定」ページが表示されます。

  4. 必要に応じて、「ノート」ページをクリックし、取得するサイト固有の構成情報を入力します。

  5. 変更した場合は、「保存」をクリックします。

  6. 変更した場合は、WebLogic Serverを再起動します。

WebアプリケーションのJASPIC構成

認証構成プロバイダがある場合、どれを特定のWebアプリケーションに適用するかを指定できます。

これを行う前に、「ドメインのJASPIC構成」で説明したとおり、まず次の手順を実行する必要があります。

  1. ドメインでJASPICを有効にします。

  2. WebLogic Server認証構成プロバイダを構成します。または

  3. カスタムの認証構成プロバイダを構成します。

このWebアプリケーションのJASPICプロパティを構成するには、次の手順に従います。

  1. コンソールの左のペインで「デプロイメント」を選択します。

    現在WebLogic Serverにインストールされているデプロイメントをリストする表が右のペインに表示されます。「タイプ」列は、デプロイメントがエンタープライズ・アプリケーションか、Webアプリケーションか、EJBモジュールかを指定します。

  2. 右のペインで、構成するWebアプリケーションの名前をクリックします。

  3. 「セキュリティ」→JASPICを選択し、JASPICプロパティを表示して変更します。

    デフォルトでは、JASPICはWebアプリケーションに対して無効です。このWebアプリケーションに対してJASPICを有効にするには、ドロップダウン・リストから既存の認証構成プロバイダのいずれかを選択します。

  4. 「保存」をクリックして変更を保存します。

  5. 求められたら変更をデプロイメント・プランに保存します。

  6. Webアプリケーションを再デプロイします。

  7. WebLogic Serverを再起動します。

WLSTによるJASPICの構成

ここでは、WLST (WebLogic Scripting Tool)を使用してJASPICを構成する方法について説明します。WLSTの使用については、『Oracle WebLogic Scripting Tool』を参照してください。

ここでは、WLSTにより次のMBeanを構成する必要があります。

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

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

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

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

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

connect('weblogic', '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()

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

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

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

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

connect('weblogic', '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およびカスタム認証構成プロバイダのリスト

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

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

connect('weblogic', 'password')
edit()
startEdit()
cd('SecurityConfiguration')
cd('mydomain')
jaspic = cmo.getJASPIC()
jaspic.getAuthConfigProviders()

ドメインのJASPICの有効化

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

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

例14-4 ドメインのJASPICの有効化

connect('weblogic', 'password')
edit()
startEdit()
cd('SecurityConfiguration')
cd('mydomain')
jaspic = cmo.getJASPIC()
jaspic.setEnabled(false)
save()
activate()

ドメインのJASPICの無効化

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

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

例14-5 ドメインのJASPICの無効化

connect('weblogic', 'password')
edit()
startEdit()
cd('SecurityConfiguration')
cd('mydomain')
jaspic = cmo.getJASPIC()
jaspic.setEnabled(false)
save()
activate()