身份服务器4使用SAML 2.0作为SSO的外部身份提供者

时间:2018-03-01 22:15:35

标签: asp.net-core-2.0 saml-2.0 identityserver4 asp.net-core-mvc-2.0 sustainsys-saml2

我使用身份服务器4对我的ASP.Net Core解决方案进行身份验证。它与Facebook,谷歌和其他外部身份提供商合作良好。 现在,我正在尝试使用来自https://github.com/Sustainsys/Saml2的Sustainsys.Saml2向身份服务器添加SAML 2.0身份验证,并使其作为外部身份提供者工作。 (我们网站的客户希望使用我们的身份服务器使用他们的SAML身份提供商登录,就像他们可以通过Facebook,Google等登录一样)

我现在拥有的是

  1. 登录网址 - https://sso.domain.com/saml/idp/profile/redirectorpost/sso

  2. 退出网址 - https://sso.domain.com/saml/idp/profile/post/sls

  3. CRT证书 对于我们客户的基于SAML的身份提供商。
  4. 但是,我找不到描述如何在身份服务器4 startup.cs文件中设置SAML 2.0配置的文档。 我认为配置应如下所示,基于以下示例: https://github.com/Sustainsys/Saml2/blob/master/Samples/SampleAspNetCore2ApplicationNETFramework/Startup.cs

    services.AddAuthentication()
        .AddSaml2(options => 
            {
                options.SPOptions.EntityId = new EntityId("..."); 
                options.IdentityProviders.Add(
                    new IdentityProvider(
                            new EntityId("..."), options.SPOptions)
                            {
                                LoadMetadata = true,
                            });
                options.SPOptions.ServiceCertificates.Add(new X509Certificate2("..."));
           }
        );
    

    在示例中有两个网址

    1. https://localhost:44342/Saml2

    2. http://localhost:52071/Metadata

    3. 这些代表什么

      有人可以告诉我如何在身份服务器4中设置SAML2的所有选项吗?

1 个答案:

答案 0 :(得分:10)

  1. 是您的应用程序的实体ID - 对应于open id connect中的客户端ID。
  2. 是上游idp的实体ID。
  3. 另一个分支中有一个示例IdSrv4:https://github.com/Sustainsys/Saml2/tree/netstandard/Samples/SampleIdentityServer4

    <德尔> 该示例使用.NET Core的预览版本,但配置基本相同。

    https://github.com/Sustainsys/Saml2/tree/master/Samples

    中有可用的IdentityServer4示例