如何在现有的ASP.net应用程序中使用SAML实现SSO

时间:2015-12-03 11:36:11

标签: asp.net single-sign-on saml azure-active-directory ws-federation

我需要在我们的一个ASP.net Web应用程序中为客户端实现Single SignOn(SSO)。为此,我需要使用以下协议之一。

  1. WS馈
  2. SAML
  3. 身份提供商(客户端的域名)是Microsoft Azure Active Directory。

    我在互联网上搜索过但找不到任何有用的实现。

    如果您已经完成了这段经历,请与我分享您的发现。

3 个答案:

答案 0 :(得分:0)

如果您使用的是商业产品,我们的ComponentSpace SAML v2.0库使您的ASP.NET应用程序可以充当SAML SSO中的身份提供商或服务提供商。只需引用我们的DLL并调用我们的API来启用SAML SSO。可以找到包括免费评估下载在内的更多信息http://www.componentspace.com

答案 1 :(得分:0)

如果您的ASP.NET应用程序是服务提供者(SP)。然后,一个选项是利用Windows Identity Foundation(WIF)库。根据ASP.NET Web应用程序使用的.NET版本,标记添加到web.config的方式略有不同。对于.NET 4.5,您将引入system.identity.model,然后通过<system.identityModel>配置配置WS-Federation,并且您需要使用{{1}设置<system.identityModel.services>配置被动重定向。配置要求您将颁发者设置为Microsoft Azure IdP。 WIF库处理与IdP的所有通信和协议,以便通过WS-Federation返回的嵌入式SAML v1.1令牌的属性可通过<wsfederation>对象提供给您的应用程序。

答案 2 :(得分:0)

最简单的方法是使用Katana中间件。将OWIN 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 }); 方法中:

Camera(vec3 pos(), vec3 fron(), vec3 up(), GLfloat y, GLfloat p, GLfloat r);

您可以找到完整的工作示例on Github