Spec-Zone .ru
спецификации, руководства, описания, API
|
Аутентификация JAAS выполняется сменным способом, таким образом, приложения Java могут остаться независимыми от базовых технологий аутентификации. Конфигурационная информация, такая как требуемая технология аутентификации определяется во времени выполнения. Источник конфигурационной информации (например, файл или база данных) до тока javax.security.auth.login. Реализация конфигурации. Значение по умолчанию Configuration
реализация от Sun Microsystems читает конфигурационную информацию из конфигурационных файлов, которые описываются в этом документе.
Конфигурационный файл входа в систему состоит из одной или более записей, каждого определения, какая базовая технология аутентификации должна использоваться для определенного приложения или приложений. Структура каждой записи является следующим:
<entry name> { <LoginModule> <flag> <LoginModule options>; <LoginModule> <flag> <LoginModule options>; . . . };
Таким образом каждая запись конфигурационного файла входа в систему состоит из имени, сопровождаемого одним или Более LoginModule-специфичными элементами. Каждый LoginModule-специфичный элемент определяет LoginModule, флаговое значение, и опции, которые передадут к LoginModule. (Они описываются futher ниже.) Каждый LoginModule-специфичный элемент завершается точкой с запятой, и вся группа элементов включается в фигурные скобки. Каждая запись конфигурационного файла завершается точкой с запятой.
Как пример, конфигурационный файл входа в систему, используемый для учебного руководства по Аутентификации JAAS, содержит только одну запись, которая является
JaasSample { com.sun.security.auth.module.Krb5LoginModule required; };
Здесь, запись называют "JaasSample", и это - имя что учебное приложение Аутентификации JAAS (JaasAcn.java
) использование, чтобы обратиться к этой записи. Запись определяет, что LoginModule, который будет использоваться, чтобы сделать пользовательскую аутентификацию, является Krb5LoginModule в com.sun.security.auth.module
пакет и что этот Krb5LoginModule обязан "успешно выполняться" для аутентификации, которую будут считать успешным. Krb5LoginModule успешно выполняется, только если имя и пароль, предоставленное пользователем, успешно используется, чтобы зарегистрировать пользователя в Kerberos KDC.
Имя для записи в конфигурационном файле входа в систему является именем, что использование приложений, чтобы обратиться к записи, когда они инстанцируют LoginContext, как описано в Инстанцировании LoginContext в учебном руководстве по аутентификации JAAS. Имя может быть любым именем, которое разработчик приложений хочет использовать. Здесь, термин "приложение" относится к любому коду, делает вход в систему JAAS, является ли это Вашим приложением (как показано в Аутентификации JAAS и учебных руководствах по Авторизации JAAS) или утилита Login, которая делает операции JAAS для Вас (как показано в Использовании Утилиты Входа в систему JAAS и Использовании GSS-API Java для Безопасных Обменов сообщениями Используя учебные руководства по Утилите Входа в систему JAAS.)
Подразделения каждого LoginModule-специфичного элемента описываются следующим. См. документацию Конфигурации для получения дополнительной информации.
Это определяет полностью определенное имя class для class, который реализует определенную технологию аутентификации. Определенно, class должен реализовать javax.security.auth.spi.LoginModule
интерфейс. Типичный LoginModule может запросить и проверить имя пользователя и пароль. Любой поставщик может обеспечить реализацию LoginModule, которую можно использовать. Некоторые реализации предоставляются JRE от Sun Microsystems. Всюду по этим учебным руководствам мы используем Krb5LoginModule в com.sun.security.auth.module
пакет. Krb5LoginModule использует Kerberos в качестве базовой технологии аутентификации. Можно просмотреть справочную документацию для различного LoginModules, всех в com.sun.security.auth
пакет:
Флаговое значение указывает, требуется ли успех LoginModule, "необходим", "достаточный", или "дополнительный".
Если у указанной реализации LoginModule есть опции, которые могут быть установлены, Вы определяете любые требуемые значения опции здесь. Это - разделенный пробелом список значений, которые передают непосредственно к базовому LoginModule. Опции определяются LoginModule непосредственно, и управляют поведением в пределах этого. Например, LoginModule может определить опции, чтобы поддерживать возможности отладки/тестирования. См. документацию Krb5LoginModule для информации об опциях, определенных для Krb5LoginModule, используемого для всех учебных руководств в этом ряду.
Корректный способ определить опции в конфигурационном файле при использовании соединения значения имени, например debug=true, где имя опции (в этом случае, "отладка") и значение (в этом случае, "истина") должно быть разделено, "равняется" символу.
Конфигурационный файл, который будет использоваться, может быть определен одним из двух способов:
Можно использовать a -Djava.security.auth.login.config
параметр командной строки, чтобы определить конфигурационный файл входа в систему, который должен использоваться. Мы используем этот подход для всех учебных руководств. Например, мы выполняем наш JaasAcn
приложение в учебном руководстве по Аутентификации JAAS, используя следующую команду, которая определяет, что конфигурационный файл jaas.conf
файл в текущем каталоге:
java -Djava.security.auth.login.config=jaas.conf JaasAcn
Альтернативный подход к определению расположения конфигурационного файла входа в систему должен указать на свой URL как на значение a login.config.url.n
свойство в файле свойств безопасности. Файл свойств безопасности java.security
файл, расположенный в lib/security
каталог JRE.
Здесь, n указывает на последовательно пронумерованное целое число, запускающееся с 1. Таким образом, при желании, можно определить больше чем один конфигурационный файл входа в систему, указывая на URL одного файла для login.config.url.1
свойство, URL второго файла для login.config.url.2
свойство, и так далее. Если больше чем один конфигурационный файл входа в систему определяется (то есть, если n> 1), то файлы читаются и связываются в единственную конфигурацию.
Вот пример того, что должно было бы быть добавлено к файлу свойств безопасности, чтобы указать jaas.conf
конфигурационный файл входа в систему используется этим учебным руководством. Этот пример предполагает, что файл находится в C:\AcnTest
каталог на системе Microsoft Windows:
login.config.url.1=file:C:/AcnTest/jaas.conf(Отметьте, что URL всегда используют наклонные черты вправо, независимо от того, какую операционную систему пользователь выполняет.)