12.3. 含まれるセキュリティーマッピングモジュール
| コード | クラス |
|---|---|
| PropertiesRoles | org.jboss.security.mapping.providers.role.PropertiesRolesMappingProvider |
| SimpleRoles | org.jboss.security.mapping.providers.role.SimpleRolesMappingProvider |
| DeploymentRoles | org.jboss.security.mapping.providers.DeploymentRolesMappingProvider |
| DatabaseRoles | org.jboss.security.mapping.providers.role.DatabaseRolesMappingProvider |
| LdapRoles | org.jboss.security.mapping.providers.role.LdapRolesMappingProvider |
| LdapAttributes | org.jboss.security.mapping.providers.attribute.LdapAttributeMappingProvider |
jboss-web.xml および jboss-app.xml デプロイメント記述子で可能なプリンシパルからロールへのマッピングを考慮するロールマッピングモジュール。
例12.1 例
<jboss-web>
...
<security-role>
<role-name>Support</role-name>
<principal-name>Mark</principal-name>
<principal-name>Tom</principal-name>
</security-role>
...
</jboss-web>
jboss-web.xml および jboss-app.xml デプロイメント記述子で指定できるプリンシパルからロールへのマッピングを考慮するロールツーロール (Role to Roles) マッピングモジュールです。この場合、principal-name は他のロールをマップするロールを示します。
例12.2 例
<jboss-web>
...
<security-role>
<role-name>Employee</role-name>
<principal-name>Support</principal-name>
<principal-name>Sales</principal-name>
</security-role>
...
</jboss-web>
オプションからロールを選び、渡されたグループの前に追加するロールマッピングプロバイダー。ロール (値) のカンマ区切りリストが含まれるロール名 (キー) のプロパティースタイルマッピングを取ります。
SimplePrincipal を取り、異なるプリンシパル名で SimplePrincipal を変換するプリンシパルマッピングプロバイダー。
データベースからロールを読み取る MappingProvider。
dsJndiName: ロールをユーザーにマップするために使用されるデータソースの JNDI 名。rolesQuery: このオプションは「select RoleName from Roles where User=?」と同等の準備済みステートメントです。「?」は現在のプリンシパル名に置き換えられます。suspendResume: ブール値 - ロールの検索の実行中に、現在のスレッドに関連するトランザクションを停止し、その後再開します。transactionManagerJndiName: トランザクションマネージャーの JNDI 名 (デフォルトは java:/TransactionManager)。
ロールを検索するため LDAP サーバーを使用してロールを割り当てるマッピングプロバイダー。
bindDN: ユーザーおよびロールクエリーのために LDAP サーバーに対してバインドするために使用される DN。この DN は baseCtxDN および rolesCtxDN の値では読み取りおよび検索パーミッションが必要です。bindCredential: bindDN のパスワード。これは、jaasSecurityDomain が指定された場合に暗号化できます。rolesCtxDN: ユーザーロールを検索するコンテキストの固定 DN。これは、実際のロールが存在する DN ではなく、ユーザーロールを含むオブジェクトが存在する DN です。たとえば、Microsoft Active Directory サーバーでは、これは、ユーザーアカウントが存在する DN です。roleAttributeID: 承認ロールの名前が含まれる LDAP 属性。roleAttributeIsDN:roleAttributeIDにロールオブジェクトの完全修飾 DN が含まれるかどうか。false の場合は、コンテキスト名のroleNameAttributeId属性の値からロール名が取得されます。Microsoft Active Directory などの特定のディレクトリースキーマでは、この属性をtrueに設定する必要があります。roleNameAttributeID: ロール名を含むroleCtxDNコンテキスト内の属性の名前。roleAttributeIsDNプロパティーがtrueに設定された場合、このプロパティーはロールオブジェクトの名前属性を見つけるために使用されます。parseRoleNameFromDN: クエリーによって返された DN に roleNameAttributeID が含まれるかどうかを示すフラグ。trueに設定された場合、DN は roleNameATtributeID に対してチェックされます。falseに設定された場合、DN は roleNameATtributeID に対してチェックされません。このフラグは LDAP クエリーのパフォーマンスを向上できます。roleFilter: 認証済みユーザーと関連付けられたロールを検索するために使用される検索フィルター。入力ユーザー名またはログインモジュールコールバックから取得されたuserDNが{0}式が使用されたフィルターに置換されます。認証済みuserDNは、{1}が使用されたフィルターに置換されます。入力ユーザー名に一致する検索フィルター例は、(member={0})です。認証済みuserDNに一致する他の例は(member={1})です。roleRecursion: ロール検索が一致するコンテキストで行われる再帰のレベル数。再帰を無効にするには、これを0に設定します。searchTimeLimit: ユーザー/ロール検索のタイムアウト (ミリ秒単位)。デフォルトは 10000 (10 秒) です。searchScope: 使用する検索範囲。
「username=role1,role2,...」という形式でプロパティーファイルからロールを読み取る MappingProvider。
rolesProperties: プロパティーでフォーマットされるファイル名。JBoss 変数の拡張は${jboss.variable}という形式で使用されます。
オプションマップからロールを読み取る簡単な MappingProvider。オプションの属性名はロールを割り当てるプリンシパルの名前で、 属性値はプリンシパルに割り当てるロール名のカンマ区切りリストです。
例12.3 例
<module-option name="JavaDuke" value="JBossAdmin,Admin"/>
<module-option name="joe" value="Users"/>
モジュールをチェックし、マッピングコンテキストからプリンシパル名を見つけ、principalName + ".email" という名前のモジュールオプションから属性電子メールアドレスを作成し、それを指定のプリンシパルへマップします。
属性を LDAP からサブジェクトへマップします。オプションには、ご使用の LDAP JNDI プロバイダーがサポートするオプションがすべて含まれます。
例12.4 標準のプロパティー名の例
Context.INITIAL_CONTEXT_FACTORY = "java.naming.factory.initial"
Context.SECURITY_PROTOCOL = "java.naming.security.protocol"
Context.PROVIDER_URL = "java.naming.provider.url"
Context.SECURITY_AUTHENTICATION = "java.naming.security.authentication"
bindDN: ユーザーおよびロールクエリーのために LDAP サーバーに対してバインドするために使用される DN。この DN は baseCtxDN および rolesCtxDN の値では読み取りおよび検索パーミッションが必要です。bindCredential: bindDN のパスワード。これは、jaasSecurityDomain が指定された場合に暗号化できます。baseCtxDN: ユーザー検索を開始するコンテキストの固定 DN。baseFilter: 認証するユーザーのコンテキストを見つけるために使用される検索フィルター。入力ユーザー名またはログインモジュールコールバックから取得されたuserDNが、{0}式が使用されたフィルターに置換されます。この置換の挙動は標準の__DirContext.search(Name, String, Object[], SearchControls cons)__メソッドからになります。一般的な検索フィルターの例は(uid={0})です。searchTimeLimit: ユーザー/ロール検索のタイムアウト (ミリ秒単位)。デフォルトは 10000 (10 秒) です。attributeList: ユーザーの属性のカンマ区切りリスト (例: mail,cn,sn,employeeType,employeeNumber)。jaasSecurityDomain:java.naming.security.principalの復号化に使用する JaasSecurityDomain。パスワードの暗号化された形式はJaasSecurityDomain#encrypt64(byte[])によって返されます。org.jboss.security.plugins.PBEUtilsを使用して暗号化された形式を生成することもできます。