При возврате из Azure ACS я получаю результат проверки подлинности федерации внутри FormCollection. Значение, содержащее нужную мне информацию, находится внутри зашифрованного значения, которое называется «результат». У меня возникли проблемы с расшифровкой этого значения, чтобы использовать его для дальнейшей аутентификации.
Я не хочу использовать WSFederationAuthenticationModule, потому что я не разрешаю установку файлов cookie. Когда модуль используется, он автоматически устанавливает файлы cookie авторизации с типом Federated-Authentication.
Вместо этого я хочу получить утверждения, содержащиеся в wresult, а затем установить свой собственный токен безопасности (будь то JWT, SAML 2.0 или что-то еще).
Единственный возможный обходной путь, который я нашел до сих пор, — это использовать FAModule, а затем сразу же удалить файл cookie токена сеанса. Но это приведет к тому, что auth-cookies будут установлены дважды в ответе, со значением и сразу же отключены.
В конечном итоге я хочу добиться следующего: Предоставление возможности аутентификации с помощью сайта форм или аутентификации с использованием любого поставщика удостоверений в Azure ACS. Используя проверку подлинности с помощью форм, я могу сразу же сравнить имя пользователя и пароль и установить токен безопасности с любыми утверждениями, которые я хочу иметь. Но при использовании Azure ACS я хочу сначала сравнить полученный идентификатор имени с сохраненными значениями в моей базе данных, а затем установить свой собственный токен безопасности вместо маркера федерации WS. Или, если идентификатор имени неизвестен, я хочу перенаправить на страницу форм, где пользователь может аутентифицировать этот идентификатор имени с помощью своих учетных данных. Я не хочу, чтобы возвращаемое azure ACS значение рассчитывалось как прошедшее проверку подлинности.