WS Fed с SAML 1.1 и SAML 2.0 для нескольких клиентов в приложении MVC
У нас есть требование, чтобы наше клиентское приложение MVC предоставляло возможность единого входа нескольким клиентам, подключаясь к своему собственному IDP. Но некоторые из них дают SAML 1.1, который мы уже поддерживаем с использованием WSFederationAuthenticationModule, и некоторые из них недавно отправляют токен SAML 2.0, который вызывает сбой нашего приложения MVC.
Могу ли я использовать WSFederationAuthenticationModule для поддержки токена SAML 2.0?
Какие есть еще альтернативные предложения?
2 ответа
Проблема в том, что 1.1 обеспечивает полный URI, например
" http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
тогда как 1.2 позволяет просто "адрес электронной почты".
Вы можете использовать GetOutputClaimsIdentity
и есть что-то вроде:
outputIdentity.Claims.Add (новая заявка (ClaimTypes.xxx, "остаток URI" + адрес электронной почты));
Я думаю, что нашел решение своей проблемы. Расширение Saml2SecurityTokenHandler решило мою проблему. WsFedAuthenticationModule может успешно преобразовать токен saml2 в утверждения saml 1.1.