この章では、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の基本的な概要を把握していることを前提とします。
Webアプリケーションの認証構成プロバイダを構成すると、そのWebアプリケーションでは、これがWLS認証メカニズムのかわりに使用されます。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は適切なクラスを見つけることができません。
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プロパティを構成でき、認証構成プロバイダを指定した任意のWebアプリケーションに対してJASPICを使用できます。
管理コンソールでJASPICを構成するための具体的な手順については、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJASPICのためのWebアプリケーションの構成に関する項を参照してください。
ドメインに対してJASPICを無効にすると、そのドメイン内のすべてのWebアプリケーションに対し、それらの構成に関係なく、JASPICは無効になります。
ドメインに対してJASPICを構成するには、次の手順に従います。
左のペインでJASPICを構成するドメインの名前を選択します。
「セキュリティ」→JASPIC→「一般」を選択します。
JASPICの一般ページが表示されます。
このドメインに対して「JASPICの有効化」コントロールが設定されていることを確認します。
「保存」をクリックします。
「セキュリティ」→JASPIC→「認証構成プロバイダ」を選択します。
そのドメインのJASPICの「認証構成プロバイダ」ページが表示されます。
「新規」をクリックします。
ドロップダウン・リストから、「新しいWLS認証構成プロバイダの作成」または「カスタムWLS認証構成プロバイダの作成」を選択します。
「新しいWLS認証構成プロバイダの作成」ページでは、「名前」フィールドおよび「サーバー認証モジュール・クラス名」フィールドに必要な値を設定します。
推奨名のWLSAuthConfigProvider-0を受け入れるか、別に選択した名前を使用できます。「サーバー認証モジュール・クラス名」では、この認証構成プロバイダが使用するSAMのJavaクラス名を特定します。
「新しいカスタム認証構成プロバイダの作成」ページでは、「名前」フィールドおよび「クラス名」フィールドに必要な値を設定します。
推奨名のCustomAuthConfigProvider-0を受け入れるか、別に選択した名前を使用できます。「クラス名」は、カスタム認証構成プロバイダの実装に依存します。
「構成プロパティ」テキスト・ボックスに認証構成プロバイダの構成プロパティを入力します。
各プロパティを個別の行に記述する必要があります。たとえばproperty1=value1のようになります。
「終了」をクリックします。
WebLogic Serverを再起動します。
ドメインの認証構成プロバイダを表示するには、次の手順に従います。
左のペインで、認証構成プロバイダを表示するドメインの名前を選択します。
「セキュリティ」→JASPIC→「認証構成プロバイダ」を選択します。
そのドメインのJASPICの「認証構成プロバイダ」ページが表示されます。
構成プロパティを表示する既存の認証構成プロバイダを選択します。
この認証構成プロバイダの「設定」ページが表示されます。
必要に応じて、「ノート」ページをクリックし、取得するサイト固有の構成情報を入力します。
変更した場合は、「保存」をクリックします。
変更した場合は、WebLogic Serverを再起動します。
認証構成プロバイダがある場合、どれを特定のWebアプリケーションに適用するかを指定できます。
これを行う前に、「ドメインのJASPIC構成」で説明したとおり、まず次の手順を実行する必要があります。
ドメインでJASPICを有効にします。
WebLogic Server認証構成プロバイダを構成します。または
カスタムの認証構成プロバイダを構成します。
このWebアプリケーションのJASPICプロパティを構成するには、次の手順に従います。
コンソールの左のペインで「デプロイメント」を選択します。
現在WebLogic Serverにインストールされているデプロイメントをリストする表が右のペインに表示されます。「タイプ」列は、デプロイメントがエンタープライズ・アプリケーションか、Webアプリケーションか、EJBモジュールかを指定します。
右のペインで、構成するWebアプリケーションの名前をクリックします。
「セキュリティ」→JASPICを選択し、JASPICプロパティを表示して変更します。
デフォルトでは、JASPICはWebアプリケーションに対して無効です。このWebアプリケーションに対してJASPICを有効にするには、ドロップダウン・リストから既存の認証構成プロバイダのいずれかを選択します。
「保存」をクリックして変更を保存します。
求められたら変更をデプロイメント・プランに保存します。
Webアプリケーションを再デプロイします。
WebLogic Serverを再起動します。
ここでは、WLST (WebLogic Scripting Tool)を使用してJASPICを構成する方法について説明します。WLSTの使用方法の詳細は、『WebLogic Scripting Toolの理解』を参照してください。
ここでは、WLSTにより次のMBeanを構成する必要があります。
追加のMBean情報については、Oracle WebLogic Server MBeanリファレンスを参照してください。
例15-1では、WLS認証構成プロバイダを作成し、SAMのクラス名を設定して、構成プロパティを設定します。
このサンプルを実行したら、WebLogic Serverを再起動します。
例15-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()
例15-2では、カスタムの認証構成プロバイダを作成し、この認証構成プロバイダのクラス名を設定して、構成プロパティを設定します。
このサンプルを実行したら、WebLogic Serverを再起動します。
例15-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()