Резервный способ входа в систему для SPNEGO в Websphere 7

Я пробую функцию SPNEGO в Websphere 7. Я хочу разрешить базовую аутентификацию в случае, если клиент не поддерживает SPNEGO.

В моем web.xml у меня есть

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>SampleApp Login</realm-name>
</login-config> 

В консоли администратора Websphere,

под Security -> Global Security -> Web and SIP security -> General settings у меня проверено "Default to basic authentication when certificate authentication for the HTTPS client fails",

а под Security -> Global Security -> Web and SIP security -> SPNEGO Web authentication у меня стоит галочка "Allow fall back to application authentication mechanism".

Когда я использую клиентскую поддержку SPNEGO (например, IE) для доступа к моему веб-приложению, все выглядит нормально. Однако, когда я переключаюсь на клиентов, которые не поддерживают SPNEGO (например, Firefox), он просто показывает сообщение «Аутентификация SPNEGO не поддерживается на этом клиенте». , не запрашивая у меня обычную аутентификацию.

Может ли кто-нибудь дать мне несколько советов о том, что я, возможно, пропустил? Большое спасибо.


person Adrian Shum    schedule 11.09.2012    source источник


Ответы (1)


Короче говоря, вам нужно предоставить URL-адрес, когда SPNEGO не работает.

Вот как вы это делаете:

  1. Подготовьте страницу, которую вы хотите показать при сбое согласования SPNEGO, и запишите адрес к ней.
  2. В административной консоли веб-сферы перейдите в раздел Глобальная безопасность > Веб-аутентификация SPNEGO.
  3. Ищем в списке "Фильтры SPNEGO", кликаем по первому пункту в списке
  4. Теперь вы должны быть в Глобальной безопасности> Веб-аутентификация SPNEGO> yourhost.domain.com
  5. Вставьте адрес на страницу, которая будет отображаться при сбое согласования SPNEGO, в следующем поле: «URL страницы с ошибкой SPNEGO не поддерживается».
  6. Нажмите ОК, сохраните изменения. Если вы не включили «Динамическое обновление SPNEGO», вам необходимо перезапустить.

Подробнее об этом поле см. 8e на следующей странице: Включение и настройка веб-аутентификации SPNEGO с помощью административной консоли

Я сам использовал эту функцию для пользователей, которые не находятся в Active Directory или которые не могут использовать SPNEGO по какой-либо другой причине. У него нежелательное поведение, а именно то, что он плохо интерпретирует страницы utf-8. Но если вы используете только английский алфавит, вы этого не заметите (или если вы используете html-элементы, такие как &aring;.

Вы написали, что firefox не поддерживает SPNEGO, но это не правильно, но нужно сделать небольшую настройку. См. Настройка клиентского браузера для использования SPNEGO для получения дополнительной информации об этом.

person emanciperingsivraren    schedule 26.02.2013
comment
Вы правы для поддержки SPNEGO для Firefox. Я должен был сказать: он не поддерживается по умолчанию. Еще не пробовал реализацию, но мне кажется, что это действительно осуществимое решение :) Еще один вопрос: поскольку я на самом деле делаю сервер, предоставляющий RESTful WS, поэтому кажется немного неуместным создание страницы входа, потому что пользователь на самом деле не используя веб-приложение. Есть ли способ заставить WAS запрашивать детали аутентификации так же, как мы обычно используем аутентификацию BASIC? Спасибо - person Adrian Shum; 27.02.2013
comment
Да, поддержка spengo в FF хорошая, тестирую с ней. Я нашел эту ссылку, я никогда не пробовал это вместе с spnego, но, возможно, это может вам помочь * включить базовую аутентификацию в WAS * настроить, когда spnego должно быть активным Моя идея состоит в том, что вы можете деактивировать spnego для клиентов которые не используют его с фильтрами (ссылка 2) и активной базовой аутентификацией (ссылка 1). Нет гарантий - person emanciperingsivraren; 28.02.2013