小编Luc*_*ere的帖子

通过 Saml2PostBinding 启动 SingleSignOn

将 ITfoxtec 用于 ASP.NET Core 3.0 时遇到问题。
作为上下文,我试图在 Web 应用程序和第三方登录服务之间建立连接。为了预先封装一些可能性,第三方可以访问我们的元数据 url 并为我们的 web 应用程序配置他们的服务。

所需的用户工作流程:

  • 用户进入网络应用程序;
  • 用户单击将用户重定向到登录服务的按钮;
  • 用户登录服务并重定向回给定的 returnURL;
  • 之后,Web 应用程序根据提供的 sso-cookie 确定权限。

目前采取的步骤:

  • 在 appsettings.json 中添加了 Saml2 部分,其中包含我们的 metadata.xml 和颁发者。颁发者名称等于 metadata.xml 中提供的给定 EntityID。它在给定的上下文中是匿名的,如下所示:
"Saml2": {
    "IdPMetadata": "wwwroot/SAML/Metadata.xml",
    "Issuer": "myIssuerName",
    "SignatureAlgorithm": "http://www.w3.org/2000/09/xmldsig#rsa-sha1",
    "CertificateValidationMode": "ChainTrust",
    "RevocationMode": "NoCheck",
    "SigningCertificateFile": "\\licenses\\certificate.pfx",
    "SigningCertificatePassword": "password1"
}, 
Run Code Online (Sandbox Code Playgroud)
  • 在startup.cs中添加了Saml2Configuration;
    services
        .Configure<Saml2Configuration>(Configuration.GetSection("Saml2"))
        .Configure<Saml2Configuration>(configuration =>
        {
            configuration.SigningCertificate = CertificateUtil.Load(
                 $"{Environment.WebRootPath}{Configuration["Saml2:SigningCertificateFile"]}",
                 Configuration["Saml2:SigningCertificatePassword"]);
            configuration.AllowedAudienceUris.Add(configuration.Issuer);

            var entityDescriptor = new EntityDescriptor();
                entityDescriptor.ReadIdPSsoDescriptorFromFile(Configuration["Saml2:IdpMetadata"]);

            if (entityDescriptor.IdPSsoDescriptor == null) throw new Exception("Failed to read the metadata."); …
Run Code Online (Sandbox Code Playgroud)

post saml-2.0 itfoxtec-identity-saml2 asp.net-core-3.0

5
推荐指数
1
解决办法
467
查看次数