第12章 セキュリティー管理リファレンス
12.1. 含まれる認証モジュール
以下の認証モジュールが JBoss EAP 6 に含まれます。これらのモジュールの一部は許可と認証を処理します。通常、
Role
という単語が Code
名に含まれます。
これらのモジュールを設定する場合は、モジュールを参照するために
Code
値またはフルネーム (パッケージ修飾) 使用します。
認証モジュール
コード | RealmDirect
|
クラス | org.jboss.as.security.RealmDirectLoginModule
|
説明 |
セキュリティーレルムと直接インターフェースで接続するログインモジュール実装。このログインモジュールは、バッキングストアとのやりとりがすべてレルムへ委譲されるようにするため、定義の重複や同期化が必要なくなります。リモーティング呼び出しや管理インターフェースに対して使用されます。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
realm |
文字列
| ApplicationRealm
|
指定するレルムの名前。
|
コード | Client
|
クラス | org.jboss.security.ClientLoginModule
|
説明 |
このログインモジュールは、JBoss EAP 6 がクライアントとして動作するときに呼び出し元 ID とクレデンシャルを確立するよう設定されています。サーバー認証に使用されるセキュリティードメインの一部として使用しないでください。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
multi-threaded | true または false
| false
|
各スレッドが独自のプリンシパルとクレデンシャルストレージを持つ場合は、true に設定します。VM 内のすべてのスレッドが同じ ID とクレデンシャルを共有するよう指定する場合は false に設定します。
|
password-stacking
| useFirstPass または false
| false
|
このログインモジュールが ID として使用する
LoginContext に格納された情報を探すよう指定する場合は、LoginContext に設定します。このオプションは、他のログインモジュールをスタックする場合に使用できます。
|
restore-login-identity
| true または false
| false
| login() メソッドの先頭に示された ID とクレデンシャルを logout() メソッドの呼び出し後に復元する必要がある場合は true に設定します。
|
コード | Remoting
|
クラス | org.jboss.as.security.remoting.RemotingLoginModule
|
説明 |
このログインモジュールは、現在認証中の要求が Remoting 接続上で受信された要求であるかどうかを確認するために使用されます。Remoting 接続上で受信された要求である場合、Remoting 認証処理中に作成された ID が使用され、現在の要求に関連付けされます。要求が Remoting 接続上で受信されなかった場合は、このモジュールは何もせず、JAAS ベースのログインは次のモジュールへ続行されます。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
password-stacking | useFirstPass または false
| false
|
このログインモジュールが ID を見つけるため
LoginContext に格納された情報を最初に探すことを示す useFirstPass の値。このオプションは、他のログインモジュールをこのモジュールとスタックする場合に使用できます。
|
principalClass
|
完全修飾クラス名
|
なし
|
プリンシパル名に String 引数を取るコンストラクターを含む
Principal 実装クラス。
|
unauthenticatedIdentity
|
プリンシパル名。
|
なし
|
認証情報を含まない要求に割り当てられるプリンシパル名を定義します。これにより、保護されていないサーブレットは特定のロールを必要としない EJB でメソッドを呼び出すことができるようになります。このようなプリンシパルには関連付けられたロールがなく、セキュアでない JEB または
unchecked permission 制約に関連付けられた EJB メソッドのみにアクセスできます。
|
コード | Certificate
|
クラス | org.jboss.security.auth.spi.BaseCertLoginModule
|
説明 |
このログインモジュールは、
X509 Certificates に基づいてユーザーを認証するよう設計されています。この使用例は、Web アプリケーションの CLIENT-CERT 認証です。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
securityDomain
| 文字列 | other
|
信頼済み証明書を保持するトラストストア用 JSSE 設定を持つセキュリティードメインの名前。
|
verifier
| class |
なし
|
ログイン証明書の検証に使用する
org.jboss.security.auth.certs.X509CertificateVerifier のクラス名。
|
コード | CertificateRoles
|
クラス | org.jboss.security.auth.spi.CertRolesLoginModule
|
説明 |
このログインモジュールは、Certificate ログインモジュールを拡張して、プロパティーファイルからロールマッピング機能を追加します。同じすべてのオプションを Certificate ログインモジュールとして取得し、次のオプションを追加します。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
rolesProperties
| 文字列 | roles.properties
|
各ユーザーに割り当てるロールを含むリソースまたはファイルの名前。ロールプロパティーファイルの形式は
username=role1,role2 である必要があります。username は証明書の DN で、= (等記号) やスペースをすべてエスケープします。正しい形式を用いた例は次のとおりです。
CN\=unit-tests-client,\ OU\=Red\ Hat\ Inc.,\ O\=Red\ Hat\ Inc.,\ ST\=North\ Carolina,\ C\=US |
defaultRolesProperties
| 文字列 | defaultRoles.properties
| rolesProperties ファイルが見つからない場合に使用するリソースまたはファイルの名前。
|
roleGroupSeparator
| 単一の文字。 | . (ピリオド 1 つ)
| rolesProperties ファイルでどの文字をロールグループセパレーターとして使用するか。
|
コード | Database |
クラス | org.jboss.security.auth.spi.DatabaseServerLoginModule
|
説明 |
認証とロールマッピングをサポートする JDBC ベースのログインモジュール。これは、次の定義を使用して、2 つの論理テーブルに基づきます。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
digestCallback
| 完全修飾クラス名 |
なし
|
入力パスワードをハッシュ化するソルト値などのプレまたはポストダイジェストコンテンツを含む
DigestCallback 実装のクラス名。hashAlgorithm が指定された場合にのみ使用されます。
|
dsJndiName
| JNDI リソース | java:/DefaultDS
|
認証情報を保持する JNDI リソースの名前。このオプションは必須です。
|
hashAlgorithm
| 文字列 |
プレーンパスワードを使用
|
パスワードをハッシュ化するのに使用されるメッセージダイジェストアルゴリズム。サポートされるアルゴリズムは Java セキュリティープロバイダーに依存しますが、
MD5 、SHA-1 、および SHA-256 がサポートされます。
|
hashCharset
| 文字列 |
プラットフォームのデフォルトのエンコーディング
|
パスワードの文字列をバイトアレイに変換するときに使用する文字セット/エンコーディングの名前。これにはサポートされるすべての Java 文字セット名が含まれます。
|
hashEncoding
| 文字列 |
Base64
|
使用する文字列エンコーディング形式。
|
ignorePasswordCase
| boolean |
false
|
パスワードの比較で大文字と小文字の区別を無視するかどうかを示すフラグ。
|
inputValidator
| 完全修飾クラス名 |
なし
|
クライアントによって提供されるユーザー名およびパスワードを検証するために使用される InputValidator 実装のインスタンス。
|
principalsQuery
| 準備済み SQL ステートメント | select Password from Principals where PrincipalID=?
|
プリンシパルに関する情報を取得するための準備済み SQL クエリー。
|
rolesQuery
| 準備済み SQL ステートメント |
なし
|
ロールの情報を取得するための準備済み SQL クエリー。
select Role, RoleGroup from Roles where PrincipalID=? と同等である必要があります。ここで、Role はロール名で、RoleGroup 列の値は常に R が大文字である Roles または CallerPrincipal である必要があります。
|
storeDigestCallback
| 完全修飾クラス名 |
なし
|
ストア/予想されるパスワードをハッシュ化するソルト値などのプレまたはポストダイジェストコンテンツを含む
DigestCallback 実装のクラス名。hashStorePassword または hashUserPassword が true で、hashAlgorithm が指定された場合のみ使用されます。
|
suspendResume
| boolean |
true
|
データベース操作中に既存の JTA トランザクションを一時停止するかどうか。
|
throwValidatorError
| boolean |
false
|
検証エラーがクライアントへ公開されるべきかどうかを示すフラグ。
|
transactionManagerJndiName
| JNDI リソース |
java:/TransactionManager
|
ログインモジュールによって使用されるトランザクションマネージャーの JNDI 名。
|
コード | DatabaseCertificate
|
クラス | org.jboss.security.auth.spi.DatabaseCertLoginModule
|
説明 |
このログインモジュールは、Certificate ログインモジュールを拡張して、データベーステーブルからロールマッピング機能を追加します。同じオプションと次の追加オプションが存在します。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
dsJndiName
| JNDI リソース | java:/DefaultDS
|
認証情報を保持する JNDI リソースの名前。このオプションは必須です。
|
rolesQuery
| 準備済み SQL ステートメント | select Role,RoleGroup from Roles where PrincipalID=?
|
ロールをマップするために実行される SQL 準備済みステートメント。これは、
select Role, RoleGroup from Roles where PrincipalID=? と同等である必要があります。Role はロール名で、RoleGroup 列の値は常に R が大文字である Roles または CallerPrincipal である必要があります。
|
suspendResume
| true または false
| true
|
データベース操作中に既存の JTA トランザクションを一時停止するかどうか。
|
コード | Identity
|
クラス | org.jboss.security.auth.spi.IdentityLoginModule
|
説明 |
モジュールオプションで指定されたプリンシパルをモジュールに対して認証されたサブジェクトと関連付けます。使用される Principal クラスのタイプは
org.jboss.security.SimplePrincipal です。プリンシパルオプションが指定されない場合は、名前が guest のプリンシパルが使用されます。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
principal
| 文字列 | guest
|
プリンシパルに使用する名前。
|
roles
| カンマ区切りの文字列リスト |
なし
|
サブジェクトに割り当てられるロールのカンマ区切りリスト。
|
コード | Ldap
|
クラス | org.jboss.security.auth.spi.LdapLoginModule
|
説明 |
ユーザー名とパスワードが、JNDI LDAP プロバイダーを使用してアクセスできる LDAP サーバーに格納された場合に、LDAP サーバーに対して認証します。多くのオプションは、LDAP プロバイダーまたは環境によって決定されるため、必須ではありません。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
java.naming.factory.initial
| クラス名 | com.sun.jndi.ldap.LdapCtxFactory
| InitialContextFactory 実装クラス名。
|
java.naming.provider.url
| ldap:// URL
| java.naming.security.protocol の値が SSL の場合は ldap://localhost:636 で、その他の場合は ldap://localhost:389 。
|
LDAP サーバーの URL。
|
java.naming.security.authentication
| none 、simple 、または SASL メカニズムの名前。
| simple
|
LDAP サーバーにバインドするために使用するセキュリティーレベル。
|
java.naming.security.protocol
| トランスポートプロトコル |
指定されない場合は、プロバイダーによって決定されます。
|
SSL などの、セキュアアクセスに使用するトランスポートプロトコル。
|
java.naming.security.principal
| 文字列 |
なし
|
サービスに対する呼び出し元を認証するプリンシパルの名前。これは、以下に示された他のプロパティーから構築されます。
|
java.naming.security.credentials
| クレデンシャルタイプ |
なし
|
認証スキームにより使用されるクレデンシャルのタイプ。一部の例には、ハッシュ化されたパスワード、クリアテキストパスワード、キー、または証明書が含まれます。このプロパティーが指定されない場合は、動作がサービスプロバイダーにより決定されます。
|
principalDNPrefix
| 文字列 |
|
ユーザー DN を形成するユーザー名に追加される接頭辞。ユーザーにユーザー名の指定を要求したり、
principalDNPrefix および principalDNSuffix を使用して完全修飾 DN を構築したりできます。
|
principalDNSuffix
| 文字列 |
|
ユーザー DN を形成するユーザー名に追加されるサフィックス。ユーザーにユーザー名の指定を要求したり、
principalDNPrefix および principalDNSuffix を使用して完全修飾 DN を構築したりできます。
|
useObjectCredential
| true または false
|
false
|
JAAS PasswordCallback を使用した
char[] パスワードではなく Callback の org.jboss.security.auth.callback.ObjectCallback タイプを使用した不透明なオブジェクトとしてクレデンシャルを取得するかどうか。これにより、char[] クレデンシャル情報を LDAP サーバーに渡すことができます。
|
rolesCtxDN
| 完全修飾 DN |
なし
|
ユーザーロールを検索するコンテキストの完全修飾 DN。
|
userRolesCtxDNAttributeName
|
attribute
|
なし
|
ユーザーロールを検索するコンテキストの DN を含むユーザーオブジェクトの属性。これは、
rolesCtxDN と異なるため、ユーザーのロールを検索するコンテキストは各ユーザーに対して一意になることがあります。
|
roleAttributeID
| attribute | roles
|
ユーザーロールを含む属性の名前。
|
roleAttributeIsDN
| true または false
| false
| roleAttributeID にロールオブジェクトの完全修飾 DN が含まれるかどうか。false の場合は、コンテキスト名の roleNameAttributeId 属性の値からロール名が取得されます。Microsoft Active Directory などの特定のディレクトリースキーマでは、この属性を true に設定する必要があります。
|
roleNameAttributeID
| attribute | name
|
ロール名を含む
roleCtxDN コンテキスト内の属性の名前。roleAttributeIsDN プロパティーが true に設定された場合、このプロパティーはロールオブジェクトの名前属性を見つけるために使用されます。
|
uidAttributeID
| attribute | uid
|
ユーザー ID に対応する
UserRolesAttributeDN の属性の名前。これは、ユーザーロールを見つけるために使用されます。
|
matchOnUserDN
| true または false
| false
|
ユーザーロールの検索でユーザーの完全識別 DN またはユーザー名のみに一致するかどうか。
true の場合、完全 userDN は一致する値として使用されます。false の場合は、ユーザー名のみが uidAttributeName 属性に対して一致する値として使用されます。
|
allowEmptyPasswords
| true または false
| false
|
空白のパスワードを許可するかどうか。ほとんどの LDAP サーバーでは、空白のパスワードが匿名ログイン試行として扱われます。空のパスワードを拒否するには、これを
false に設定します。
|
コード | LdapExtended
|
クラス | org.jboss.security.auth.spi.LdapExtLoginModule
|
説明 |
検索を使用してバインドユーザーと関連するロールを見つける別の LDAP ログインモジュール実装。ロールクエリーは再帰的に DN に従い、階層ロール構造をナビゲートします。同じ
java.naming オプションを Ldap モジュールとして使用し、Ldap モジュールの他のオプションの代わりに次のオプションを使用します。
認証は 2 つの手順で行われます。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
baseCtxDN
| 完全修飾 DN |
なし
|
ユーザー検索を開始する最上位コンテキストの固定 DN。
|
bindCredential
| 文字列、オプションで暗号化 |
なし
|
詳細は JBoss EAP『セキュリティーガイド』を参照してください。
|
bindDN
| 完全修飾 DN |
なし
|
ユーザーおよびロールクエリーのために LDAP サーバーに対してバインドするために使用される DN。この DN は
baseCtxDN および rolesCtxDN の値に対する読み取りおよび検索パーミッションを必要とします。
|
baseFilter
| LDAP フィルター文字列 |
なし
|
認証するユーザーのコンテキストを見つけるために使用される検索フィルター。入力ユーザー名またはログインモジュールコールバックから取得された
userDN が、{0} 式が使用されたフィルターに置換されます。検索フィルターの一般的な例は (uid={0}) です。
|
rolesCtxDN
| 完全修飾 DN |
なし
|
ユーザーロールを検索するコンテキストの固定 DN。これは、実際のロールが存在する DN ではなく、ユーザーロールを含むオブジェクトが存在する DN です。たとえば、Microsoft Active Directory サーバーでは、これは、ユーザーアカウントが存在する DN です。
|
roleFilter
| LDAP フィルター文字列 |
なし
|
認証済みユーザーと関連付けられたロールを検索するために使用される検索フィルター。入力ユーザー名またはログインモジュールコールバックから取得された
userDN が {0} 式が使用されたフィルターに置換されます。認証済み userDN は、{1} が使用されたフィルターに置換されます。入力ユーザー名に一致する検索フィルター例は、(member={0}) です。認証済み userDN に一致する他の例は (member={1}) です。
|
roleAttributeIsDN | true または false
| false
| roleAttributeID にロールオブジェクトの完全修飾 DN が含まれるかどうか。false の場合は、コンテキスト名の roleNameAttributeId 属性の値からロール名が取得されます。Microsoft Active Directory などの特定のディレクトリースキーマでは、この属性を true に設定する必要があります。
|
defaultRole
|
ロール名
|
なし
|
認証された全ユーザーに対して含まれるロール
|
parseRoleNameFromDN
| true または false
| false
|
クエリによって返された DN に roleNameAttributeID が含まれるかどうかを示すフラグ。
true に設定された場合、DN は roleNameATtributeID に対してチェックされます。false に設定された場合、DN は roleNameATtributeID に対してチェックされません。このフラグは LDAP クエリのパフォーマンスを向上できます。
|
parseUsername
| true または false
| false
|
DN がユーザー名に対して解析されるかどうかを示すフラグ。
true に設定された場合、 DN はユーザー名に対して解析されます。false に設定された場合、 DN はユーザー名に対して解析されません。このオプションは usernameBeginString および usernameEndString と共に使用されます。
|
usernameBeginString
|
文字列
|
なし
|
ユーザー名を公開するため、DN の最初から削除される文字列を定義します。このオプションは
usernameEndString と共に使用されます。
|
usernameEndString
|
文字列
|
なし
|
ユーザー名を公開するため、DN の最後から削除される文字列を定義します。このオプションは
usernameBeginString と共に使用されます。
|
roleNameAttributeID
| attribute | name
|
ロール名を含む
roleCtxDN コンテキスト内の属性の名前。roleAttributeIsDN プロパティーが true に設定された場合、このプロパティーはロールオブジェクトの名前属性を見つけるために使用されます。
|
distinguishedNameAttribute
| attribute | distinguishedName
|
ユーザーの DN を含むユーザーエントリーの属性の名前。これは、ユーザー自身の DN に正しいユーザーマッピングを妨げる特殊文字 (バックスラッシュなど) が含まれる場合に、必要になることがあります。属性が存在しない場合は、エントリーの DN が使用されます。
|
roleRecursion
| 整数 | 0
|
ロール検索が一致するコンテキストで行われる再帰のレベル数。再帰を無効にするには、これを
0 に設定します。
|
searchTimeLimit
| 整数 | 10000 (10 秒)
|
ユーザーまたはロール検索のタイムアウト (ミリ秒単位)。
|
searchScope
| OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE のいずれか。
| SUBTREE_SCOPE
|
使用する検索範囲。
|
allowEmptyPasswords
| true または false
| false
|
空白のパスワードを許可するかどうか。ほとんどの LDAP サーバーでは、空白のパスワードが匿名ログイン試行として扱われます。空のパスワードを拒否するには、これを false に設定します。
|
referralUserAttributeIDToCheck
|
attribute
|
なし
|
リファーラル (referral) を使用しない場合はこのオプションを無視してもかまいません。リファーラルを使用し、ロールオブジェクトがリファーラル内部にある場合、このオプションは特定のロール (例:
member ) に対して定義されたユーザーが含まれる属性名を示します。ユーザーはこの属性名の内容に対してチェックされます。このオプションが設定されていないとチェックは常に失敗するため、ロールオブジェクトはリファーラルツリーに保存できません。
|
コード | RoleMapping
|
クラス | org.jboss.security.auth.spi.RoleMappingLoginModule
|
説明 |
認証プロセスの結果であるロールを宣言ロールに対してマップします。このモジュールは、セキュリティードメインに追加する場合に
optional とフラグ付けする必要があります。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
rolesProperties
| プロパティーファイルまたはリソースの完全修飾ファイルパスまたは完全修飾ファイル名。 | none
|
ロールを置換ロールに対してマップするプロパティーファイルまたはリソースの完全修飾ファイルパスまたはファイル名。形式は
original_role=role1,role2,role3 になります。
|
replaceRole
| true または false
| false
|
現在のロールを追加するか、現在のロールをマップされたロールに置き換えるか。
true に設定された場合は、置き換えられます。
|
注記
rolesProperties
モジュールオプションは RoleMapping に必要です。
コード | RunAs
|
クラス | org.jboss.security.auth.spi.RunAsLoginModule
|
説明 | run as ロールを、認証のログイン段階の間スタックにプッシュし、コミットまたはアボート段階でスタックから run as ロールをポップするヘルパーモジュール。このログインモジュールは、セキュアな EJB にアクセスするログインモジュールなどの、認証を実行するためにセキュアなリソースにアクセスする必要がある他のログインモジュール用ロールを提供します。run as ロールを確立する必要があるログインモジュールの前に、RunAsLoginModule を設定する必要があります。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
roleName
| ロール名 | nobody
|
ログイン段階で
run as ロールとして使用するロールの名前。
|
principalName
| プリンシパル名 | nobody
|
ログインフェーズ中に
run as プリンシパルとして使用するプリンシパルの名前。指定がない場合、デフォルトの nobody が使用されます。
|
principalClass
| 完全修飾クラス名 |
なし
|
プリンシパル名に String 引数を取るコンストラクターを含む
Principal 実装クラス。
|
コード | Simple
|
クラス | org.jboss.security.auth.spi.SimpleServerLoginModule
|
説明 |
テスト目的でセキュリティーを素早くセットアップするモジュール。次の単純なアルゴリズムが実装されます。
|
Simple
モジュールオプション
Simple
モジュールにはオプションがありません。
コード | ConfiguredIdentity
|
クラス | org.picketbox.datasource.security.ConfiguredIdentityLoginModule
|
説明 |
モジュールオプションで指定されたプリンシパルをモジュールに対して認証されたサブジェクトに関連付けます。使用される Principal クラスのタイプは
org.jboss.security.SimplePrincipal です。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
username
| 文字列 | なし | 認証のユーザー名 |
password
| 暗号化文字列 | "" |
認証に使用するパスワード。パスワードを暗号化するには、コマンドラインで直接モジュールを使用します。
このコマンドの結果をモジュールオプションの値フィールドに貼り付けます。デフォルトの値は空の文字列です。
|
principal
| プリンシパルの名前 | none
|
モジュールに対して認証されるサブジェクトに関連付けられるプリンシパル。
|
コード | SecureIdentity
|
クラス | org.picketbox.datasource.security.SecureIdentityLoginModule
|
説明 |
このモジュールは、レガシー対応のために提供されます。このモジュールを使用すると、パスワードを暗号化し、暗号化されたパスワードを最適なプリンシパルで使用します。アプリケーションが
SecureIdentity を使用する場合は、パスワード vault メカニズムを代わりに使用することを検討してください。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
username
| 文字列 | なし | 認証のユーザー名 |
password
| 暗号化文字列 | "" |
認証に使用するパスワード。パスワードを暗号化するには、コマンドラインで直接モジュールを使用します。
このコマンドの結果をモジュールオプションの値フィールドに貼り付けます。デフォルトの値は空の文字列です。
|
managedConnectionFactoryName
| JCA リソース | なし |
データソースの JCA 接続ファクトリーの名前。
|
コード | PropertiesUsers
|
クラス | org.jboss.security.auth.spi.PropertiesUsersLoginModule
|
説明 |
認証用ユーザー名およびパスワードを格納するプロパティーファイルを使用します。認証 (ロールマッピング) は提供されません。このモジュールは、テスト向けのみに限定されます。
|
コード | SimpleUsers
|
クラス | org.jboss.security.auth.spi.SimpleUsersLoginModule
|
説明 |
このログインモジュールは
module-option を使用してユーザー名とクリアテキストパスワードを保存します。module-option の name および value 属性はユーザー名とパスワードを指定します。テストの目的でのみ含まれているため、本番環境
|
コード | LdapUsers
|
クラス | org.jboss.security.auth.spi.LdapUsersLoginModule
|
説明 | LdapUsers モジュールは ExtendedLDAP および AdvancedLdap モジュールが導入されたため廃止になりました。
|
コード | Kerberos
|
クラス | com.sun.security.auth.module.Krb5LoginModule 。IBM JDK でのクラス名は com.ibm.security.auth.module.Krb5LoginModule 。
|
説明 |
GSSAPI を使用して Kerberos ログイン認証を実行します。このモジュールは、Sun Microsystems により提供された API のセキュリティーフレームワークの一部です。詳細については、http://docs.oracle.com/javase/7/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html を参照してください。このモジュールは、認証とロールのマッピングを処理する別のモジュールと組み合わせる必要があります。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
storekey
| true または false
| false | KerberosKey をサブジェクトのプライベートクレデンシャルに追加するかどうか。
|
doNotPrompt
| true または false
| false | true に設定された場合、ユーザーはパスワードを要求されません。
|
useTicketCache
| true または false のブール値
| false | true の場合、TGT はチケットキャッシュから取得されます。false の場合、チケットキャッシュは使用されません。
|
ticketcache
| Kerberos チケットキャッシュを表すファイルまたはリソース。 |
デフォルトは使用するオペレーティングシステムによって異なります。
| チケットキャッシュの場所。 |
useKeyTab
| true または false
| false | キーテーブルファイルからプリンシパルのキーを取得するかどうか。 |
keytab
| Kerberos keytab を表すファイルまたはリソース。 |
オペレーティングシステムの Kerberos 設定ファイルの場所または
/home/user/krb5.keytab
| キーテーブルファイルの場所。 |
principal
| 文字列 | なし |
プリンシパルの名前。これは、
host/testserver.acme.com などの単純なユーザー名またはサービス名のいずれかになります。これは、キーテーブルからプリンシパルを取得する代わり、またはキーテーブルに複数のプリンシパルが含まれる場合に使用します。
|
useFirstPass
| true または false
| false | javax.security.auth.login.name および javax.security.auth.login.password をキーとして使用して、モジュールの共有状態からユーザー名とパスワードを取得するかどうか。認証が失敗した場合、再試行は行われません。
|
tryFirstPass
| true または false
| false | useFirstPass と同じです。ただし、認証が失敗した場合、モジュールは CallbackHandler を使用して新しいユーザー名とパスワードを取得します。2 番目の認証が失敗した場合、失敗は読み出し元アプリケーションに報告されます。
|
storePass
| true または false
| false |
モジュールの共有状態でユーザー名とパスワードを格納するかどうか。これは、キーがすでに共有状態である場合、または認証に失敗した場合は、行われません。
|
clearPass
| true または false
| false |
これを
true に設定して、認証段階が完了した後に共有状態からユーザー名とパスワードを削除します。
|
コード | SPNEGO
|
クラス | org.jboss.security.negotiation.spnego.SPNEGOLoginModule
|
説明 |
Microsoft Active Directory サーバーまたは SPNEGO をサポートする他の環境に対して SPNEGO 認証を許可します。SPNEGO は Kerberos クレデンシャルを持つこともできます。このモジュールは、認証とロールのマッピングを処理する別のモジュールと組み合わせる必要があります。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
serverSecurityDomain
| string
| null
|
Kerberos ログインモジュールを介してサーバーサービスの ID を読み出すために使用されるドメインを定義します。このプロパティーは必ず設定する必要があります。
|
removeRealmFromPrincipal
| boolean
| false
|
処理を続行する前に Kerberos レルムをプリンシパルから削除する必要があることを指定します。
|
usernamePasswordDomain
| string
| null
|
Kerberos が失敗したときにフェールオーバーログインとして使用する必要がある設定内の別のセキュリティードメインを指定します。
|
コード | AdvancedLdap |
クラス | org.jboss.security.negotiation.AdvancedLdapLoginModule
|
説明 |
SASL や JAAS セキュリティードメインの使用など、追加機能を提供するモジュール。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
bindAuthentication
|
文字列
|
なし
|
ディレクトリーサーバーへのバインディングに使用する SASL 認証のタイプ。
|
java.naming.provider.url
| string
| java.naming.security.protocol の値が SSL の場合は ldap://localhost:686 で、その他の場合は ldap://localhost:389 。
|
ディレクトリーサーバーの URI。
|
baseCtxDN
|
完全修飾 DN
|
なし
|
検索の基盤として使用する識別名。
|
baseFilter
|
LDAP 検索フィルターを表す文字列。
|
なし
|
検索結果を絞り込むために使用するフィルター。
|
roleAttributeID
|
LDAP 属性を表す文字列値。
|
なし
|
承認ロールの名前が含まれる LDAP 属性。
|
roleAttributeIsDN
| true または false
| false
|
ロール属性が識別名 (DN) であるかどうか。
|
roleNameAttributeID
|
LDAP 属性を表す文字列。
|
なし
|
実際のロール属性が含まれる
RoleAttributeId 内に格納された属性。
|
recurseRoles
| true または false
| false
|
ロールに対して
RoleAttributeId を再帰的に検索するかどうか。
|
referralUserAttributeIDToCheck
|
attribute
|
なし
|
リファーラル (referral) を使用しない場合はこのオプションを無視してもかまいません。リファーラルを使用し、ロールオブジェクトがリファーラル内部にある場合、このオプションは特定のロール (例:
member ) に対して定義されたユーザーが含まれる属性名を示します。ユーザーはこの属性名の内容に対してチェックされます。このオプションが設定されていないとチェックは常に失敗するため、ロールオブジェクトはリファーラルツリーに保存できません。
|
コード | AdvancedADLdap |
クラス | org.jboss.security.negotiation.AdvancedADLoginModule
|
説明 |
このモジュールは
AdvancedLdap ログインモジュールを拡張し、Microsoft Active Directory に関連する追加パラメーターを追加します。
|
コード | UsersRoles |
クラス | org.jboss.security.auth.spi.UsersRolesLoginModul
|
説明 |
2 つの異なるプロパティーファイルに格納された複数のユーザーおよびユーザーロールをサポートする簡単なログインモジュール。
|
オプション | タイプ | デフォルト | 説明 |
---|---|---|---|
usersProperties
|
ファイルまたはリソースへのパス。
| users.properties
|
ユーザーからパスワードへのマッピングが含まれるファイルまたはリソース。ファイルの形式は
username=password になります。
|
rolesProperties
|
ファイルまたはリソースへのパス。
| roles.properties
|
ユーザーからロールへのマッピングが含まれるファイルまたはリソース。ファイルの形式は
username=role1,role2,role3 になります。
|
password-stacking
| useFirstPass または false
| false
|
このログインモジュールが ID を見つけるため
LoginContext に格納された情報を最初に探すことを示す useFirstPass の値。このオプションは、他のログインモジュールをこのモジュールとスタックする場合に使用できます。
|
hashAlgorithm
|
パスワードをハッシュ化するアルゴリズムを表す文字列。
| none
|
パスワードをハッシュ化するために使用する
java.security.MessageDigest アルゴリズムの名前。デフォルト値はないため、ハッシュを有効にするためにこのオプションを明示的に設定する必要があります。hashAlgorithm が指定された場合は、inputPassword 引数として UsernamePasswordLoginModule.validatePassword に渡す前に CallbackHandler から取得されたクリアテキストパスワードがハッシュ化されます。users.properties ファイルに格納されたパスワードも、同様にハッシュ化する必要があります。
|
hashEncoding
| base64 または hex
| base64
|
hashAlgorithm も設定されている場合、ハッシュ化されたパスワードの文字列形式。
|
hashCharset
|
文字列
|
コンテナのランタイム環境に設定されるデフォルトのエンコーディング。
|
クリアテキストのパスワードをバイトアレイに変換するために使用されるエンコーディング。
|
unauthenticatedIdentity
|
プリンシパル名
|
なし
|
認証情報を含まない要求に割り当てるプリンシパル名を定義します。これにより、保護されていないサーブレットは特定のロールを必要としない EJB でメソッドを呼び出すことができるようになります。このようなプリンシパルは関連付けられたロールを持たず、
unchecked permission 制約に関連付けられたセキュアでない EJB または EJB メソッドにのみアクセスできます。
|
カスタム認証モジュール
認証モジュールは、javax.security.auth.spi.LoginModule
の実装です。カスタム認証モジュールの作成の詳細については、API ドキュメンテーションを参照してください。