颁发者 ITfoxtec.Identity.Saml2 的多个证书

2023-12-15

作为上下文:我正在尝试使用 ITfoxtec.Identity.Saml2 库实现 SAML2.0 身份验证。我想为一个服务提供商使用多个证书,因为不同的客户端可以登录到服务提供商,并且每个客户端都可以拥有自己的证书。我需要第三方登录服务能够在 SAML 请求发生时从我的服务提供商metadata.xml 中的证书列表中进行选择。 ITfoxtec.Identity.Saml2 库是否支持这种可能性,或者是否有一些解决方法可以实现它?谢谢


您通常会有一个 Saml2Configuration。但在你的情况下,我会实现一些 Saml2Configuration 逻辑,我可以在其中请求具有当前证书(SigningCertificate/DecryptionCertificate)的特定 Saml2Configuration。然后在 AuthController 中使用这个特定的 Saml2Configuration。

然后,元数据 (MetadataController) 将调用 Saml2Configuration 逻辑来获取所有证书的列表。

像这样的东西:

public class MetadataController : Controller
{
    private readonly Saml2Configuration config;
    private readonly Saml2ConfigurationLogic saml2ConfigurationLogic;

    public MetadataController(IOptions<Saml2Configuration> configAccessor, Saml2ConfigurationLogic saml2ConfigurationLogic)
    {
        config = configAccessor.Value;
        this.saml2ConfigurationLogic = saml2ConfigurationLogic;
    }

    public IActionResult Index()
    {
        var defaultSite = new Uri($"{Request.Scheme}://{Request.Host.ToUriComponent()}/");

        var entityDescriptor = new EntityDescriptor(config);
        entityDescriptor.ValidUntil = 365;
        entityDescriptor.SPSsoDescriptor = new SPSsoDescriptor
        {
            WantAssertionsSigned = true,
            SigningCertificates = saml2ConfigurationLogic.GetAllSigningCertificates(),
            //EncryptionCertificates = saml2ConfigurationLogic.GetAllEncryptionCertificates(),
            SingleLogoutServices = new SingleLogoutService[]
            {
                new SingleLogoutService { Binding = ProtocolBindings.HttpPost, Location = new Uri(defaultSite, "Auth/SingleLogout"), ResponseLocation = new Uri(defaultSite, "Auth/LoggedOut") }
            },
            NameIDFormats = new Uri[] { NameIdentifierFormats.X509SubjectName },
            AssertionConsumerServices = new AssertionConsumerService[]
            {
                new AssertionConsumerService {  Binding = ProtocolBindings.HttpPost, Location = new Uri(defaultSite, "Auth/AssertionConsumerService") }
            },
            AttributeConsumingServices = new AttributeConsumingService[]
            {
                new AttributeConsumingService { ServiceName = new ServiceName("Some SP", "en"), RequestedAttributes = CreateRequestedAttributes() }
            },
        };
        entityDescriptor.ContactPerson = new ContactPerson(ContactTypes.Administrative)
        {
            Company = "Some Company",
            GivenName = "Some Given Name",
            SurName = "Some Sur Name",
            EmailAddress = "[email protected]",
            TelephoneNumber = "11111111",
        };
        return new Saml2Metadata(entityDescriptor).CreateMetadata().ToActionResult();
    }

    private IEnumerable<RequestedAttribute> CreateRequestedAttributes()
    {
        yield return new RequestedAttribute("urn:oid:2.5.4.4");
        yield return new RequestedAttribute("urn:oid:2.5.4.3", false);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

颁发者 ITfoxtec.Identity.Saml2 的多个证书 的相关文章

  • “HTTP 状态 401 - 身份验证失败:传入 SAML 消息无效”,Salesforce 作为实施 SSO 的 IdP

    我已经使用 Spring SAML 实现了 SSO 一切正常 到目前为止 它已与以下 IDP 合作 1 idp ssocircle com 2 openidp feide no 现在我正在使用 salesforce com 作为我的身份提供
  • ADFS 的 SSO 的 SAML 错误 - MSIS0038:SAML 消息签名错误

    您好 我正在尝试使用 SSO 直接对我的网站的客户用户进行身份验证 我客户的 IDP 是 Microsoft ADFS 我正在使用 Passport SAML https github com bergie passport saml 配置
  • Azure AD - SAML 单点注销 - 不支持的绑定 HTTP-POST

    我正在将 SAML 服务提供商与 MS AAD 集成 并且发现单点注销存在问题 我的服务提供商仅支持注销绑定 HTTP POST 而且AAD似乎只支持注销绑定 HTTP Redirect 根据我从 AAD 获得的 SAML 元数据 我认为是
  • Spring security SAML 可用于在运行时配置 IDP

    我想实施SSO using SAML 2 0在我的网络应用程序中 我见过spring security saml和例子春季启动应用程序 在查看示例后 我想知道以下几件事 是否可以在运行时获取 Idp Url 和证书并使用 spring sa
  • Nuget ITfoxtec SAML 和 Angular

    我对 nuget 示例中描述的功能和我的案例 特别是 core 和 Angular 中描述的功能有疑问 我有一个带有 angular4 的前端 所有请求都通过那里 我用它重定向到 Idp 表格 他再次打电话给我 将断言传递给我 如何使用 A
  • 颁发者 ITfoxtec.Identity.Saml2 的多个证书

    作为上下文 我正在尝试使用 ITfoxtec Identity Saml2 库实现 SAML2 0 身份验证 我想为一个服务提供商使用多个证书 因为不同的客户端可以登录到服务提供商 并且每个客户端都可以拥有自己的证书 我需要第三方登录服务能
  • 如何在运行时在 spring-SAML 中添加新的 idp 元数据

    我正在集成 spring security saml 扩展来支持我的 Web 应用程序中的 SSO 我的应用程序应该允许不同的客户将其 IDP 元数据和证书添加到我的 web 应用程序 这是一个 SP 以便我的 web 应用程序可以针对他们
  • 如何在 SAML 2.0 Web 浏览器 SSO 的 AuthnRequest 中识别主体

    我是 SAML 新手 在完全理解完整的 SAML2 SSO 流程方面遇到了一些困难 具体来说 当服务提供商使用元素响应资源请求时 元素中的哪一部分数据标识要由身份提供商验证的主体 即用户 例如 在以下 AuthnRequest 中似乎没有任
  • Python - 使用 SAML 2.0 登录站点

    我很难找到资源来帮助我解决我遇到的问题 我有一个使用 SAML 2 0 保护的网站 有人可以向我指出显示如何使用 SAML 2 0 登录站点的资源吗 大多数 python 模块似乎都与实现 SAML 2 有关 我只需要登录到实现 SAML
  • IDP 发起的 SSO (SAML) 中是否需要 Keystore/JKSKeyManager?

    我已经使用 Spring SAML 扩展成功实现了 SSO 身份验证 我们的主要要求是支持 IDP 发起的对我们的应用程序的 SSO 好吧 通过使用 spring security saml2 sample 中的配置 即使是 SP 发起的
  • 通过 GET 方法对 SAML Authn 请求进行签名验证失败

    我正在发送一个SIGNED使用 c 和 asp net 向 idp 发出 authnRequest 我的代码对 authnRequest 进行签名 但签名验证在 idp 处失败 Details 我尝试了很多解决方案但没有成功 这就是我正在遵
  • 在 asp.net 中使用 SAML2.0 进行 SSO

    我的要求是在asp net中使用SAML2 0实现SSO 我这边确实有 2 个供应商 想要将用户从一个站点传递到另一站点而不登录第二个站点 我以前从未使用过SAML2 0 谁能帮我看看我该如何完成它 首先让我们区分协议和令牌格式 我假设您正
  • 如何在基于 SimpleSAMLphp 的 IdP 中用属性替换 NameId 的值?

    我正在尝试设置 SimpleSAMLphp IdP 以将 SAML 响应发送到我的本地开发服务器 在本例中是 SP 发起的流程 此 IdP 基于以下来源的 Docker 映像 https hub docker com r kristophj
  • 使用 Angular、node.js 和身份提供商进行 SAML 身份验证

    我想使用 SAML2 实现 SSO 但我不知道如何让它与分布式系统一起工作 其中每个实例都在自己的服务器上独立运行 该环境由三个实例组成 实例 1 有角度的前端 实例 2 node js 后端 使用express js Passport 实
  • SAML 签名证书 - 哪种 SSL 证书类型?

    我们目前正在使用 SAML 2 0 开发 SSL 解决方案 到目前为止 一直使用自签名证书来签署 XML 请求 但是 当我们转向生产时 我们希望使用来自证书颁发机构的证书 但我不太确定要购买什么类型的证书 因为它们都是以网站为中心的 例如单
  • 如何在 SP 元数据中配置自定义属性

    我开始知道 在任何 SSO 解决方案中 如果 SP 需要任何其他属性 它可以使用以下方法在其元数据中发布它们 属性消费服务争论 现在可以添加所需的属性 如下所示
  • 将用户从 SP 中注销,但不从 IDP 中注销

    是否可以将用户从使用 SAML 身份验证的应用程序中注销 但让他们保持登录 IDP 的状态 以便他们可以继续访问其他服务提供商 我希望能够将用户从应用程序中注销 并让他们在返回应用程序时进行身份验证 而无需将其从 IDP 中注销 即我不想使
  • 使用 SAML 2.0 进行 Scala Play Web 应用程序的 SSO

    我正在构建一个 scala play Web 应用程序 我需要使用支持 SAML v2 0 的 IdP 构建 SSO 功能 除了 SSO 之外 我还需要根据从 IdP 收到的角色 作为身份验证断言消息的属性 在应用程序内构建授权机制 我是
  • 使用 Spring Security 将数据库和 SAML 身份验证合并到一个应用程序中

    我正在尝试使用 spring security spring security starter 在 spring boot 2 2 4 应用程序中实现身份验证和授权 使用案例 根据用户名 我想将用户重定向到特定的身份验证提供商 如果用户名结
  • Spring Security SAML2 使用 G Suite 作为 Idp

    我正在尝试使用 Spring Security 5 3 3 RELEASE 来处理 Spring Boot 应用程序中的 SAML2 身份验证 Spring Boot 应用程序将成为 SP G Suite 将成为 IDP 在我的 Maven

随机推荐