Я хотел бы иметь возможность иметь путь на сервере apache (2.4.18+ на ub16), который в первую очередь аутентифицируется с использованием SAML (с использованием плагина mod_auth_mellon) для интерактивного использования, но также поддерживает предварительную отправку вызывающей стороной базовой аутентификации учетные данные. (Подумайте о конечной точке REST api, которая обычно запускает интерактивную форму входа в систему, но позволит обойти, если вы предварительно отправите базовые учетные данные для аутентификации.)
По сути, я ищу такое поведение:
Возможно ли такое? Я бы предпочел НЕ вставлять это обратно в само приложение.
Я НЕ хочу, чтобы сервер apache отправлял ответ, запускающий базовый диалог аутентификации.
Отвечая на мой собственный вопрос .... покопался в этом еще немного и придумал следующее, которое, похоже, работает:
<Location />
<If "-n req('Authorization')">
AuthName "Active Directory"
AuthBasicProvider ldap
AuthType basic
AuthLDAPMaxSubGroupDepth 0
AuthLDAPBindAuthoritative off
AuthLDAPRemoteUserAttribute sAMAccountName
AuthLDAPInitialBindPattern (.+) $1@yyyyy
AuthLDAPInitialBindAsUser on
AuthLDAPSearchAsUser on
AuthLDAPCompareAsUser on
AuthLDAPUrl "ldaps://xxx,dc=com?sAMAccountName,memberOf?sub"
LDAPReferrals Off
require valid-user
</If>
<Else>
Require valid-user
AuthType "Mellon"
MellonEnable "auth"
MellonVariable "cookie"
MellonEndpointPath "/sso"
MellonDefaultLoginPath "/"
MellonSubjectConfirmationDataAddressCheck Off
MellonSessionLength 86400
MellonSPPrivateKeyFile /...../sp-private-key.pem
MellonIdPMetadataFile /...../idp-metadata.xml
MellonDoNotVerifyLogoutSignature https://........
</Else>
</Location>
Кто-нибудь видит что-то плохое в этом подходе?