У меня установлен поставщик утверждений AD FS, и Shibboleth SP успешно выполняет аутентификацию по нему.
Я пытаюсь отправить атрибуты Active Directory на SP.
Я следил за этой статьей, чтобы попытаться отправить претензии: 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 = "member@contoso.com", 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>
Да, правило утверждений (отображается в двух строках) - это одно «утверждение». Он заканчивается на ';'. Т.е. вы добавляете обе строки в одно и то же настраиваемое правило.
Для каждого выданного (отправленного) утверждения (атрибута) с идентификатором объекта uri необходимо добавить настраиваемое правило (под правилом поиска AD). То есть, если вам нужен "urn: oasis: names: tc: SAML: 2.0: attrname-format: uri". Если вам нужен только oid uri, достаточно определить clam в «Описание утверждений».
Обычно я использую небольшие вариации программы. Я пишу правило поиска с помощью пользовательского интерфейса, но затем копирую правило (из «Просмотр языка правил») в настраиваемое правило. В скопированном настраиваемом правиле я меняю «выпуск» на «добавить». А потом удаляю исходное правило поиска. Это позволяет избежать отправки утверждений URL и URN в Shib.