Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Krb5LoginModule extends Object implements LoginModule
Это LoginModule
аутентифицирует пользователей, использующих протоколы Kerberos.
Запись конфигурации для Krb5LoginModule
имеет несколько опций, которые управляют процессом аутентификации и дополнениями к Subject
's частные учетные данные устанавливается. Независимо от этих опций, Subject
's основной набор и частный набор учетных данных обновляются только когда commit
вызывается. Когда commit
вызывается, KerberosPrincipal
добавляется к Subject
's основной набор и KerberosTicket
добавляется к Subject
's частные учетные данные.
Если запись конфигурации для KerberosLoginModule
имеет опцию storeKey
набор к истине, тогда KerberosKey
будет также добавлен к частным учетным данным предмета. KerberosKey
, ключ принципала будет или получен из keytab или получен из пароля пользователя.
Это LoginModule
распознает doNotPrompt
опция. Если установлено в истину пользователь не будет запрошен пароль.
Пользователь может определить расположение кэша билета при использовании опции ticketCache
в записи конфигурации.
Пользователь может определить keytab расположение при использовании опции keyTab
в записи конфигурации.
Основное имя может быть определено в записи конфигурации при использовании опции principal
. Основное имя может или быть простым именем пользователя или именем службы такой как host/mission.eng.sun.com
. Принципал может также быть установлен, используя системное свойство sun.security.krb5.principal
. Это свойство проверяется во время входа в систему. Если это свойство не устанавливается, то основное имя от конфигурации используется. В случае, где основное свойство не устанавливается и также не существует основная запись, пользователь запрашивается имя. Когда это свойство записи устанавливается, и useTicketCache
устанавливается в истину, только TGT, принадлежащий этому принципалу, используется.
Следующее является списком параметров конфигурации, поддерживаемых для Krb5LoginModule
:
refreshKrb5Config
:- Установите это в истину, если Вы хотите, чтобы конфигурация была обновлена перед
login
метод вызывают.
useTicketCache
:- Установите это в истину, если Вы хотите, чтобы TGT был получен из кэша билета. Установите эту опцию в ложь, если Вы не хотите, чтобы этот модуль использовал кэш билета. (Значение по умолчанию является Ложью). Этот модуль будет искать кэш билета в следующих расположениях: На Солярисе и Linux это будет искать кэш билета в/tmp/krb5cc_
uid
где uid является числовым идентификатором пользователя. Если кэш билета не будет доступен в вышеупомянутом расположении, или если мы будем на платформе Windows, то это будет искать кэш как {user.home} {file.separator} krb5cc _ {user.name}. Можно переопределить расположение кэша билета при использованииticketCache
. Для Windows, если билет не может быть получен от кэша билета файла, он будет использовать Власти Локальной защиты (LSA) API, чтобы получить TGT.
ticketCache
:- Установите это в имя кэша билета, который содержит TGT пользователя. Если это устанавливается,
useTicketCache
должен также быть установлен в истину; Иначе ошибка конфигурации будет возвращена.
renewTGT
:- Установите это в истину, если Вы хотите возобновить TGT. Если это устанавливается,
useTicketCache
должен также быть установлен в истину; иначе ошибка конфигурации будет возвращена.
doNotPrompt
:- Установите это в истину, если Вы не хотите быть запрошенными пароль, если учетные данные не могут быть получены из кэша, keytab, или через общее состояние. (Значение по умолчанию является ложью), Если установлено в истину, учетные данные должны быть получены через кэш, keytab, или общее состояние. Иначе, аутентификация перестанет работать.
useKeyTab
:- Установите это в истину, если Вы хотите, чтобы модуль получил ключ принципала от keytab. (значение по умолчанию является Ложью), Если
keytab
не устанавливается тогда, модуль определит местоположение keytab от конфигурационного файла Kerberos. Если это не будет определено в конфигурационном файле Kerberos тогда, то это будет искать файл{user.home}{file.separator}
krb5.keytab.
keyTab
:- Установите это в имя файла keytab, чтобы получить секретный ключ принципала.
storeKey
:- Установите это в истину к тому, если Вы хотите, чтобы ключ принципала был сохранен в частных учетных данных Предмета.
principal
:- Имя принципала, который должен использоваться. Принципал может быть простым именем пользователя такой как"
testuser
"или имя службы такой как"host/testhost.eng.sun.com
". Можно использоватьprincipal
опция, чтобы установить принципал, когда есть учетные данные для многократных принципалов вkeyTab
или когда Вы хотите определенный кэш билета только. Принципал может также быть установлен, используя системное свойствоsun.security.krb5.principal
. Кроме того, если это системное свойство будет определено, то оно будет использоваться. Если это свойство не будет установлено, то основное имя от конфигурации будет использоваться.
isInitiator
:- Установите это в истину, если инициатор. Установите это в ложь, если получатель только. (Значение по умолчанию является истиной). Отметьте: не устанавливайте это значение в ложь для инициаторов.
Это LoginModule
также распознает следующее дополнительное Configuration
опции, которые позволяют Вам совместно использовать имя пользователя и пароли через различные модули аутентификации:
useFirstPass if, true, this LoginModule retrieves the username and password from the module's shared state, using "javax.security.auth.login.name" and "javax.security.auth.login.password" as the respective keys. The retrieved values are used for authentication. If authentication fails, no attempt for a retry is made, and the failure is reported back to the calling application. tryFirstPass if, true, this LoginModule retrieves the the username and password from the module's shared state using "javax.security.auth.login.name" and "javax.security.auth.login.password" as the respective keys. The retrieved values are used for authentication. If authentication fails, the module uses the CallbackHandler to retrieve a new username and password, and another attempt to authenticate is made. If the authentication fails, the failure is reported back to the calling application storePass if, true, this LoginModule stores the username and password obtained from the CallbackHandler in the modules shared state, using "javax.security.auth.login.name" and "javax.security.auth.login.password" as the respective keys. This is not performed if existing values already exist for the username and password in the shared state, or if authentication fails. clearPass if, true, this LoginModule clears the username and password stored in the module's shared state after both phases of authentication (login and commit) have completed.
Если основное системное свойство или ключ уже обеспечиваются, значение "javax.security.auth.login.name" в общем состоянии игнорируется.
Когда многократные механизмы, чтобы получить билет или ключ обеспечиваются, привилегированный порядок похож на это:
Отметьте, что, если какой-либо шаг перестал работать, он будет нейтрализация к следующему шагу. Есть только одно исключение, это, шаг общего состояния перестал работать и useFirstPass
=true, никакая пользовательская подсказка не делается.
Примеры некоторых значений конфигурации для Krb5LoginModule в файле конфигурации JAAS и результатах:
doNotPrompt
=true;
Это - недопустимая комбинация начиная ни с одного из useTicketCache
, useKeyTab
, useFirstPass
и tryFirstPass
устанавливается и пользователь не может быть запрошен пароль.
ticketCache
= <имя файла>;
Это - недопустимая комбинация с тех пор useTicketCache
не устанавливается в истину, и ticketCache устанавливается. Ошибка конфигурации произойдет.
renewTGT
=true;
Это - недопустимая комбинация с тех пор useTicketCache
не устанавливается в истину, и renewTGT устанавливается. Ошибка конфигурации произойдет.
storeKey
=true useTicketCache
= истина doNotPrompt
=true;;
Это - недопустимая комбинация с тех пор storeKey
устанавливается в истину, но ключ не может быть получен или запрашивая пользователя или от keytab, или от общего состояния. Ошибка конфигурации произойдет.
keyTab
= <имя файла> doNotPrompt
=true;
Это - недопустимая комбинация, так как useKeyTab не устанавливается в истину, и keyTab устанавливается. Ошибка конфигурации произойдет.
debug=true
Запросите пользователя основное имя и пароль. Используйте обмен аутентификации, чтобы получить TGT от KDC и заполнить Subject
с принципалом и TGT. Выходные сообщения отладки.
useTicketCache
= истина doNotPrompt
=true;
Проверьте кэш по умолчанию на TGT и заполните Subject
с принципалом и TGT. Если TGT не доступен, не запрашивайте пользователя, вместо этого приводите аутентификацию к сбою.
principal
= <имя>useTicketCache
= истина doNotPrompt
=true;
Получите TGT от кэша по умолчанию для принципала и заполните основной и частный набор creds Предмета. Если кэш билета не будет доступен или не будет содержать аутентификацию принципала TGT, то перестанет работать.
useTicketCache
= истина ticketCache
= <имя файла>useKeyTab
= истина keyTab
= <keytab имя файла> principal
= <основное имя> doNotPrompt
=true;
Ищите кэш TGT принципала. Если это не доступное использование ключ в keytab, чтобы выполнить обмен аутентификации с KDC и получить TGT. Предмет будет заполнен с принципалом и TGT. Если ключ не будет доступен или допустим тогда, то аутентификация перестанет работать.
useTicketCache
= истина ticketCache
= <имя файла>
TGT будет получен из определенного кэша. Используемое имя принципала Kerberos будет основным именем в кэше Билета. Если TGT не будет доступен в кэше билета, то пользователь будет запрошен основное имя и пароль. TGT будет получен, используя обмен аутентификации с KDC. Предмет будет заполнен с TGT.
useKeyTab
= истина keyTab
= <keytab имя файла> principal
= <основное имя> storeKey
=true;
Ключ для принципала будет получен от keytab. Если ключ не будет доступен в keytab, то пользователь будет запрошен пароль принципала. Предмет будет заполнен с ключом принципала или от keytab или получен из введенного пароля.
useKeyTab
= истина keyTab
= <keytabname> storeKey
=true doNotPrompt
=true;
Пользователь будет запрошен имя принципала службы. Если долгосрочный ключ принципала будет доступен в keytab, то он будет добавлен к частным учетным данным Предмета. Обмен аутентификации будет предпринят с основным именем и ключом от Keytab. В случае успеха TGT будет добавлен к частному набору учетных данных Предмета. Иначе аутентификация перестанет работать.
useTicketCache
=true ticketCache
= <имя файла>; useKeyTab
= истина keyTab
= <имя файла> storeKey
=true principal
= <основное имя>
TGT клиента будет получен от кэша билета и добавлен к Subject
's частные учетные данные. Если TGT не будет доступен в кэше билета, или имя клиента TGT не соответствует основное имя, то Java будет использовать секретный ключ, чтобы получить TGT использование обмена аутентификации и добавил к частным учетным данным Предмета. Этот секретный ключ будет сначала получен от keytab. Если ключ не будет доступен, то пользователь будет запрошен пароль. В любом случае ключ, полученный из пароля, будет добавлен к частному набору учетных данных Предмета.
isInitiator
= ложь
Сконфигурированный, чтобы действовать как получатель только, учетные данные не получаются через обмен AS. Для получателей только, устанавливает это значение в ложь. Для инициаторов не устанавливайте это значение в ложь.
isInitiator
= истина
Сконфигурированный, чтобы действовать как инициатор, учетные данные получаются через обмен AS. Для инициаторов, набор это значение к истине, или отпуск этот сброс опции, когда значение по умолчанию (истина) будет использоваться.
Конструктор и Описание |
---|
Krb5LoginModule() |
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
abort()
Этот метод вызывают если полная отказавшая аутентификация LoginContext.
|
boolean |
commit()
Этот метод вызывают если полная аутентификация LoginContext, за которой следуют (соответствующий НЕОБХОДИМЫЙ, НЕОБХОДИМЫЙ, ДОСТАТОЧНЫЙ и ДОПОЛНИТЕЛЬНЫЙ LoginModules, за которым следуют).
|
void |
initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
Инициализируйте это
LoginModule . |
boolean |
login()
Аутентифицируйте пользователя
|
boolean |
logout()
Выход из системы пользователь.
|
public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
LoginModule
. initialize
в интерфейсе LoginModule
subject
- Subject
аутентифицироваться. callbackHandler
- a CallbackHandler
для передачи с конечным пользователем (запрашивающий имена пользователей и пароли, например). sharedState
- совместно используемый LoginModule
состояние. options
- опции определяются во входе в систему Configuration
для этой детали LoginModule
.public boolean login() throws LoginException
login
в интерфейсе LoginModule
LoginModule
не должен быть проигнорирован.FailedLoginException
- если аутентификация перестала работать. LoginException
- если это LoginModule
неспособно выполнить аутентификацию.public boolean commit() throws LoginException
Этот метод вызывают если полная аутентификация LoginContext, за которой следуют (соответствующий НЕОБХОДИМЫЙ, НЕОБХОДИМЫЙ, ДОСТАТОЧНЫЙ и ДОПОЛНИТЕЛЬНЫЙ LoginModules, за которым следуют).
Если собственная попытка аутентификации этого LoginModule, за которой следуют (проверенное получение частного состояния, сохраненного login
метод), тогда этот метод связывает a Krb5Principal
с Subject
расположенный в LoginModule
. Это добавляет Учетные данные Kerberos к частный набор учетных данных Предмета. Если собственная аутентификация этого LoginModule, предпринятая отказавший, то этот метод удаляет любое состояние, которое было первоначально сохранено.
commit
в интерфейсе LoginModule
LoginException
- если фиксация перестала работать.public boolean abort() throws LoginException
Этот метод вызывают если полная отказавшая аутентификация LoginContext. (соответствующий НЕОБХОДИМЫЙ, НЕОБХОДИМЫЙ, ДОСТАТОЧНЫЙ и ДОПОЛНИТЕЛЬНЫЙ LoginModules не успешно выполнялся).
Если собственная попытка аутентификации этого LoginModule, за которой следуют (проверенное получение частного состояния, сохраненного login
и commit
методы), тогда этот метод очищает любое состояние, которое было первоначально сохранено.
abort
в интерфейсе LoginModule
LoginException
- если аварийное прекращение работы перестало работать.public boolean logout() throws LoginException
Этот метод удаляет Krb5Principal
это было добавлено commit
метод.
logout
в интерфейсе LoginModule
LoginModule
не должен быть проигнорирован.LoginException
- если выход из системы перестал работать.
Авторское право © 1998, 2011, Oracle и/или его филиалы. Все права защищены.