Как добавить атрибут электронной почты в утверждение ADL SAML для ADFS для Shibboleth 2.5 как SP

Я успешно настроил Apache 2 с libapache2-mod-shib2 в Debian принять утверждения SAML от ADFS (v2.0, насколько я понимаю)

В ADFS единственным способом, который я обнаружил для передачи идентификатора пользователя, было:

  • Добавьте правило отправки Send LDAP, чтобы получить ActiveDirectory "SAM-Account-Name" в качестве "PPID"
  • Добавить правило прохождения претензии для "PPID"
  • Добавьте правило Transform для преобразования "PPID" в "Name ID" с форматом "Persist Identifier".

По неизвестной причине передача "SAM-Account-Name" непосредственно как "Name ID" не преобразуется в "Persistent Identifier". (Я согласен, я не копался в языке пользовательских правил)

Shibboleth получает атрибут как SAML Assertion - вот выдержка из дешифрованной полезной нагрузки:

<Subject>
  <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">mylogin
  </NameID>
  <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
    <SubjectConfirmationData InResponseTo="_" NotOnOrAfter="2018-06-20T09:16:59.446Z" Recipient="https://myhost.domain/Shibboleth.sso/SAML2/POST"/>
  </SubjectConfirmation>
</Subject>
<Conditions NotBefore="2018-06-20T09:11:59.446Z" NotOnOrAfter="2018-06-20T10:11:59.446Z">
  <AudienceRestriction>
    <Audience>https://myhost.domain/shibboleth
    </Audience>
  </AudienceRestriction>
</Conditions>
<AttributeStatement>
  <Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier">
    <AttributeValue>mylogin
    </AttributeValue>
  </Attribute>
</AttributeStatement>

В качестве значения атрибута mapper по умолчанию переформатирует, мне пришлось заменить оригинал formatter="$NameQualifier!$SPNameQualifier!$Name" в attribute-map.xml как:

<!-- Fourth, the SAML 2.0 NameID Format: -->
<Attribute name="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" id="persistent-id">
    <AttributeDecoder xsi:type="NameIDAttributeDecoder" formatter="$Name" defaultQualifiers="true"/>
</Attribute>

Текущая ситуация удовлетворительная, Apache 2 получает исходное имя пользователя как REMOTE_USER,

После нескольких испытаний мне не удалось применить ту же логику, чтобы добавить "адрес электронной почты" в качестве дополнительного атрибута для утверждения SAML как "AttributeStatement". Какой самый простой способ добиться этого?

0 ответов

Другие вопросы по тегам