У меня установлен поставщик утверждений AD FS, и Shibboleth SP успешно выполняет аутентификацию по нему. Когда я вхожу на сайт, защищенный Shibboleth, в индексе отображаются все заголовки. Я получаю UPN, как ожидалось, но не могу получить другие атрибуты, такие как фамилия или sAMAccountName, для отправки.
В настоящее время у меня есть 3 правила претензий:
Правило 1:
Правило 2:
Правило 3:
Из журналов на машине Shibboleth SP не видно, что sn отправляется как атрибут OID.
Если я отредактирую attribute-map.xml и удалю ссылки на eppn, то в журнале shibd я получу следующее:
2015-06-23 11:29:08 INFO Shibboleth.AttributeExtractor.XML [1]: skipping unmapped SAML 2.0 Attribute with Name: urn:oid:1.3.6.1.4.1.5923.1.1.1.6
В журнале shibd нет упоминания, аналогичного приведенному выше, о фамилии или sn, что заставляет меня полагать, что правило «Transform SN» написано неправильно.
ОБНОВЛЕННАЯ ИНФОРМАЦИЯ:
Мне удалось заставить работать фамилию, изменив правило 1, вводя вручную sn
для выбора раскрывающегося списка surname
. Что мне нужно сделать, чтобы другие поля AD отображались без раскрывающегося списка для работы?
Я добавляю поля такие streetAddress
. Для правила 1 я вручную ввел уличный адрес для атрибута LDAP и типа исходящего утверждения.
Затем я добавил дополнительное правило:
c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress"]
=> issue(Type = "urn:oid:2.5.4.232", Value = c.Value, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
Я не знаю http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress
правильно или нет, но значение не отображается.
Как заставить работать атрибуты LDAP, которые нельзя выбрать в раскрывающемся списке?
Изменить 2:
Я забыл добавить результат выбора View Rule Language (как просил Матье ниже):
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", "streetaddress"), query = ";userPrincipalName,sn,givenName,sAMAccountName,streetaddress;{0}", param = c.Value);
Кажется, это только становится streetaddress
, в то время как все остальные значения имеют схему. Поскольку схемы нет, она не будет соответствовать правилу преобразования для streetaddress
потому что оператор if ищет http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress
. Что мне делать со значениями, которые не выбраны из раскрывающегося списка?
Я понял:
Я изменил правило преобразования на следующее:
c:[Type == "streetaddress"]
=> issue(Type = "urn:oid:2.5.4.232", Value = c.Value, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
Вместо того, чтобы искать схему Type == A, я просто указываю почтовый адрес. Затем в Shibboleth SP я изменил Attribute-map.xml, чтобы добавить следующее:
<Attribute name="urn:oid:2.5.4.232" id="streetaddress"/>
OID выше был произвольным.
Чтобы проверить, работает ли ваше правило "Transform SN" должным образом, установите Скрипач. Затем установите этот инспектор так легче читать сообщения SAML.
С помощью этих инструментов вы сможете увидеть, что отправляется с вашего сервера ADFS на Shibboleth SP. Тогда вы узнаете, на какой стороне ошибка конфигурации.
Изменить: что вы видите на экране №1 в нижней части окна, когда нажимаете кнопку «Просмотр языка правил»? Вы вручную ввели «sn» в поле «Тип исходящей заявки» справа?
Изменить 2: то, что вы вводите в поле, - это именно то, что используется в качестве типа утверждения. Если вы наберете «foo», то ваше утверждение будет «foo». Если вы хотите "http: // foo"вместо этого вы должны ввести"http: // foo". Если вам нужен длинный тип утверждения, вместо того, чтобы вводить все в поле, создайте новое описание утверждения (перейдите в дереве слева," AD FS "->" Служба "->" Описания утверждений "). Это создаст новая опция в раскрывающемся списке, более простая в использовании.