WebLogic Serverセキュリティ構成では、特別な処理が必要であり、モデル・セマンティクスの必要性が他のフォルダと異なります。 プロバイダの順序付けは重要であり、新しく作成したドメインで順序が正しく設定されていることを確認するために、Create Domain ToolおよびUpdate Domain Toolでは、作成または変更されるプロバイダ・タイプのモデルですべてのプロバイダを指定する必要があります。 たとえば、プロバイダ・タイプAuthenticationProviderのプロバイダのいずれかを変更する場合、モデルは、すべてのAuthenticationProviderプロバイダおよびそれらのプロバイダのデフォルト以外の属性を指定する必要があります。 セキュリティ・プロバイダを適用するために、これらのツールはモデルで指定されたプロバイダ・タイプのターゲット・ドメインからすべてのプロバイダを削除してから、モデルからターゲット・ドメインにプロバイダを追加します。 モデルから除外されるプロバイダ・タイプは変更されません。 プロバイダ・タイプの例は、Adjudicator, AuthenticationProvider, Authorizer, CertPathProvider, CredentialMapper, PasswordValidatorおよびRoleMapperです。
たとえば、モデルでLDAPAuthenticatorを指定し、次に示すものと同様のLDAPX509IdentityAsserterを指定すると、DefaultAuthenticatorおよびDefaultIdentityAsserterが削除されます。 この例では、RoleMapperやCredentialMapperなどの他のプロバイダ・タイプは指定されず、ツールによって変更されません。
topology:
SecurityConfiguration:
Realm:
myrealm:
AuthenticationProvider:
My LDAP authenticator:
LDAPAuthenticator:
ControlFlag: SUFFICIENT
PropagateCauseForLoginException: true
EnableGroupMembershipLookupHierarchyCaching: true
Host: myldap.example.com
Port: 389
UserObjectClass: person
GroupHierarchyCacheTTL: 600
SSLEnabled: true
UserNameAttribute: cn
Principal: 'cn=foo,ou=users,dc=example,dc=com'
UserBaseDn: 'OU=Users,DC=example,DC=com'
UserSearchScope: subtree
UserFromNameFilter: '(&(cn=%u)(objectclass=person))'
AllUsersFilter: '(memberOf=CN=foo,OU=mygroups,DC=example,DC=com)'
GroupBaseDN: 'OU=mygroups,DC=example,DC=com'
AllGroupsFilter: '(&(foo)(objectclass=group))'
StaticGroupObjectClass: group
StaticMemberDNAttribute: cn
StaticGroupDNsfromMemberDNFilter: '(&(member=%M)(objectclass=group))'
DynamicGroupObjectClass: group
DynamicGroupNameAttribute: cn
UseRetrievedUserNameAsPrincipal: true
KeepAliveEnabled: true
GuidAttribute: uuid
My LDAP IdentityAsserter:
LDAPX509IdentityAsserter:
ActiveType: AuthenticatedUser
Host: myldap.example.com
Port: 389
SSLEnabled: true
プロバイダの変更/追加中にDefaultAuthenticatorおよびDefaultIdentityAsserterを保持するには、次の例に示すように、デフォルト以外の属性を使用してモデルで指定する必要があります。 モデル内のプロバイダの順序は、WebLogicセキュリティ構成でプロバイダが設定される順序になることに注意してください。
topology:
SecurityConfiguration:
Realm:
myrealm:
AuthenticationProvider:
My LDAP authenticator:
LDAPAuthenticator:
ControlFlag: SUFFICIENT
PropagateCauseForLoginException: true
EnableGroupMembershipLookupHierarchyCaching: true
Host: myldap.example.com
Port: 389
UserObjectClass: person
GroupHierarchyCacheTTL: 600
SSLEnabled: true
UserNameAttribute: cn
Principal: 'cn=foo,ou=users,dc=example,dc=com'
UserBaseDn: 'OU=Users,DC=example,DC=com'
UserSearchScope: subtree
UserFromNameFilter: '(&(cn=%u)(objectclass=person))'
AllUsersFilter: '(memberOf=CN=foo,OU=mygroups,DC=example,DC=com)'
GroupBaseDN: 'OU=mygroups,DC=example,DC=com'
AllGroupsFilter: '(&(foo)(objectclass=group))'
StaticGroupObjectClass: group
StaticMemberDNAttribute: cn
StaticGroupDNsfromMemberDNFilter: '(&(member=%M)(objectclass=group))'
DynamicGroupObjectClass: group
DynamicGroupNameAttribute: cn
UseRetrievedUserNameAsPrincipal: true
KeepAliveEnabled: true
GuidAttribute: uuid
My LDAP IdentityAsserter:
LDAPX509IdentityAsserter:
ActiveType: AuthenticatedUser
Host: myldap.example.com
Port: 389
SSLEnabled: true
DefaultAuthenticator:
DefaultAuthenticator:
ControlFlag: SUFFICIENT
DefaultIdentityAsserter:
DefaultIdentityAsserter:
Trust Identity Asserterセキュリティ・プロバイダは、12cバージョン以降でJRFによってインストールされています。
JRFインストール済のTrust Identity Asserterは、デフォルトではスキーマ・ファイルを提供しません。 WLSTをオフラインまたはWDTをオフラインで構成する前に、まずprepareCustomProviderスクリプトを使用してスキーマ・ファイルを作成する必要があります。
MBean Jar File (MJF)からスキーマ・ファイルを準備およびインストールする方法の例を次に示します:
$ export CONFIG_JVM_ARGS=-DSchemaTypeSystemName=TrustServiceIdentityAsserter
$ ORACLE_HOME/oracle_common/common/bin/prepareCustomProvider.sh -mjf=ORACLE_HOME/oracle_common/modules/oracle.jps/jps-wls-trustprovider.jar -out ORACLE_HOME/oracle_common/lib/schematypes/jps-wls-trustprovider.schema.jar
FMWバージョン12.1.2および12.1.3の場合、前述のパス例のoracle.jpsを置換: oracle.jps_12.1.2, or oracle.jps_12.1.3, respectively.
カスタム・セキュリティ・プロバイダを使用したドメインの作成および更新は、WebLogicバージョン12.1.2以降に制限されます。
このツールを使用してカスタム・セキュリティ・プロバイダでドメインを作成または更新する前に、いくつかの前提条件があります。 まず、WebLogic Serverでは、カスタムMBean JARをOracle Homeディレクトリに構成する前に、WLSERVER/server/lib/mbeantypesが必要です。 次に、WebLogic Scripting Tool、WLSTでは、WLSTオフラインを使用してスキーマJARを検出または構成する前に、スキーマJARをOracle Homeディレクトリに配置する必要があります(ORACLEHOME/oracle_common/lib/schematypes)。 MBean JARドキュメントの生成は、WebLogic Server 「ドキュメント」にあります。 スキーマJARの生成は、WebLogic Serverインストールで提供されているprepareCustomProviderスクリプトで実行できます。
MBean JARの場合、WLSTオフラインでは、システム・プロパティ-Dfmwconfig.alternateTypesDirectory=dirを使用して、WLSERVER/server/lib/mbeantypes以外の代替ディレクトリを定義できます。 WebLogic MBeanスキーマ・タイプJARの場合、-Dfmwconfig.alternateSchemaDirectory=dirを使用して別のロケーションを使用できます。 ドメインの検出または作成時にWLSTオフラインでカスタム・プロバイダJARを正しくロードするには、このシステム・プロパティをWLSDEPLOY_PROPERTIES環境変数に設定します。 どちらのプロパティも、対応するタイプのjarを含むディレクトリへのパスのカンマ区切りリストを取ります。
-Dfmwconfig.alternateTypesDirectory=dirおよび-Dfmwconfig.alternateSchemaDirectory=dirシステム・プロパティを使用してドメインを作成する場合は、WebLogic Serverサーバーの起動環境に-Dweblogic.alternateTypesDirectory=dirおよび-Dweblogic.alternateSchemaDirectory=dirシステム・プロパティを指定する必要があります。 ドメイン内のすべての管理対象サーバーと管理サーバーでは、これらの代替ロケーションからカスタム・セキュリティ・プロバイダを検索、ロードおよび構成するために、これらのプロパティが必要です。
カスタム・セキュリティ・プロバイダの形式は、組込みプロバイダとは若干異なります。カスタム・プロバイダは、プロバイダ名とプロバイダの属性の間で、モデル内のプロバイダのクラスの完全修飾名を指定する必要があります。 生成されたImplサフィクスは名前から省略されます。 次のカスタムCredentialMapperの例では、モデル' examples.security.providers.SampleCredentialMapper 'のロケーションに注意してください:
CredentialMapper:
Sample CredentialMapper:
examples.security.providers.SampleCredentialMapper:
UserNameMapperClassName: examples.security.providers.CredentialMapperProviderImpl
CredentialMappingDeploymentEnabled: true
Adjudicatorプロバイダ・タイプを追加または変更できません。PasswordCredentialsプロバイダ・タイプは、WLSTオンラインでは更新できません。