Хобрук: Ваш путь к мастерству в программировании

Kerberos и проверка подлинности с помощью форм?

У нас есть система, открытая для внутренних пользователей (у которых есть аутентификация Kerberos) и для третьих лиц, которые могут войти в систему с помощью традиционной формы имени пользователя и пароля. Что мы в настоящее время сделали, так это запустили несколько серверов, некоторые из которых поддерживают Kerberized, скажем, a.mysite.com, а некоторые имеют проверку подлинности с помощью форм, работающую на b.mysite.com.

Я бы хотел, чтобы у нас был один URL-адрес, которым мы делимся с обеими группами, и чтобы сервер определял, доступен ли токен Kerberos. Если это так, то используйте это, в противном случае перенаправляйте на страницу входа. В идеале пользователи остаются на «myproject.mysite.com» все время... но если нам нужно (автоматически) перенаправить их на a.mysite.com или b.mysite.com в зависимости от того, есть ли у них этот токен, это нормально.

Мысли?


  • Какой стек технологий вы используете? Оба типа пользователей аутентифицируются на одном и том же сервере аутентификации в конечном итоге? Какой тип сервера аутентификации вы используете? 09.01.2013
  • Наш сайт представляет собой стек ruby/rails, работающий на Apache (через Passenger), и хранилища учетных данных отличаются. 09.01.2013

Ответы:


1

Этого очень легко добиться. Есть два варианта для вас.

1: Отправить обратно клиенту

WWW-Authenticate: Negotiate
WWW-Authenticate: Kerberos
WWW-Authenticate: Basic (or better yet Digest)

Клиент выберет лучший доступный для него метод.

2: Если вам действительно нужна форма-аутентификация, отправьте

WWW-Authenticate: Negotiate

и представить форму как страницу 401. Разрешить отправку формы на незащищенный контроллер и выполнить аутентификацию формы.

Вы можете использовать mod_auth_kerb или mod_auth_gss для Apache HTTPd и проверить $REMOTE_USER после успешной аутентификации.

Имейте в виду, что если вы хотите, чтобы некоторые пользователи использовали аутентификацию Kerberos, они должны быть частью вашей сети/домена с учетными записями KDC и правильными записями DNS.

18.01.2013
Новые материалы

Решения DBA Metrix
DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

Начало работы с Блум
Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...