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

Ошибка аутентификации SAML с ошибкой MSIS7075

Windows Server 2012 R2

Проверяющая сторона ADFS: RPIdentifier

Конечные точки SAML: https: //myhost.domain/adfs/ls и https://10.2.0.225/saml привязан к POST

Шифрование: Самозаверяющий сертификат, используемый для ADFS, импортируется в диспетчер IIS и используется поставщиком услуг для отправки запроса SAML.

Политики аутентификации: Включена аутентификация как по форме, так и по сертификату

Учетная запись службы ADFS: служба работает с учетной записью, которая является членом следующих групп

Поставщик услуг запрашивает аутентификацию SAML:

<?xml version="1.0"?>
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_eee714b37b1be43404ba" Version="2.0" IssueInstant="2016-08-09T16:02:21.274Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://10.2.0.225/saml" Destination="https://myhost.domain/adfs/ls">
    <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">RPIdentifier</saml:Issuer>
    <samlp:RequestedAuthnContext xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Comparison="exact">
        <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
    </samlp:RequestedAuthnContext>
</samlp:AuthnRequest>

Страница входа появляется, но как только правильные учетные данные вставлены и отправлены, появляется страница с ошибкой, содержащая текст:

Произошла ошибка. Свяжитесь с вашим администратором для получения дополнительной информации.

На сервере ADFS в средстве просмотра событий появляется следующая ошибка:

MSIS7075: запрос аутентификации SAML для профиля WebSSO не должен указывать какие-либо SubjectConfirmations

Я посмотрел Вот (параграф 4.1.4.1), а затем проверил XML-запрос, но я не смог найти ни одного тега «SubjectConfirmations», который подходит в соответствии с тем, что указано в стандарте.

Как я могу выяснить, в чем основная причина проблемы?

Похоже, что signedsamlrequests = true настроено, но вы не отправляете подписанный запрос SAML в AD FS.

Когда вы запускаете команду ниже, она возвращает TRUE?

(get-adfsproperties).signedsamlrequestsrequired

Если да, то используйте команду ниже, чтобы выключить его и снова протестировать.

set-adfsproperties -signedsamlrequestsrequired $false

В идеале вы должны настроить приложение RPIdentifier для отправки подписанных запросов, а затем настроить доверие RP с деталями сертификата, используемого RPIdentifier для подписи запросов.

P.S. Ваша учетная запись службы AD FS не должна быть привилегированной и не должна быть привилегированной. Достаточно просто обычной учетной записи пользователя в AD. Нет необходимости быть членом какой-либо группы, кроме пользователей домена.

Удалить членство учетной записи службы из

• Администраторы • Администраторы домена • Контроллеры домена • Администраторы предприятия • Владельцы-создатели групповой политики • Администраторы схемы

Вашему идентификатору RP действительно нужно знать только сертификат подписи токена, используемый AD FS. Я не совсем понимаю, что вы имели в виду под «шифрованием». Если сертификат подписи токена изменен (путем автоматической смены сертификата или иным образом), вам необходимо обновить сторону идентификатора RP, указав сведения о новом сертификате подписи токена из AD FS. Аналогичным образом, если сертификаты стороны RPIdentifier изменяются, доверие RP в AD FS должно быть обновлено.

Если ваше приложение ожидает, что AD FS будет отправлять зашифрованные утверждения, то RPIdentifier должен предоставить сертификат, который будет использоваться для шифрования. Это будет настроено на доверии RP на стороне AD FS. Обратите внимание, что сертификат предоставляется RPIdentifier.