Вопрос № 1 :
Как IIS использует saml2.0 для доступа к adfs?
По моему мнению, IIS необходимо развернуть веб-приложение для доступа к adfsотправив запрос с помощью saml 2.0.
Ответ :
Да. Ты прав.
(1) IIS необходимо развернуть SAML SP (поставщик услуг) для отправки запроса аутентификации SAML в ADFS.
(2) Необходимо настроить ADFS для использования SAML IdP (Identity Provider).
Официальный веб-сайт Microsoft Добавить ADFS в качестве поставщика идентификации SAML содержит инструкциюо том, как настроить ADFS для SAML IdP.
Вопрос № 2 :
Должен ли он использовать isapi или Shibboleth?
Ответ :
Вы можете развернуть Shibboleth SP (поставщик услуг) на IIS.
Официальная ссылка Shibboleth SP с IIS содержит инструкции по развертыванию. Shibboleth SP на IIS.
Дополнительный вопрос № 1 :
Окончательный эффект таков: конечная точка adfs:
iis.*.com/Shibboleth.sso/SAML2/POST
iis.*.com/Shibboleth.sso/SAML2/Artifact
Однако adfs возвращается как сообщение, и я не получил информацию в заголовке запроса через программу на стороне iis
См. Этот веб-сайт Shibboleth SP для IIS で SAML 対 応
Как я могу получить данные, возвращенные adfs через get
Ответ :
(1) Shibboleth SP AssertionConsumerService НЕ предоставляет конечную точку / URL-адрес «HTTP-Redirect» для «GET».
(I) Вы НЕ можете «получить данные, возвращенные adfs через get»,
(II) Вы должны получить данные, возвращаемые adfs через POST.
(2) Предположим, что ваш веб-сайт https://shibbolethiis.int.secioss.work
(I) Конечная точка / URL AssertionConsumerService Shibboleth SP, показанная вашими метаданными Shibboleth SP "https://shibbolethiis.int.secioss.work/Shibboleth.sso/Metadata"
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://shibbolethiis.int.secioss.work/Shibboleth.sso/SAML2/POST" index="1"/>
(II) Цитировать ссылку из вашего комментария, т.е. Shibboleth SP для IIS で SAML 対 応
「Веб-сайт по умолчанию」 を 選 択 し 択IIS を 再 起動 再 ま す。
で れ で ib Shibboleth-SP の 設定 は 終了 で す の の の の の のな が の て い る 場合 、 以下 以下 よ う な な な な の の の の の の の Статус タ 内容 内容 が ОК*https://shibbolethiis.int.secioss.work/Shibboleth.sso/Session
Приведенный выше URL-адрес сеанса Shibboleth SP должен отображать информацию о пользователе, переносимую ответом SAML, отправленным ADFS
Если вы НЕ можете найти какую-либо информацию пользователя по указанному выше URL-адресу сеанса Shibboleth SP
(III.a) Настройка ADFS для отправки пользователяинформация с атрибутом SAML / утверждение SAML / ответ SAML
(III.b) Измените Shibboleth SP "attribute-map.xml", чтобы принимать атрибуты SAML, отправленные ADFS, со ссылкой на пример, предоставленный Shibboleth SPshibboleth-sp-testapp / shibboleth-sp / attribute-map.xml в репозитории GitHub.
Обычно Shibboleth SP использует атрибут SAML, такой как атрибут "mail" (например, ethan.smith@example. com) для входа пользователя на ваш сайт.
(4) Замечания :
(I) Как собрать и запустить Shibboleth SAML IdP и SPИспользование контейнера Docker в репозитории GitHub предоставляет пример конфигурации Shibboleth SP.
(II) Для вашего удобства я сделал новый коммит для добавления атрибутов ADFS в Shibboleth SP shibboleth-sp-testapp / shibboleth-sp / attribute-map.xml в приведенном вышеGitHub хранилище. Обратите внимание, что я использовал те же атрибуты ADFS для успешного входа в учетную запись Box.
(III) Настройка атрибутов для SAML 2.0 и ADFS 3.0 предоставляет ценную информацию и обсуждение того, как Shibboleth SPизвлечь пользовательскую информацию / данные, возвращенные ADFS через "attribute-map.xml".
Последующий вопрос № 2 :
После изменения атрибута. XML и посетите shibboleth.sso / Session, он может отображать следующую информацию.
Attributes mail: 1 value(s)
tel: 1 value(s)
См. Этот сайт Shibboleth SP для IIS IS SAML 対 応
5.動作確認
Display the following information
HTTP_MAIL:ya*@cn.*.com
HTTP_TEL:17*
как я могу получить информацию из заголовка запроса, когда перенаправляю его на glassfish с помощью функции перенаправления HTTP iis?
Ответ :
ДругойВопрос StackOverflow Получение значения Request.Headers предоставляет решение о том, как получить информацию из заголовка запроса с использованием C #, например,
if (Request.Headers["HTTP_MAIL"] != null) {
string user_email = Request.Headers["HTTP_MAIL"];
}
Последующий вопрос № 3:
Вместо того, чтобы спрашивать, как получить заголовки в IIS, у меня возникает вопрос, как получить информацию для входа на glassfish ~ Другими словами, как я могу передать информацию заголовка запроса на glassfish после получения отIis? Я также задал вопрос в glassfish get атрибут shibboleth sp на iis , и он более подробен, чем его текущий комментарий.
Ответ :
С точки зрения кибербезопасности, вы НЕ можете перенаправлять информацию о пользователе, чтобы установить HTTP-сеанс входа в систему для приложения Glassfish. В противном случае хакеры могут использовать ту же информацию о пользователе для входа в приложение Glassfish без какой-либо аутентификации, такой как локальная аутентификация по имени пользователя / паролю или сторонняя аутентификация SAML.
Последующий вопрос № 4 :
когда используется HTTP Redirect (HTTP Rewrite и другие способы тоже подойдут) , Как вышеприведенные значения передаются Glassfish?
в сеансе ничего нет.
itКажется, что использование функции перенаправления HTTP IIS для перенаправления приложения в IIS до его запуска. Другими словами, назначение сеанса, по-видимому, не было выполнено
Правильно ли я это сделал?
Ответ :
(1) ApacheGlassFish, IIS, Jetty и Tomcat можно рассматривать как параллельные веб-серверы для размещения веб-приложений.
Лучшие серверы приложений Java: Tomcat против Jetty против GlassFish против WildFly
Microsoft IIS против Apache Tomcat: В чем различия?
Microsoft IIS and Apache Tomcat belong to "Web Servers" category of the tech stack.
Windows Server 2016 может запускать как веб-сервер IIS 10, так и веб-сервер GlassFish 5.1.0, тогда как веб-сервер IIS 10 и веб-сервер GlassFish 5.1.0 могут запускать свои собственные веб-приложения.
(2) С точки зрения кибербезопасности, другое веб-приложение должно установить свой сеанс входа в систему HTTP на своем внутреннем сервере (таком как Apache, Glassfish, IIS, JETTY и Tomcat) после того, как их пользователь был аутентифицирован сторонним IdP SAML(например, Shibboleth SAML IdP).
Таким образом, вы НЕ можете перенаправлять информацию пользователя из IIS в Glassfish, поскольку IIS и Glassfish должны устанавливать свои собственные различные сеансы HTTP для своего пользователя, которому предоставлен доступ к веб-приложению.
Разрешение :
Вы можете использовать OneLogin Java SAML SP takeit ( Кодировать Java-приложение на Pиспользуйте SSO через OneLogin ) для создания SAML SP для вашего веб-приложения GlassFish на основе Java.
Обратите внимание, что OneLogin SAML SP для вашего веб-приложения GlassFish на основе Java может взаимодействовать с любым IdP SAML, включая их собственный OneLoginSAML IdP, Shibboleth SAML IdP, работающий в Docker-контейнере , или SAML IdP, предоставляемый нашей системой аутентификации и авторизации с нулевым паролем .