Итак, я новичок во всем мире приложений, учитывающих претензии. Мне удалось очень быстро приступить к работе с помощью 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, несмотря на то, что я даже не перечисляю их как принятые утверждения для моего приложения.
Если бы кто-нибудь мог указать, в чем я здесь резко ошибаюсь, это было бы серьезно оценено.
После включения ведения журнала согласно предыдущему сообщению в блоге, вот соответствующие записи из журнала: Идентификатор события 1000, "Вход претензии вызывающего принципала включены в подробности ":
Как видите, информация, которую я запрашиваю, явно отсутствует. У меня установлен подробный вывод журнала, но на самом деле нет ничего интересного. Вы увидите записи трассировки для пользователя NETWORK SERVICE (с тем же набором утверждений), но ничего особенного. Все записи в журнале информационные, ошибок нет.