6 既存のWebLogicドメインの構成

WebLogic Scripting Tool (WLST)オンラインとオフラインの両方を使用して、既存のWebLogicドメインを更新できます。

トピック:

WLSTオンラインを使用した既存のWebLogicドメインの更新

WLSTオンラインではアクティブなWebLogicドメインと対話が行われるため、ドメインへのオンラインの変更はすべて、変更管理プロセスによって制御されます。このプロセスは、データベース・トランザクションと少し似ています。

構成の変更や変更の管理の詳細は、Oracle WebLogic Serverドメインの構成の理解構成の変更管理のプロセスを参照してください。

表6-1に、WLSTオンラインを使用した既存のWebLogicドメインの更新ステップを示します。

表6-1 既存のWebLogicドメインの更新ステップ(オンライン)

次を行うには... このコマンドを使用します... 『WebLogic Server WLSTコマンド・リファレンス』のこの項を参照してください。

編集MBean階層にアクセスする

edit()

このコマンドによって、編集可能なDomainMBeanである編集MBean階層のルートにWLSTが配置されます。

「edit」

現在の構成でロックを取得する

構成の変更が進行中であることを示すため、WLSTコマンド・プロンプトの最後に感嘆符(!)が表示されます。

startEdit([waitTimeInMillis],
[timeoutInMillis], [exclusive])

「startEdit」

WebLogicドメインを修正する

参照コマンドおよびオンライン編集コマンド

「参照コマンド」

「編集コマンド」

編集を検証する(オプション)

validate()

「validate」

変更を保存する

save()

「save」

WebLogicドメイン内のすべてのサーバー上で実行中の構成MBeanに変更を配布する

activate([timeout], [block])

「activate」

構成でのロックを解放する

stopEdit([defaultAnswer])

「stopEdit」

MBean属性に加えた変更がサーバーの再起動を必要とするかどうかを判断する(オプション)

isRestartRequired([attributeName])

「isRestartRequired」

例6-1のWLSTオンライン・スクリプトは、WLSTを管理サーバーに接続し、管理対象サーバーを作成する編集セッションを開始してから変更を保存してアクティブ化します。さらに、別の編集セッションを開始してから起動クラスを作成し、新しく作成されたサーバーにそれをターゲット指定します。

例6-1 管理対象サーバーの作成

connect("username","password")
edit()
startEdit()
svr = cmo.createServer("managedServer")
svr.setListenPort(8001)
svr.setListenAddress("address")
save()
activate(block="true")

startEdit()
sc = cmo.createStartupClass("my-startupClass")
sc.setClassName("com.bea.foo.bar")
sc.setArguments("foo bar")

# get the server mbean to target it
tBean = getMBean("Servers/managedServer")
if tBean != None:
    print "Found our target"
    sc.addTarget(tBean)
save()
activate(block="true")
disconnect()
exit()

例6-2の対話編集セッションは、開発モードで実行する管理サーバーを本番モードおよびセキュア本番モードに変更しています。セキュア本番モードを有効にするには、ドメインは本番モードである必要があります。

例6-2 本番モードまたはセキュア本番モードへの変更

wls:/offline> connect('username','password')
wls:/mydomain/serverConfig> edit()
wls:/mydomain/edit> startEdit()
Starting an edit session ...
Started edit session, please be sure to save and activate your changes once you are done.
wls:/mydomain/edit !> cmo.setProductionModeEnabled(true)
# Optionally enable secured production mode
wls:/mydomain/edit !> cd('SecurityConfiguration/mydomain/SecureMode/mydomain')
cmo.setSecureModeEnabled(true)
wls:/mydomain/edit !> activate()
Activating all your changes, this may take a while ...
The edit lock associated with this edit session is released
once the activation is completed.
The following non-dynamic attribute(s) have been changed on MBeans
that require server re-start:
MBean Changed : com.bea:Name=AdminServer,Type=WebServerLog,Server=AdminServer,
WebServer=AdminServer
Attributes changed : RotateLogOnStartup
MBean Changed : com.bea:Name=AdminServer,Type=WebServerLog,Server=AdminServer,
WebServer=AdminServer
Attributes changed : RotateLogOnStartup
MBean Changed : com.bea:Name=Domain1,Type=Log
Attributes changed : RotateLogOnStartup
Activation completed
wls:/mydomain/edit> exit()

注意:

WLSTを使用して管理サーバーを開発モードから本番モードに変更する場合、Java -Xverifyオプション(使用されている場合)は、noneからallに変更されず、手動でallに変更して、すべてのクラスが検証されていることを確認する必要があります。また、これにより、既存のboot.propertiesファイルがサーバーの起動時に使用されなくなることはありません。

構成の変更の追跡

WLSTによって開始されたすべての変更について、showChangesコマンドを使用すると、WLST編集セッションの開始以降、現在の構成に対して行ったすべての変更(サーバーによって暗黙的に実行されたすべてのMBean操作を含む)を表示できます。例6-3を参照してください。

例6-3 変更の表示

connect("username","password")
wls:/mydomain/serverConfig> edit()
wls:/mydomain/edit> startEdit()
Starting an edit session ...
Started edit session, please be sure to save and activate your
changes once you are done.
wls:/mydomain/edit !> cmo.createServer('managed2')
[MBeanServerInvocationHandler]mydomain:Name=managed2,Type=Server
wls:/mydomain/edit !> cd('Servers/managed2')
wls:/mydomain/edit/Servers/managed2 !> cmo.setListenPort(7702)
wls:/mydomain/edit/Servers/managed2 !> cmo.setListenAddress("localhost")
wls:/mydomain/edit/Servers/managed2 !> showChanges()
Changes that are in memory and saved to disc but not yet activated are:

All changes that are made but not yet activated are:
 
MBean Changed : com.bea:Name=Len,Type=Domain
Operation Invoked : create
Attribute Modified : Servers
Attributes Old Value : null
Attributes New Value : managed2
Server Restart Required : false
 
 
MBean Changed : com.bea:Name=managed2,Type=Server
Operation Invoked : modify
Attribute Modified : ListenPort
Attributes Old Value : null
Attributes New Value : 7702
Server Restart Required : false

wls:/mydomain/edit/Servers/managed2 !> save()
Saving all your changes ...
Saved all your changes successfully.
wls:/mydomain/edit !> activate()
Activating all your changes, this may take a while ...
The edit lock associated with this edit session is released
once the activation is completed.
Activation completed
wls:/mydomain/edit/Servers/managed2>

例6-4のWLSTオンライン・スクリプトは、管理者としてWLSTを実行中のサーバー・インスタンスに接続し、アクティブ化タスクを取得し、そのタスクのユーザーとステータスを出力します。また、行われたすべての変更も出力します。

getActivationTask関数は、アクティブ化のリクエストに関する情報を提供し、ユーザーが現在行っている、または最近行った変更の状態が反映された、現行のWLSTセッションで最新のActivationTaskMBeanを返します。このインタフェースが提供するメソッドを呼び出すことで、進行中または完了したばかりの最新のアクティブ化タスクに関する情報が取得されます。詳細は、Oracle WebLogic Server MBeanリファレンスActivationTaskMBeanに関する項を参照してください。

例6-4 アクティブ化タスクのチェック

at = getActivationTask()
changes = at.getChanges()
newstate = at.getState()
print "The user for this Task is "+at.getUser()+ "and the state is:"
print newstate
print "The changes are:"
print changes

変更を元に戻すまたは取り消す

WLSTには、変更を元に戻す、または取り消すために、それぞれ次のコマンドが用意されています。

  • undoコマンド。保存されていない編集、またはアクティブ化されていない編集を元に戻します。

    (ディスクに保存されたものも含めて)アクティブ化されていないすべての編集を元に戻すか、または、最後のsave操作以降に行われたすべての編集を元に戻すかを指定します。WebLogic Scripting Toolコマンド・リファレンスundoを参照してください。

  • cancelEditコマンド。編集ロックを解放し、未保存の変更をすべて破棄します。WebLogic Server WLSTコマンド・リファレンスcancelEditを参照してください。

変更管理用の追加の操作と属性

前述の項で説明した標準の変更管理コマンドは、ConfigurationManagerMBeanの操作を呼び出す上で便利なコマンドです。ConfigurationManagerMBeanには、そうした操作に加え、編集セッションを記述する属性および操作があります。詳細は、Oracle WebLogic Server MBeanリファレンスConfigurationManagerMBeanを参照してください。

このMBeanにアクセスするには、WLSTのgetConfigManagerコマンドを使用します。WebLogic Server WLSTコマンド・リファレンスgetConfigManagerを参照してください。

例6-5のWLSTオンライン・スクリプトは、WLSTを管理者としてサーバー・インスタンスに接続し、変更を加えている現在の編集者が管理者ではないかどうかをチェックして、構成の編集を取り消します。また、このスクリプトはすべての完了したアクティブ化タスクもパージします。このスクリプトを使用すると変更の編集を再開できますが、他の編集者が加えた変更が必要かどうかを検証する必要があります。

例6-5 構成マネージャの使用

connect('adminusername','adminpassword')
user = cmgr.getCurrentEditor()
if user != "weblogic":
    cmgr.undo()
    cmgr.cancelEdit()
cmgr.purgeCompletedActivationTasks()

WLSTオフラインを使用した既存のWebLogicドメインの更新

WLSTオフラインを使用して、既存のWebLogicドメインを更新できます。

注意:

アクティブなWebLogicドメインの構成を管理する際にはWLSTオフラインを使用しないことをお薦めします。オフラインによる編集は、実行中のサーバーによって無視されるので、WLSTオンラインやWebLogic Server管理コンソールなどのJMXクライアントによって上書きされる場合があります。

次の表のコマンドは、既存ドメインの読取り、必要に応じたドメインの更新、およびオフライン・モードでのドメインのクローズに使用されます。このプロセスでは、接続ファクトリのターゲットがサブデプロイメントの場合、updateDomainコマンドを実行してドメインを再起動した後、default-targeting-enabledが接続ファクトリに対してtrueに設定されます。

WLSTオフラインを使用して既存のWebLogicドメインを更新するには、表6-2に示すステップを実行します。

表6-2 既存のWebLogicドメインを更新するステップ(オフライン)

次を行うには... このコマンドを使用します... 参照先

更新する既存のWebLogicドメインを開く

readDomain(domainDirName)

WebLogic Server WLSTコマンド・リファレンスreadDomain

現在のWebLogicドメインを拡張する(オプション)

selectTemplate(templateName)
loadTemplates()

WebLogic Server WLSTコマンド・リファレンスselectTemplateおよびloadTemplates

WebLogicドメインを修正する(オプション)

参照コマンドおよび編集コマンド

構成階層情報の参照(オフライン)

WebLogicドメインの編集(オフライン)

WebLogicドメインを保存する

updateDomain()

WebLogic Server WLSTコマンド・リファレンスupdateDomain

WebLogicドメインを閉じる

closeDomain()

WebLogic Server WLSTコマンド・リファレンスcloseDomain

セキュリティ・データの管理(WLSTオンライン)

WLSTオンラインを使用して、認証プロバイダなどのセキュリティ・データを管理できます。

WebLogicセキュリティ・サービスでは、認証プロバイダはユーザーまたはシステム・プロセスの身元を証明するソフトウェア・コンポーネントです。認証プロバイダでは、ID情報を記憶したり、トランスポートしたり、その情報が必要な場合にシステムの様々なコンポーネントで利用できるようにしたりします。

セキュリティ・レルムは、様々な種類の認証プロパティを使用して異なるユーザーおよびグループのセットを管理できます。(Oracle WebLogic Serverセキュリティ・プロバイダの開発認証プロバイダを参照してください。WLSTを使用すると、次のタイプの認証プロバイダの操作を呼び出すことができます。

  • WebLogic Serverのデフォルト認証プロバイダAuthenticatorMBean。デフォルトでは、セキュリティ・レルムはこの認証プロバイダを使用してユーザーとグループを管理します。

  • weblogic.security.spi.AuthenticationProviderと任意Authentication SSPI MBeanを拡張したカスタム認証プロバイダ。Oracle WebLogic Serverセキュリティ・プロバイダの開発SSPI MBeanクイック・リファレンスを参照してください。

以下の節では、WLSTを使用してユーザーおよびグループを管理するための基本的なタスクについて説明します。

AuthenticationProvider MBeanでサポートされるその他のタスクについては、Oracle WebLogic Server MBeanリファレンスAuthenticationProviderMBeanを参照してください。

編集階層にアクセスすべきかどうかの判断

セキュリティMBeanの構成の変更にWLSTを使用している場合、編集階層にアクセスして編集セッションを開始する必要があります。たとえば、UserLockoutManagerMBeanLockoutThreshold属性の値の変更は、編集階層内から行う必要があります。

セキュリティ・プロバイダの操作を呼び出してセキュリティ・プロバイダのデータ・ストア内のデータを追加、変更、または削除する場合、これらの操作を編集階層内から行うことはできません。かわりに、これらのコマンドは、serverConfigまたはdomainConfig階層から呼び出します。たとえば、AuthenticatorMBean MBeanのcreateUser操作は、編集階層から呼び出すことはできません。WLSTでこの制限を設けているのは、両立不能な変更が生じないようにするためです。たとえば、編集セッションにはアクティブ化されていない変更が含まれる可能性があり、このアクティブ化されていない変更ではセキュリティ機能が取り除かれ、これによってプロバイダのデータへの変更が無効になります。

ユーザーの作成

ユーザーを作成するには、UserEditorMBean.createUserメソッドを呼び出します。このメソッドは、セキュリティ・レルムのAuthenticationProvider MBeanによって拡張されます。『Oracle WebLogic Server MBeanリファレンス』UserEditorMBeancreateUserメソッドを参照してください。

このメソッドには、3つの入力パラメータが必要です。パスワードは8文字以上で、その内1つは特殊文字または数字にする必要があります。

username password user-description

このコマンドは、編集階層から呼び出すことはできませんが、serverConfigまたはdomainConfig階層からは呼び出すことができます。

次のWLSTオンライン・スクリプトは、デフォルト認証プロバイダに対してcreateUserを呼び出します。

例6-6 ユーザーの作成

from weblogic.management.security.authentication import UserEditorMBean

print "Creating a user ..."
atnr=cmo.getSecurityConfiguration().getDefaultRealm().lookupAuthentication
Provider("DefaultAuthenticator")
atnr.createUser('new_user','adminpassword','new_admin')
print "Created user successfully"

グループへのユーザーの追加

ユーザーをグループに追加するには、GroupEditorMBean.addMemberToGroupメソッドを呼び出します。このメソッドは、セキュリティ・レルムのAuthenticationProvider MBeanによって拡張されます。『Oracle WebLogic Server MBeanリファレンス』addMemberToGroupメソッドを参照してください。

このメソッドでは、次の2つの入力パラメータが必要です。

groupname username

このコマンドは、編集階層から呼び出すことはできませんが、serverConfigまたはdomainConfig階層からは呼び出すことができます。

次のWLSTオンライン・スクリプトは、デフォルトの認証プロバイダに対してaddMemberToGroupを呼び出します。このスクリプトを実行する方法については、「WLSTの呼出し」を参照してください。

例6-7 グループへのユーザーの追加

from weblogic.management.security.authentication import GroupEditorMBean

print "Adding a user ..."
atnr=cmo.getSecurityConfiguration().getDefaultRealm().lookupAuthenticationProvider("DefaultAuthenticator")
atnr.addMemberToGroup('Administrators','my_user')
print "Done adding a user"

ユーザーがグループのメンバーであるかどうかの検証

ユーザーがグループのメンバーであるかどうかを検証するには、GroupEditorMBean.isMemberメソッドを呼び出します。このメソッドは、セキュリティ・レルムのAuthenticationProvider MBeanによって拡張されます。『Oracle WebLogic Server MBeanリファレンス』isMemberメソッドを参照してください。

このメソッドでは、次の3つの入力パラメータが必要です。

groupname username boolean

booleanは、子グループ内を検索するかどうかを指定します。trueを指定した場合、指定したグループまたはその子グループにメンバーが属していればtrueが返されます。

このコマンドは、編集階層から呼び出すことはできませんが、serverConfigまたはdomainConfig階層からは呼び出すことができます。

次のWLSTオンライン・スクリプトは、デフォルトの認証プロバイダに対してisMemberを呼び出します。このスクリプトを実行する方法については、「WLSTの呼出し」を参照してください。

例6-8 ユーザーがグループのメンバーであるかどうかの検証

from weblogic.management.security.authentication import GroupEditorMBean
user = "my_user"
print "Checking if "+user+ " is a Member of a group ... "
atnr=cmo.getSecurityConfiguration().getDefaultRealm().lookupAuthenticationProvider("DefaultAuthenticator")
if atnr.isMember('Administrators',user,true) == 0:
  print user+ " is not member of Administrators"
else:
  print user+ " is a member of Administrators"

ユーザーが所属するグループのリスト表示

ユーザーまたはグループが含まれるグループのリストを表示するには、MemberGroupListerMBean.listMemberGroupsメソッドを呼び出します。このメソッドは、セキュリティ・レルムのAuthenticationProvider MBeanによって拡張されます。『Oracle WebLogic Server MBeanリファレンス』のMemberGroupListerMBeanのlistMemberGroupsメソッドを参照してください。

このメソッドでは、次の入力パラメータが必要です。

memberUserOrGroupName

memberUserOrGroupNameは既存のユーザーまたはグループの名前を指定します。

このコマンドは、編集階層から呼び出すことはできませんが、serverConfigまたはdomainConfig階層からは呼び出すことができます。

次のWLSTオンライン・スクリプトは、デフォルトの認証プロバイダに対してlistMemberGroupsを呼び出します。このスクリプトを実行する方法については、「WLSTの呼出し」を参照してください。

例6-9 ユーザーが所属するグループのリスト表示

from weblogic.management.security.authentication import MemberGroupListerMBean

print "Listing the member groups ..."
atnr=cmo.getSecurityConfiguration().getDefaultRealm().lookupAuthenticationProvider
("DefaultAuthenticator")
x = atnr.listMemberGroups('my_user')
print x

このメソッドは、名前のリストを参照するカーソル値(たとえば、Cursor_16)を返します。NameLister.haveCurrentgetCurrentName、およびadvanceの各操作は、返されたリスト内で繰返し実行され、現在のカーソル位置が指し示す名前を取得します。Oracle WebLogic Server MBeanリファレンスNameListerMBeanを参照してください。

セキュリティ・レルムのユーザーとグループのリスト表示

ユーザー名またはグループ名のリストを確認するには、AuthenticationProviderインタフェースを介して使用できる一連のメソッドを呼び出します。

  • GroupReaderMBean.listGroupsメソッドおよびUserReaderMBean.listUsersメソッドは2つの入力パラメータを取ります。1つは検索するユーザーまたはグループ名のパターンで、もう1つは取得する名前の最大数。

    セキュリティ・レルムにはパターンに一致するユーザー名またはグループ名が数千(またはそれ以上)存在する場合があるので、このメソッドでは名前のリストを指し示すカーソルが返されます。

    Oracle WebLogic Server MBeanリファレンスのGroupReaderMBeanのlistGroups操作およびUserReaderMBeanのlistUsers操作を参照してください。

  • NameLister.haveCurrentgetCurrentName、およびadvanceの各操作は、返されたリスト内で繰返し実行され、現在のカーソル位置が指し示す名前を取得します。Oracle WebLogic Server MBeanリファレンスNameListerMBeanを参照してください。

  • NameLister.close操作は、リストのかわりに保持されていたサーバー側リソースをすべて解放します。

これらのコマンドは、編集階層から呼び出すことはできませんが、serverConfigまたはdomainConfig階層からは呼び出すことができます。

例6-10のWLSTオンライン・スクリプトは、レルム内のすべてのユーザーと、それらのユーザーが属するグループをリスト表示します。このスクリプトを実行する方法については、「WLSTの呼出し」を参照してください。

例6-10 ユーザーおよびグループのリスト表示

from weblogic.management.security.authentication import UserReaderMBean
from weblogic.management.security.authentication import GroupReaderMBean

realm=cmo.getSecurityConfiguration().getDefaultRealm()
atns = realm.getAuthenticationProviders()
for i in atns:
  if isinstance(i,UserReaderMBean):
    userReader = i
    cursor = i.listUsers("*",0)
    print 'Users in realm '+realm.getName()+' are: '
    while userReader.haveCurrent(cursor):
      print userReader.getCurrentName(cursor)
      userReader.advance(cursor)
    userReader.close(cursor)

for i in atns:
  if isinstance(i,GroupReaderMBean):
    groupReader = i
    cursor = i.listGroups("*",0)
    print 'Groups in realm are: '
    while groupReader.haveCurrent(cursor):
      print groupReader.getCurrentName(cursor)
      groupReader.advance(cursor)
    groupReader.close(cursor)

パスワードの変更

ユーザーのパスワードを変更するには、UserPasswordEditorMBean.changeUserPasswordメソッドを呼び出します。このメソッドは、セキュリティ・レルムのAuthenticationProvider MBeanによって拡張されます。『Oracle WebLogic Server MBeanリファレンス』changeUserPasswordメソッドを参照してください。

このコマンドは、編集階層から呼び出すことはできませんが、serverConfigまたはdomainConfig階層からは呼び出すことができます。

次のWLSTオンライン・スクリプトは、デフォルトの認証プロバイダに対してchangeUserPasswordを呼び出します。このスクリプトを実行する方法については、「WLSTの呼出し」を参照してください。

例6-11 パスワードの変更

from weblogic.management.security.authentication import UserPasswordEditorMBean

print "Changing password ..."
atnr=cmo.getSecurityConfiguration().getDefaultRealm().lookupAuthenticationProvider("DefaultAuthenticator")
atnr.changeUserPassword('my_user','my_password','new_password')
print "Changed password successfully"

セキュリティ・レルムでのユーザー・アカウントの保護

UserLockoutManagerMBeanには、侵入者からユーザー・アカウントを保護する一連の属性が用意されています。デフォルトでは、これらの属性は最高の保護レベルに設定されています。このユーザー・アカウントの保護レベルを下げることもできます。たとえば、アカウントがロックされるまでの無効なログイン試行回数を増やしたり、ユーザー・アカウントがロックされるまでの無効なログイン試行期間を延ばしたり、ユーザー・アカウントのロック時間を変更したりできます。

UserLockoutManagerRuntimeMBeanにより、ロックアウト統計を収集する属性と、ユーザー・ロックアウトを管理する操作が提供されます。たとえば、現在ロックアウトしているユーザーの数や、サーバーの起動以降の無効なログイン試行回数を取得したり、ユーザー・アカウントに対するロックアウトをクリアできます。

ロックアウト構成の詳細は、Oracle WebLogic Server MBeanリファレンスUserLockoutManagerMBeanインタフェースを参照してください。ロックアウト統計の収集とロックアウト操作の実行については、Oracle WebLogic Server MBeanリファレンスUserLockoutManagerRuntimeMBeanインタフェースを参照してください。

次のタスクでは、UserLockoutManagerRuntimeMBeanメソッドを呼び出す例を示します。

これらのタスクではMBean属性を編集するため、WLSTでは管理サーバーに接続し、編集階層にナビゲートして、編集セッションを開始する必要がある点に注意してください。

連続する無効なログイン試行回数の設定

次のWLSTオンライン・スクリプトでは、ユーザー・アカウントがロックされるまでの連続する無効なログイン試行回数が設定されます。このスクリプトを実行する方法については、「WLSTの呼出し」を参照してください。

例6-12 連続する無効なログイン試行回数の設定

from weblogic.management.security.authentication import UserLockoutManagerMBean

edit()
startEdit()

#You have two choices for getting a user lockout manager to configure
# 1 - to configure the default realm's UserLockoutManager:
ulm=cmo.getSecurityConfiguration().getDefaultRealm().getUserLockoutManager()

# 2 - to configure another realm's UserLockoutManager:
#ulm=cmo.getSecurityConfiguration().lookupRealm("anotherRealm").getUserLockoutManager()

ulm.setLockoutThreshold(3)
save()
activate()
ユーザー・アカウントのロック解除

次のWLSTオンライン・スクリプトは、ユーザー・アカウントのロックを解除します。このスクリプトを実行する方法については、「WLSTの呼出し」を参照してください。

例6-13 ユーザー・アカウントのロックの解除

from weblogic.management.runtime import UserLockoutManagerRuntimeMBean

serverRuntime()
ulm=cmo.getServerSecurityRuntime().getDefaultRealmRuntime().getUserLockoutManagerRuntime()
#note1 : You can only manage user lockouts for the default realm starting from 
#when the server was booted (versus other non-active realms).
#note2 : If the default realm's user lockout manager's LockoutEnabled attribute 
#is false, then the user lockout manager's runtime MBean will be null.
#That is, you can only manage user lockouts in the default realm if its user 
#lockout manager is enabled.

if ulm != None:
  ulm.clearLockout("myuser")

追加LDAP認証プロバイダの構成

一部のOracle Fusion Middleware製品のインストール時などの場合には、追加の外部LDAP認証プロバイダをWebLogic Serverセキュリティ・プロバイダに追加する必要があります。これは、WebLogic Server管理コンソールを使用するか(「認証およびIDアサーション・プロバイダの構成」を参照)、またはWLSTを使用するかのいずれかによって実行できます。

例6-14は、WLSTを使用してOracle Internet Directory (OID)認証プロバイダを追加する方法を示します。別種類のLDAP認証プロバイダを追加するには、表6-3で示されるように、createAuthenticationProviderコマンド内の適切なクラス・タイプを置換します。

注意:

対応するLDAPサーバーがドメインを起動するユーザーを含む場合の、LDAP認証プロバイダの切替えについては、Oracle WebLogic Serverセキュリティの管理LDAP認証プロバイダの使用の要件を参照してください。

例6-14 認証プロバイダの追加

connect ('adminUser','adminPassword','t3://'+adminServerHost+':'+adminServerPort)
edit()
startEdit()
cd('/SecurityConfiguration/'+domainName+'/Realms/myrealm')
# In the following command, substitute the appropriate class type
cmo.createAuthenticationProvider(LDAPProviderName,
'weblogic.security.providers.authentication.OracleInternetDirectoryAuthenticator')
cd('/SecurityConfiguration/'+domainName+'/Realms/myrealm/AuthenticationProviders
/'+LDAPProviderName)
cmo.setControlFlag('SUFFICIENT')
cd('/SecurityConfiguration/'+domainName+'/Realms/myrealm/
AuthenticationProviders/'+LDAPProviderName)
cmo.setHost(LDAPHost)
cmo.setPort(LDAPPort)
cmo.setPrincipal(LDAPAdmin)
set("Credential",LDAPAdminPassword)
cmo.setGroupBaseDN(LDAPGroupBase)
cmo.setUserBaseDN(LDAPUserBase)
cmo.setUserNameAttribute(usernameattribute)
cmo.setUserObjectClass('inetOrgPerson')
cd('/SecurityConfiguration/'+domainName+'/Realms/myrealm/AuthenticationProviders
/DefaultAuthenticator')
cmo.setControlFlag('SUFFICIENT')
cd('/SecurityConfiguration/'+domainName+'/Realms/myrealm')
set('AuthenticationProviders',jarray.array([ObjectName('Security:Name=myrealm'
+LDAPProviderName), ObjectName('Security:Name=myrealmDefaultAuthenticator'),
ObjectName('Security:Name=myrealmDefaultIdentityAsserter')], ObjectName))
activate()

表6-3では、各認証プロバイダ・タイプ用に指定するクラス・タイプをリストしています。

表6-3 外部LDAP認証プロバイダのクラス・タイプ

プロバイダ クラス・タイプ

Oracle Internet Directory

weblogic.security.providers.authentication.OracleInternetDirectoryAuthenticator

Oracle Virtual Directory

weblogic.security.providers.authentication.OracleVirtualDirectoryAuthenticator

Microsoft AD

weblogic.security.providers.authentication.ActiveDirectoryAuthenticator

OpenLDAP

weblogic.security.providers.authentication.OpenLDAPAuthenticator

eDirectory

weblogic.security.providers.authentication.NovellAuthenticator

SunOne LDAP

weblogic.security.providers.authentication.IPlanetAuthenticator

アプリケーションのデプロイ

アプリケーションをデプロイするプロセスは、WLSTオフラインを使用するかWLSTオンラインを使用するかによって異なります。

次の各項では、プロセスについて説明します。

WLSTオンラインを使用したアプリケーションのデプロイ

WLSTがドメインの管理サーバーに接続される際は、deployコマンドを使用してアプリケーションをデプロイします。(WebLogic Server WLSTコマンド・リファレンスdeployを参照してください。)

例6-15のコマンドは、WebLogic Server ExamplesServerドメインのサンプル・アプリケーションをデプロイします。

例6-15 アプリケーションのデプロイ

# Deploying Applications

deploy("examplesWebApp","C:/Oracle/Middleware/wlserver/samples/server/examples/build/examplesWebApp")

注意:

WLSTオンラインを使用してアプリケーションをデプロイする場合は、以下の点に注意してください。

  • デプロイメント操作は、管理サーバーを介して実行される必要があります。WLSTクライアントは、デプロイメント・コマンドを呼び出すために管理サーバーに接続する必要があります。

  • アプリケーションをデプロイするために編集セッションに移動する必要はありません。

アプリケーションをデプロイするためのWLSTの使用については、『Oracle WebLogic Serverへのアプリケーションのデプロイ』デプロイメント・ツールに関する項を参照してください。

WLSTオフラインを使用したアプリケーションのデプロイ

表6-4に、WLSTオフラインを使用した既存ドメインのアプリケーションのデプロイ・ステップを示します。

表6-4 アプリケーションのデプロイ・ステップ(オフライン)

次を行うには... このコマンドを使用します... 参照先

テンプレート・ビルダーを使用してアプリケーション・テンプレートを作成する

適用なし

ドメイン・テンプレート・ビルダーを使用したドメイン・テンプレートの作成ドメイン・テンプレート・ビルダーを使用した拡張テンプレートの作成

既存のWebLogicドメインまたはテンプレートを開く

readDomain(domainDirName)

WebLogic Server WLSTコマンド・リファレンスWebLogic Scripting Toolコマンド・リファレンスreadDomainおよびreadTemplate

拡張テンプレートをWebLogicドメインに追加する

selectTemplate(templateName)
loadTemplates()

WebLogic Server WLSTコマンド・リファレンスselectTemplateおよびloadTemplates

WebLogicドメインを保存する

updateDomain()

WebLogic Server WLSTコマンド・リファレンスupdateDomain

WebLogicドメインを閉じる

closeDomain()

WebLogic Server WLSTコマンド・リファレンスcloseDomain

addTemplateコマンドの使用例は、次のサンプルのWLSTスクリプトを参照してください。WL_HOMEは、WebLogic Serverの最上位のインストール・ディレクトリを表します。

WL_HOME\common\templates\scripts\wlst\clusterMedRecDomain.py