0

Мне нужно реализовать Single SignOn (SSO) в одном из наших веб-приложений ASP.net для клиента. Для этого мне нужно использовать один из следующих протоколов.Как реализовать SSO с использованием SAML в существующем приложении ASP.net

  1. WS-Fed
  2. SAML

провайдера идентификации (Domain клиента) является Microsoft Azure Active Directory.

Я искал в Интернете, но не нашел полезной реализации.

Не могли бы вы поделиться со мной своими выводами, если вы прошли этот опыт.

ответ

0

Если вы используете коммерческий продукт, наша библиотека ComponentSpace SAML v2.0 позволяет вашему приложению ASP.NET выступать в качестве поставщика удостоверений или поставщика услуг в SSO SAML. Просто обратитесь к нашей DLL и позвоните нашему API, чтобы включить SAML SSO. Более подробную информацию, включая бесплатную ознакомительную загрузку, можно найти http://www.componentspace.com.

0

Если ваше приложение ASP.NET является поставщиком услуг (SP). Тогда можно было бы использовать библиотеки Windows Identity Foundation (WIF). В зависимости от версии .NET ваше веб-приложение ASP.NET использует некоторые небольшие различия в том, как теги добавляются к web.config. Для .NET 4.5 вы введете system.identity.model, а затем настройте WS-федерию через конфигурацию <system.identityModel>, а также вам необходимо настроить конфигурацию <system.identityModel.services> с пассивной перенаправлением <wsfederation>. Конфигурация требует, чтобы вы настроили эмитента как Microsoft Azure IdP. Библиотеки WIF обрабатывают все коммуникации и протокол с IdP, так что атрибуты встроенного токена SAML v1.1, возвращенные через WS-Federation, доступны вашему приложению через объект ClaimsIdentity.

0

Самый простой способ - использовать промежуточное ПО Katana. Добавить класс Owin Startup к вашему проекту и добавьте к этому методу Configuration:

var tenant = "yourdirectory.onmicrosoft.com"; 
var directory = "https://login.microsoftonline.com"; 
var metadataAddress = string.Format(
    "{0}/{1}/FederationMetadata/2007-06/FederationMetadata.xml", 
     directory, tenant); 

app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); 
app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

app.UseWsFederationAuthentication(
    new WsFederationAuthenticationOptions 
    { 
     Wtrealm = realm, 
     MetadataAddress = metadataAddress 
    }); 

Вы можете найти полный рабочий пример on Github.