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
を使用して暗号化された形式を生成することもできます。