当前位置: 首页 > 知识库问答 >
问题:

具有SAML 2.0作为SSO外部身份提供程序的Identity server 4

曾高杰
2023-03-14

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

我现在拥有的是

>

  • 登录URL-https://sso.domain.com/saml/idp/profile/redirectorpost/sso

    登出URL-https://sso.domain.com/saml/idp/profile/post/sls

    但是,我找不到描述如何在identity server 4启动中设置SAML 2.0配置的文档。cs文件。我认为,根据上提供的示例配置应如下所示: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("..."));
           }
        );
    

    在示例中有两个url的

    >

  • https://localhost:44342/Saml2

    http://localhost:52071/Metadata

    这些代表什么?

    有人能告诉我如何在identity server 4中设置SAML2的所有选项吗?

  • 共有1个答案

    萧韬
    2023-03-14
    1. 是应用程序的实体ID-对应于打开id连接中的客户端ID。
    2. 是上游idp的实体id。

    另一个分支中有一个示例IdSrv4:https://github.com/Sustainsys/Saml2/tree/netstandard/Samples/SampleIdentityServer4

    中有工作标识服务器4示例https://github.com/Sustainsys/Saml2/tree/master/Samples

     类似资料:
    • 我已经设置了AD DS、AD FS,并导出了自签名证书。我已从链接中获得元数据文件: 然而,当我尝试加载它以创建用于创建SAML2.0 IAM角色的身份提供程序时, 它指出此错误: 我们在处理您的请求时遇到以下错误:无法解析元数据 你能帮忙吗?ADFS联邦元数据xml内容/文件中需要更改的是什么?

    • 问题内容: 使用Passport.js是否可以为同一路由指定多个身份验证提供程序? 例如(在护照指南中),我可以在以下示例路线中使用本地策略以及Facebook和Twitter策略吗? 问题答案: Passport的中间件的构建方式使您可以在一个呼叫中使用多种策略。 但是,它是用OR顺序定义的。也就是说,只有在所有策略均未成功返回的情况下,它才会失败。 这是您将如何使用它: 换句话说,使用它的方法

    • 我已经创建了身份提供程序,并且从浏览器中它工作正常。 参考:密钥斗篷身份提供程序后代理登录抛出错误 从浏览器,我可以使用外部IDP登录,如果外部IDP用户不在keycloak中,它会在keyclock中创建,这绝对没问题,并重定向到仪表板。 但我的问题是,我们如何用keycloak rest api实现这个流程? 是否有任何api用于使用外部IDP登录,并将获得外部IDP的令牌以及密钥斗篷的令牌?

    • 我有两个密钥保护实例,A 是 B 的 IdP。从B的登录屏幕中,这按预期工作。但是,我无法让 IDP 启动的 SSO 从 A 到 B 工作。我在 A 中用一个名称(比如“bbbbb”)填充了“IDP 启动的 SSO URL 名称”字段。当我尝试导航到:http://aaaaa/auth/realms/his/protocol/saml/clients/bbbbb 我总是以以下日志记录结束: 22:

    • 我是AWS的新手,正在学习Cognito池。 我计划使用与Cognito联合身份池连接的Cognito用户池。我不想使用带有托管用户界面功能的登录或任何其他登录用户界面登录。 以下情况是否属实/可能:- 从后端使用用户名和密码调用一些Cognoto API时,它可以自动调用配置的用户池联合身份提供程序来验证用户,然后生成JWT令牌。如果是,请您为我指点/指导。 我真的很感激任何帮助。提前谢谢。