2015-05-27 2 views
4

Вот как настроена аутентификация. - Клиентский браузер отправляет запрос (URL-адрес ниже) на сервер ADFS клиента, - Клиент ADFS клиента затем просматривает состояние вложенного ретранслятора и перенаправляет запрос на наш сервер ADFS. - Наша ADFS рассмотрит запрос и отправит запрос нашему APP.ADFS не проходит NameID

URL-адрес здесь.

https://clientadfs.clientdomain.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%3A%2F%2ouradfs.ourdomain.com%2Fadfs%2Fls%2F%26RelayState%3DRPID%3Dhttps%3A%2F%2ourapp.ourdomain.com%2Fvaruna%2Fconsole%2Fsso.aspx%3FsamISso%26lang%3Den_CA 

Запрос создает пустую страницу без ошибок на сервере ADFS.

Я получил скрипач, который следил за клиентом. Клиент использует адрес электронной почты пользователей для идентификации пользователей. Я вижу в токене SAML, отправленном в ADFS Клиента, этот адрес электронной почты. Этот токен SAML отправляется на наш сервер ADFS, и я вижу ответ SAML, который выходит из нашего сервера ADFS. Это, однако, не имеет адрес электронной почты пользователя. Я думаю, что это проблема.

На нашем ADFS сервере, у меня есть претензии в этом Клиента (на Иски Provider Trust) для обработки идентификатора пользователя (который является их электронная почта):

Претензия Имя правила: Email Входящий Тип заявки: Имя ID поступления Имя Формат ID: Email Исходящий формат идентификатора имени: Email Пропустите все значения требований.

Вот иск в претензии Правило Язык

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] == "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"] 
=> issue(Type = "Email", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType); 

На ADFS конфигурации клиента, это их электронная почта/Userid конфигурация:

IssuanceTransformRules    : @RuleTemplate = "LdapClaims" 
             @RuleName = "Pass email" 
             c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccou 
             ntname", Issuer == "AD AUTHORITY"] 
             => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/20 
             05/05/identity/claims/nameidentifier"), query = ";mail;{0}", param = c.Value); 

Я понятия не имею, что я делаю неправильно. Может ли кто-нибудь определить мою проблему? или вы можете предложить, на что я должен смотреть?

Благодарим за помощь!

  • RM

ответ

4

«обрабатывать идентификатор пользователя (который является их электронная почта)» ​​

Так это утверждение SAML утверждение для типа электронной почты или по типу идентификатором пользователя? то есть имя утверждения для этого атрибута.

Со стороны ADFS. трансформировать претензии по электронной почте он ожидает типа «http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress»

Update

Вам нужно преобразовать NameID к электронной почте. NameId также имеет «Формат идентификатора входящего имени», который, как я предполагаю, является «электронной почтой». Это необходимо проверить в метаданных SAML.

Так ваше правило требование должно выглядеть следующим образом:

с: [Тип == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Properties [ "http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] == «урна: оазис: имена: дц: SAML: 1.1: NameID-формат: EMAILADDRESS "] => выпуск (тип = " http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress», Эмитент = c.Issuer, OriginalIssuer = c.OriginalIssuer, Значение = c.Value, ValueType = c.ValueType);

Обновление 1

ADFS поддерживает:.

<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat> 
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat> 
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat> 

поэтому формат может быть либо EMAILADDRESS, постоянные или переходные

Попробуйте правило Transform со всеми тремя форматами и посмотрите.

Кроме того, какие претензии вы получаете? Вы можете сбросить их через How to: Access Claims in an ASP.NET Page.

+0

Клиент отправил свою конфигурацию ADFS. вот их конфиг по электронной почте. Я отредактировал оригинальный пост выше – user3618129

+0

Хорошо. Благодарю. Я подумал, что так я и сделал. Преобразование идентификатора имени в электронную почту. Используется «Преобразовать правило входящей заявки». Тип входящей заявки: Идентификатор имени Входящие имя Формат идентификатора: Адрес электронной почты Исходящий формат идентификатора имени: Электронная почта Пропустите все значения требований. – user3618129

+0

Но я вижу, что у вас есть другой «Тип» в ответе. Я не могу это сделать, используя «Преобразовать правило ожидаемого требования». Должен ли я использовать собственное правило? – user3618129

Смежные вопросы