Назад | Перейти на главную страницу

Пользовательская веб-форма для входа в Shibboleth

Недавно я развернул сервер и веб-сайт, который аутентифицируется с помощью системы аутентификации Shibboleth моего университета. Функционально работает отлично. Эстетически здесь много

Когда вы переходите на страницу входа, страница входа перенаправляется на страницу аутентификации пользователя сервера Shibboleth. Хотя это работает, я бы предпочел разместить на своем веб-сайте текстовые поля для имени пользователя и пароля и при отправке передать их в Shibboleth.

Можно ли использовать альтернативную веб-форму и передать информацию в Shibboleth?

Наличие вашей собственной пользовательской формы входа лишило бы смысла использование Shibboleth. Он предназначен для отправки ваших пользователей на их IdP, которые они могут распознать как заслуживающие доверия и аутентифицировать их там, только затем для делегирования утверждений аутентификации и авторизации поставщику услуг.

Если вас не устраивает внешний вид WAYF вашей федерации или IdP учреждения, обратитесь к своей федерации или IdP.

(В качестве примечания, брендинг и внешний вид WAYF и IdP для улучшения пользовательского опыта были одной из тем, обсуждаемых на Конференция по управлению федеративным доступом (FAM10): вероятно, в британской федерации появятся новые вещи, если вы будете ее частью.)

Если кто-то все еще хочет использовать этот подход, мы обнаружили, что это можно сделать, но следует тщательно оценить безопасность (например, SSL-шифрование повсюду, локальные ссылки, как показано ниже).

  1. Вызов директивы SSO клиента с указанной конечной точкой перенаправления (например, / shib / protected /) https://acmesite.com/Shibboleth.sso/Login?target=%2Fshib%2Fprotected%2F

    а. Это действительно можно сделать только с помощью перенаправления, поскольку вы начинаете сталкиваться с проблемами CORS, если пытаетесь выполнить это с помощью AJAX или даже JSONP.

  2. Публикация с использованием правильно названных элементов

    <form id = "login" action = "https://sso-dev.acme.com/idp/Authn/UserPassword" method = "post">
    <input class = "form-element поле формы" name = "j_username" type = "text" value = "">
    <input class = "form-element form-field" name = "j_password" type = "password" value = "">
    <button class = "form-element form-button" type = "submit"> Войти </button>
    </form>