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.

Другие вопросы по тегам