Spec-Zone .ru
спецификации, руководства, описания, API
|
Цель этого осуществления состоит в том, чтобы изучить, как использовать Аутентификацию и авторизацию Java (JAAS) API, чтобы выполнить аутентификацию.
JAAS служит стандартной сменной основой аутентификации (ПЭМ) для платформы Java. Приложение использует API JAAS, чтобы выполнить аутентификацию - процесс проверки идентификационных данных пользователя, который использует приложение и собирает его информацию идентификационных данных в контейнер, названный предметом. Приложение может тогда использовать информацию об идентификационных данных в предмете наряду с API JAAS, чтобы сделать решения об авторизации, решить, разрешают ли аутентифицируемому пользователю получить доступ к защищенным ресурсам или выполнить ограниченные действия. Это осуществление демонстрирует Аутентификацию JAAS. Это не демонстрирует Авторизацию JAAS.
Subject.doAs выполнит код, определенный в MyAction как аутентифицируемый пользователь [строки 14-15]. Это служит двум целям. Во-первых, код в MyAction, который запрашивает информацию идентификационных данных для аутентификации к службе, мог получить это от предмета. Это осуществление демонстрирует это использование. Во-вторых, если бы доступы MyAction какие-либо защищенные ресурсы/операции, информация об идентификационных данных в текущем предмете использовалась бы, чтобы принять соответствующее решение управления доступом. Этот второй аспект не покрывается этим осуществлением.
Листинг кода для Jaas.java
.
|
%JAVA_HOME%/bin
находится в пути, и JDK, на который указывают %JAVA_HOME%
переменная указывает на Java на SE 6.% cd auth/src % javac Jaas.javaВы выполните этот код в последующих упражнениях после приведения в порядок некоторого набора. Это заканчивает это осуществление.
Это осуществление, представленное основные классы API JAAS: LoginContext
и Subject
. Вы изучили, как использовать LoginContext
аутентифицировать пользователя и собирать его информацию идентификационных данных в a Subject
. Вы тогда изучили, как использовать Subject
выполнять действие как аутентифицируемого пользователя.
Цель этого осуществления состоит в том, чтобы изучить, как сконфигурировать приложение JAAS, чтобы использовать Kerberos для аутентификации.
Kerberos является интернет-протоколом стандарта для аутентификации доверенной третьей стороны, определенной в
Архитектура Kerberos центрируется вокруг доверяемой службы аутентификации, названной центром распределения ключей, или KDC. Пользователи и службы в среде Kerberos упоминаются как принципалы; каждый принципал совместно использует секрет (такой как пароль) с KDC. Принципал аутентифицирует к Kerberos, доказывая KDC, что это знает совместно используемый секрет. Если аутентификация успешна, KDC выпускает билет выдачи билетов (TGT) к принципалу. Когда принципал впоследствии хочет аутентифицировать к службе на сеть, такую как служба каталогов или файловая служба, (таким образом, действуя как "клиент" службы), это дает TGT KDC, чтобы получить билет службы, чтобы связаться со службой. Мало того, что билет службы указывает на идентификационные данные клиента и принципалов службы, он также содержит сеансовый ключ, который может использоваться клиентом и службой, чтобы впоследствии установить безопасную передачу. Чтобы аутентифицировать к службе, клиент отправляет билет службы службе. Когда служба получает билет, она декодирует это использующий секрет, который она совместно использует с KDC.
В этой архитектуре принципал только аутентифицирует непосредственно (однажды) к KDC. Это аутентифицирует косвенно ко всем другим службам через использование билетов службы. Билеты службы - то, как KDC ручается за идентификационные данные принципала. Возможность принципала получить доступ к многократным безопасным службам, выполняя явную аутентификацию только однажды вызывают единственным входом в систему.
Фон JAAS для этого осуществления:
В JAAS, для клиентского принципала, "регистрирующего в Kerberos", означает получать TGT и помещать это в Subject
, так, чтобы это могло использоваться для аутентификации со службами, к которым получит доступ клиент. Для принципала службы, "регистрирующего в Kerberos", означает получать секретные ключи, что служба должна декодировать входящие запросы аутентификации клиента.
Ресурсы для этого осуществления:
Шаги, чтобы следовать:
src/jaas-krb5.conf
Этот файл содержит две записи, один названный "клиентом" и один названный "сервером". "Клиентская" запись указывает что LoginContext
должен использовать com.sun.security.auth.module.Krb5LoginModule
. Запись "сервера" указывает, что LoginContext должен использовать тот же самый модуль входа в систему, и ключи использования от sample.keytab
файл для принципала host/machineName
.
Листинг кода для jaas-krb5.conf
.
|
Вывод для того, чтобы выполнить пример JAAS, используя клиентскую запись от jaas-krb5.conf
:
|
Вывод для того, чтобы выполнить пример JAAS, используя запись "сервера" от jaas-krb5.conf
.
|
Сводка:
В этом осуществлении Вы изучили, как сконфигурировать приложение JAAS, чтобы использовать модуль входа в систему Kerberos, и как клиентский принципал, кто вводит его/ее имя пользователя/пароль в интерактивном режиме, и как сервис принципал, кто получает его ключи от keytab файла.