Претензии не передаются проверяющей стороне в ADFS 2.0 - PullRequest
6 голосов
/ 29 июля 2011

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

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

Так что я могу запустить его, пройдя через утвержденияопределено в руководстве (только имя учетной записи Windows).Проблема в том, когда я пытаюсь добавить больше.Я могу перейти к приложению проверяющей стороны в графическом интерфейсе ADFS и добавить правило преобразования выдачи, используя шаблон правила Pass Through или Filter Incoming Claim .Тем не менее, когда я запускаю свое приложение, если только тип добавленной заявки не является Имя , он не передает претензию моему приложению.

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

<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.(указан только один).

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

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

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

После включения регистрации в соответствии с постом в блоге ранее, вот соответствующие записи из журнала:TraceRecord Событие с идентификатором 1000, «Входные заявки на вызывающего абонента включены в подробности»: Input claims log entry

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

Ответы [ 2 ]

3 голосов
/ 03 августа 2011

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

2 голосов
/ 30 июля 2011

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

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

...