Назад | Перейти на главную страницу

отправить заявку NameID без шифрования в ADFS 2.0

Мой поставщик услуг выдает SAML 2.0 AuthRequest с тегом NameIDPolicy следующим образом:

<samlp:NameIDPolicy AllowCreate="true" 
       Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>

Это приводит к тому, что ADFS 2.0 правильно выдает ответ SAML, содержащий зашифрованный токен NameID, созданный правилом, аналогичным найденному. Вот

<NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">    
        MyeHAMeGLojBt7fcc2DQtntXXFka0kybkR42ZTitTUs=</NameID>

Однако пока все хорошо, мой поставщик услуг, похоже, не понимает зашифрованное утверждение NameID и ожидает, что оно будет незашифрованным, в то же время имея формат имени как transient

Согласно этот документ, ADFS2.0 обрабатывает запросы временных или постоянных форматов NameID как сценарии конфиденциальности (и, следовательно, шифрование)

Итак, мой вопрос: есть ли способ заставить ADFS 2.0 сгенерировать утверждение NameID с Format = transient и незашифрованным NameID следующим образом:

<NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">Joe</NameID> 

У нас был клиент, у которого возникла проблема с подключением к нашему веб-приложению. Мы хотели отключить шифрование, чтобы помочь отладить то, что мы получаем. Вот шаги, которые они использовали для отключения шифрования на своем сервере ADFS 2.0:

  • Нажмите Пуск
  • Щелкните Администрирование.
  • Щелкните Модули Windows PowerShell.
  • Затем в командной строке Windows PowerShell введите следующее:

    set-ADFSRelyingPartyTrust –TargetName “target” –EncryptClaims $False
    

Я решил это следующим образом:

  1. Создайте правило, которое извлекает UPN из AD.
  2. Создайте правило преобразования, которое преобразует тип входящего утверждения: UPN к типу Исходящая претензия: Name ID и выберите transient nameid-format из раскрывающегося списка "Формат идентификатора исходящего имени"

Это заставляет AD отправлять NameID в требуемом формате:
<NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">Joe</NameID>

(Я оставлю этот вопрос «без ответа» на время, если у кого-то есть лучшее решение.