У меня настроен поставщик утверждений AD FS и поставщик услуг Shibboleth, успешно прошедший аутентификацию на нем.
Я пытаюсь отправить атрибуты Active Directory поставщику услуг.
Я воспользовался этой статьей, чтобы попытаться отправить претензии: https://technet.microsoft.com/en-us/library/gg317734(v=ws.10).aspx
Соответствующий раздел Step 2: Configure AD FS 2.0 as the Identity Provider and Shibboleth as the Relying Party
--> Configure AD FS 2.0
--> Edit Claim Rules for Relying Party Trust
--> To configure eduPerson claims for sending to a relying party trust
:
В шаге 16 говорится, что мне следует вставить или ввести следующее (и это находится в двух блоках кода):
c:[Type == "http://schemas.xmlsoap.org/claims/Group", Value == "Domain Users"]
и
=> issue(Type = "urn:oid:1.3.6.1.4.1.5923.1.1.1.9", Value = "[email protected]", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
Я полагаю, что это должно было быть единое утверждение (пожалуйста, поправьте меня, если я ошибаюсь), поэтому моя запись выглядит следующим образом:
Я тестирую с givenName, поэтому я добавил следующее:
На машине Shibboleth SP я отредактировал, attribute-map.xml
добавив следующее, а затем перезапустил службу Shibboleth:
<Attribute name="urn:mace:dir:attribute-def:GivenName" id="GivenName"/>
Когда я зашел на сайт и повторно прошел аутентификацию с помощью AD FS, я не вижу givenName. У меня есть файл индекса, который выводит все заголовки и их значения.
Редактировать: Решение моей проблемы
Я получил UPN для отправки как epPN. Вышеуказанные правила (правила в статье) работали, но мне пришлось отредактировать attribute-policy.xml
Shibboleth SP, чтобы отключить правила области действия, поскольку эта часть у меня не была настроена должным образом.
Я закомментировал следующие строки вattribute-policy.xml
afp:AttributeRule attributeID="eppn">
<afp:PermitValueRuleReference ref="ScopingRules"/>
</afp:AttributeRule>
решение1
Да, правило утверждений (отображается в двух строках) — это одно «утверждение». Оно заканчивается на «;». То есть вы добавляете обе строки в одно и то же пользовательское правило.
Для каждого выданного (отправленного) Claim (Attribute) с идентификатором объекта uri вам необходимо добавить пользовательское правило (ниже правила поиска AD). То есть, если вам нужен "urn:oasis:names:tc:SAML:2.0:attrname-format:uri". Если вам нужен только oid uri, то достаточно определить clam в "Claim Descriptions".
Обычно я использую небольшое изменение программы. Я пишу правило поиска с помощью пользовательского интерфейса, но затем копирую правило (из «Просмотр языка правил») в пользовательское правило. В скопированном пользовательском правиле я меняю «issue» на «add». А затем удаляю исходное правило поиска. Это позволяет избежать отправки как URL, так и URN-заявок в Shib.