Конфигурация: ADFS 2.0 как IdP (поддерживаются как WS-Federation, так и SAML 2.0), приложение ASP.NET в качестве поставщика услуг. Когда SPS запрашивает ADFS со стандартом WS-Federation (используется WIF), он позволяет мне автоматически войти в систему ADFS без всплывающего окна входа в систему, даже если начался новый сеанс, так что токен Kerberos выполняет свою работу так, как ожидалось. Однако в случае использования SAML 2.0 (ComponentSpace.SAML.2 lib) каждый раз, когда я открываю IE9 и перенаправляюсь в ADFS, меня просят ввести учетные данные домена Windows в стандартном маленьком всплывающем окне входа. Является ли какой-либо параметр SAML 2.0 или другой способ, позволяющий мне избавиться от этого окна, как в случае с WS-Fed? БлагодаряПрозрачный SSO с SAML (аутентификация IE, SAML 2.0, ADFS, Kerberos)
ответ
adfsserver.us.mycompanyname.com/adfs/ls находится в зоне Интернета, и автоматический вход в систему не произойдет.
adfsserver/adfs/ls находится в вашей зоне Intranet в IE и будет автоматически регистрироваться.
Вы можете добавить имя пользователя adfsserver.us.mycompanyname.com в список сайтов доверенных (или интрасети), и вам не следует запрашивать учетные данные.
Try: urn:federation:authentication:windows
вместо: urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
в этой части запроса аутентификации 2,0 SAML:
<saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:federation:authentication:windows</saml:AuthnContextClassRef>
К сожалению, я не могу найти способ сделать это с помощью Component Space SAML v.2. Существует объект AuthnRequest, который используется для формирования запроса на аутентификацию SAML 2.0, но в этом нет ссылки на этот класс проверки подлинности. – YMC
Это не ответ, это достаточно обновить мой вопрос, но это важно, и я решил чтобы дать ему ответ, чтобы привлечь к нему больше внимания. То, что я выяснил, играя с параметрами SAML в течение нескольких дней, состоит в том, что он не зависит от протокола (WS-Federation/SAML2). На самом деле это зависит от длинного/короткого имени домена сервера adfs, поэтому запрос на аутентификацию, такой как https://adfsserver.us.mycompanyname.com/adfs/ls, отображает это окно, а https://adfsserver/adfs/ls - нет. Однако я не могу использовать короткое доменное имя для SAML 2.0, я получаю ошибку в этом случае: «MSIS1006: настроенная пассивная конечная точка https://adfsserver.us.mycompanyname.com/adfs/ls/» не является префиксом входящего сообщения SAML Destination URI 'https: // adfsserver/adfs/ls /' ". Кстати, мы используем SSO только в нашей локальной интрасети, поэтому я не знаю, почему это исключение происходит. Любое обходное решение?
Вы можете изменить пассивный сервер конечных точек следующих шагов, указанных ниже:
http://breakingdevelopment.blogspot.in/2012/12/adfs-msis1006-i-am-working-on-sso.html
- Открыть ADFS 2.0 Service Manager
- Выбрать "Редактировать Свойства службы федерации ..." в верхнем правом углу. Это вызовет окно свойств службы федерации
- Измените идентификатор службы федерации в соответствии с URL-адресом поставщика удостоверений (IdPURL), переданным из вашего приложения единого входа.
Что обеспечивает поддержку SAML в вашем RP? Вы используете WIF или что? – nzpcmad
Библиотека ComponentSpace.SAML.2 используется для перенаправления пользователя в ADFS 2.0, так же, как это делается в образцах, предоставляемых библиотекой. Протокол POST – YMC