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

Python SAML OneLogin-如何支持多个身份提供者

狄河
2023-03-14

我对SAML比较陌生,并且偶然发现了OneLogin Python SAML库。我能够让它启动并运行,我的web应用程序是服务提供商(SP),OneLogin是身份提供商(Idp)。

我希望能够添加对其他身份提供者的支持。然而,我发现python saml库正在使用设置。json获取Idp信息。我已经研究了他们的Github项目中的以下问题,但无法获得可行的解决方案:[1]https://github.com/onelogin/python-saml/issues/64 [2] https://github.com/onelogin/python-saml/issues/52

是否有人成功地使用此库来支持多个身份提供者?

共有1个答案

孔俊友
2023-03-14

这在git repo中得到了回答:

该工具包最初不是设计用于多个IdP,而是设计用于OneLogin IdP,但您只需稍加努力即可支持多个IdP。

在工具箱中,您将看到2个使用设置的演示(django、flask)。包含json对象的js文件。

为了支持多个IdP,您可以将每个IdP SP数据存储在不同的文件中,或者在数据库中存储不同的json对象。

之后,由您的应用程序提供一种机制,将不同的租户与不同的IDP联系起来。大多数人通常通过子域(sometenant.myapp.com)或URL(www.myapp.com/sometenant)来配置他们的应用程序,并为每个租户配置不同的设置

完成后,SAML就是SAML,它应该与支持它的任何IDP一起工作。

 类似资料:
  • 我正在尝试为正在进行的 spring-boot 项目实现身份验证和授权服务。我已经实现了一个基于 JPA 的身份验证提供程序,它工作正常。如何将 LDAP 身份验证提供程序添加到同一项目并根据用户身份验证类型在身份验证方法之间切换? 下面是我的代码 虽然我的LDAP证书是正确的,但它没有达到那个方法。如何从DB ex(LDAP、JPA、SSO)获取我的应用程序的身份验证方法,并执行相应的身份验证提

  • 问题内容: 我的Web应用程序有多个身份验证管理器(一个用于API,一个用于WEB访问)。该api应该仅具有基本的身份验证服务- 通过spring安全标记进行配置,如下所示: 我无法内联身份验证提供程序,因为我希望它可以被子bean配置覆盖。 我的问题是我无法在security:authentication-provider元素上定义别名/ id以在身份验证管理器中引用它。有一个简单的解决方法吗?

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

  • 我的问题是,我希望有两个身份验证提供商 之前:我有我的UserDetailServiceImpl,我根据数据库中的数据验证了用户的身份(不确定是哪个提供者) 现在:我使用了ActiveDirectoryLdapAuthentiation提供程序,如下所示 我成功了,所以我可以认证。 问题是: 我现在无法再使用数据库用户登录,现在只有LDAP。 未使用UserDetailsService,因此用户具

  • 我的目标是使用凭据进行两步身份验证。第一步是检查具有主体的用户是否在特殊数据库表中具有角色。其次是执行标准ldap身份验证。 我需要的是同时执行这两项检查,但身份验证提供程序的常见方法是在任何身份验证提供程序首次成功后声明身份验证成功。因此,我决定创建一个自定义的 AuthenticationProvider 实现,它调用 LdapAuthenticationProvider,然后执行数据库检查逻

  • 我在调试身份验证问题时遇到了这个代码片段: 我在调试和摆弄用户凭证时注意到,如果第一个身份验证提供者(即< code > userdailsservice )无法对我的用户进行身份验证,那么就会远程调用我的LDAP服务器来尝试对我的用户进行身份验证。但是,如果第一个身份验证提供者成功地对我的用户进行了身份验证,则不会调用第二个身份验证提供者。 我的问题是,列出这些身份验证提供者的工作方式是否使得如