Утверждения не передаются проверяющей стороне в ADFS 2.0

Итак, я новичок во всем мире приложений, учитывающих претензии. Мне удалось очень быстро приступить к работе с помощью Azure ACS, но когда я пытался использовать ADFS 2.0 в качестве поставщика удостоверений, все было по-другому (я действительно хочу использовать его в качестве федеративного поставщика, но пока что я Я просто пытаюсь запустить образец, используя его в качестве поставщика удостоверений).

Я смотрел руководств здесь и пытались следовать руководству федерации AD FS 2.0 с пошаговым руководством по приложению WIF, перечисленному там. Он проведет вас через настройку ADFS 2.0 вместе с небольшим примером приложения с поддержкой утверждений, которое можно использовать только для просмотра отправляемых утверждений.

Таким образом, я могу запустить его, пройдя через утверждения, определенные в руководстве (только имя учетной записи Windows). Проблема в том, что я пытаюсь добавить что-то еще. Я могу перейти к приложению проверяющей стороны в графическом интерфейсе ADFS и добавить правило преобразования выдачи, используя шаблон правила Сквозная передача или фильтрация входящих утверждений. Однако, когда я запускаю свое приложение, если только добавленным типом утверждения не является Имя, оно не будет передавать утверждение моему приложению.

Один из тех, что я хотел передать, - это адрес электронной почты пользователя, который вошел в приложение. Поэтому я добавил правило для прохождения адреса электронной почты, а затем обновил файл web.config образца приложения, чтобы раскомментировать эту строку в разделе ClaimTypeRequired:

<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="false" />

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

<auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" Optional="false" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" />

Затем я вошел в графический интерфейс ADFS, перешел в Доверительные отношения проверяющей стороны и выбрал Обновить из метаданных федерации в моем примере приложения. Таким образом, теперь он перечисляет электронное письмо как одно из принятых требований.

Затем я зашел в Доверительные отношения поставщика утверждений и добавил правило утверждения по электронной почте в правила преобразования принятия для доверия поставщика Active Directory (единственное, что в списке).

Однако, когда я запускаю приложение, оно не проходит через электронную почту (или любые другие, которые я пробую). Может кто-нибудь сказать мне, что мне здесь не хватает?

Я также должен отметить, что я провел тест, чтобы изменить свое приложение так, чтобы только принимало правило запроса электронной почты, и оно не только не прошло через электронную почту, но и все еще проходит через учетную запись Windows. Утверждения Name и Name, несмотря на то, что я даже не перечисляю их как принятые утверждения для моего приложения.

Если бы кто-нибудь мог указать, в чем я здесь резко ошибаюсь, это было бы серьезно оценено.

После включения ведения журнала согласно предыдущему сообщению в блоге, вот соответствующие записи из журнала: TraceRecordИдентификатор события 1000, "Вход претензии вызывающего принципала включены в подробности ":  Входная запись журнала утверждений

Как видите, информация, которую я запрашиваю, явно отсутствует. У меня установлен подробный вывод журнала, но на самом деле нет ничего интересного. Вы увидите записи трассировки для пользователя NETWORK SERVICE (с тем же набором утверждений), но ничего особенного. Все записи в журнале информационные, ошибок нет.


person jacderida    schedule 29.07.2011    source источник
comment
AD FS 2.0 (который сам основан на WIF) имеет несколько параметров журнала и трассировки; см. блог опубликуйте диагностику в AD FS 2.0 для получения дополнительных сведений.   -  person MarnixKlooster ReinstateMonica    schedule 29.07.2011
comment
Спасибо, Марникс, теперь я включил подробное ведение журнала и отредактирую свой вопрос, чтобы обеспечить вывод журнала.   -  person jacderida    schedule 01.08.2011
comment
Вы когда-нибудь решали эту проблему? Я сталкиваюсь с аналогичной проблемой, когда мои заявки LDAP вообще не поступают.   -  person    schedule 28.10.2016


Ответы (2)


Если вы используете ADFS в качестве поставщика удостоверений и хотите, чтобы он отправлял запрос по электронной почте, вам необходимо использовать Отправить атрибуты LDAP как утверждения или Правило настраиваемого утверждения, которые обращаются к AD как хранилище атрибутов и отправляет заявку по электронной почте. Сквозная передача используется для входящих заявок, если пользователь уже где-то аутентифицирован. В случае аутентификации Windows имя учетной записи Windows выдается из токена Kerberos, поэтому вы должны передать его, но другие вы должны выдать.

person Eugene S.    schedule 02.08.2011

Выдает ли Active Directory утверждения об адресе электронной почты? Я не знаю, как это проверить, но если это не так, значит, вы их пропускаете. В этом случае вы захотите попробовать правило «Отправлять атрибуты LDAP как утверждения»; на основе того, что я вижу в своем экземпляре ADFS, попробуйте сопоставить атрибут «E-Mail-Addresses» с утверждением «E-Mail Address».

Мне пришлось сделать что-то подобное, чтобы получить заявки UPN, в обстоятельствах, похожих на ваши. Я не уверен, будет ли иметь значение то, что атрибут LDAP может быть множественным числом.

person aschoonmaker    schedule 29.07.2011
comment
Когда вы запускаете FedUtil в студии для добавления ссылки STS, когда вы указываете ее на STS (в данном случае ADFS 2.0), он записывает список утверждений, которые STS выдает в ваш web.config, и адрес электронной почты определенно является одним из их. Так что я не совсем понимаю, что вы имеете в виду, когда говорите, что это не имеет отношения к делу ... - person jacderida; 30.07.2011
comment
Я попробовал это сейчас, когда нахожусь на работе, и он проходит через адрес электронной почты, когда вы используете это правило LDAP, но я до сих пор не понимаю, почему. Кроме того, до сих пор не понимаю, почему он передает мне претензии, которые мне не интересны. - person jacderida; 01.08.2011
comment
Чтобы уточнить, я не уверен, почему адрес электронной почты не приходит, когда вы используете сквозную передачу или фильтрацию входящей заявки. Я заметил в журналах, что запросы, похоже, приходят от пользователя NETWORK SERVICE раньше пользователя E-GAEL2 \ chriso. Считаются ли утверждения в этом запросе «входящим» набором? - person jacderida; 01.08.2011
comment
Насколько я понимаю, Active Directory не выдает заявки на адрес электронной почты. Добавление правила для передачи атрибута LDAP в качестве утверждения берет то, что есть в Active Directory (и атрибут LDAP), а ADFS преобразует это в то, что вы хотите (утверждение адреса электронной почты). - person aschoonmaker; 02.08.2011
comment
Что касается того, почему имя и имя учетной записи Windows все равно будут отправляться, я не знаю, если у вас нет правил преобразования выдачи в информации вашей проверяющей стороны в ADFS, которые создают или передают такие утверждения. - person aschoonmaker; 02.08.2011