Так должны работать расширения WIF для SAML2? - PullRequest
1 голос
/ 12 января 2012

Я скачал WIF Extensions для SAML2 несколько дней назад и экспериментировал с ними.Образцы в загрузке используют приложение WebForms, и я пытаюсь выяснить, как их использовать в MVC3.

В настоящее время я могу выполнить аутентификацию на примере поставщика удостоверений, который поставляется вместе с загрузкой, с помощью этого:

Saml2AuthenticationModule.Current.SignIn(
    "~/sign-on/saml2/success", "urn:samples:identityprovider");

У меня есть метод действия по маршруту / URL-адресу входа в систему / saml2 / success, и когда поток приложения достигает его, Thread.CurrentPrincipal.Identity действительно является экземпляром IClaimsIdentity.Хотя Identity.IsAuthenticated равно true, Identity.Name - пустая строка.(Это будет проблематично в нашем приложении, которое до сих пор использовало FormsAuthentication и полагалось на Identity.Name для разрешения учетной записи пользователя в БД.)

Я также вижу, что в этом файле есть 4 новых кукиpoint:

  1. FedId
  2. FedAuth
  3. FedAuth1
  4. [четвертое имя cookie - это GUID, меняется для каждого SSO]

На данный момент я склонен удалить эти 4 куки и использовать претензии NameIdentifier, чтобы создать новую учетную запись в нашем приложении (если она еще не существует), а затем использовать FormsAuthentication для написания куки .ASPXAUTH для пользователя.,

Первый партнерский IdP, с которым мы будем интегрироваться, использует Shibboleth, и они еще не реализуют SingleLogOut.Поэтому я предполагаю, что следующее, когда мы начнем тестировать эту интеграцию, не окажет никакого влияния:

Saml2AuthenticationModule.Current.SignOut("~/sign-off/saml2/success");

Таким образом, ручное удаление 4 файлов cookie - единственный способ вернуть Identity.IsAuthenticated обратноложное значение.

Я поступаю неправильно?Есть ли какие-либо последствия уничтожения IClaimsIdentity после его использования и передачи в FormsAuthentication, которые я не рассматриваю?

...