带有 Django 身份验证的 SAML

     2023-02-15     249

关键词:

【中文标题】带有 Django 身份验证的 SAML【英文标题】:SAML with Django authentication 【发布时间】:2014-05-05 07:03:41 【问题描述】:

我正在使用托管在 AWS 上的 Django 和 nginx。我正在尝试使用他们的 idp 与一所大学集成以进行 SAML 身份验证。关于 SO 有很多过时的答案,但还有什么与当前标准更相关的吗?

我见过的许多应用程序都适用于 django 1.2 及更低版本。具体来说,我正在寻找可以让我通过一些中间件或其他任何东西更轻松地管理 SAML 身份验证的资源。

我看到的一些事情是:

https://github.com/unomena/django-saml2-idp

https://github.com/WiserTogether/django-saml2-sp

【问题讨论】:

【参考方案1】:

SAML 是两个方面:

IDP -> 身份提供方 -> 即大学 SP -> 服务提供商 -> 即您的应用程序

听起来这就是你想要的:https://github.com/WiserTogether/django-saml2-sp。

您必须考虑到 SAML 作为标准是复杂的,因此您可能会发现让图书馆与大学中的 SAML 实施进行对话时遇到问题。您还必须从他们那里获得身份提供者证书公钥,并要求他们将您的应用程序添加到他们身边,并带有特定的实体 ID。而当您开始管理其中的几个时,情况就会变得复杂。

您可能还想查看 Auth0 之类的内容来处理所有这些 SAML 连接。有一个非常简单的python示例https://gist.github.com/woloski/8149412

【讨论】:

这可行,但我发现了一个更新和维护良好的项目。 嘿 KVISH,我正在解决与 Django 项目实现 SAML SSO 完全相同的问题。你最终使用了什么解决方案? @Aman 不确定您是否看到它,但他们回答了自己的问题并指向 djangosaml2。【参考方案2】:

我找到的项目如下:

https://bitbucket.org/lgs/djangosaml2/overview

该项目使用 psaml2 来支持 SAML。 Pysaml2 可以在这里找到:

https://github.com/rohe/pysaml2

请记住,djangosaml2 可能不会使用最新版本的 pysaml2。我测试了它,它工作正常。

更新

djangosaml2 适用于最新版本的pysaml2,但请确保添加此行以使其正常工作:

SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'

这应该在您的settings.py 中。

【讨论】:

更新:djangosaml2 一年多没有更新,缺乏对 Python3 和 Django 1.9 的支持。 我在 django 1.9.4 的生产环境中使用它。我能够做出改变以支持它。 Python 3 我还没有测试过,所以我不确定。 @kvish,我有一个关于使用 djangosaml2 获取我无法弄清楚的元数据的问题。你介意帮助我吗?我已经在djangosaml2 github 上发布了我的问题 链接的项目不再维护。但是,可以使用维护良好的分支on GitHub。【参考方案3】:

您好,我刚刚创建了一个 django saml2 身份验证插件。

https://github.com/fangli/django-saml2-auth

与您的 SAML2 提供商集成非常容易,希望您喜欢。

【讨论】:

你能分享一个你使用这个包的例子吗 我只是为此苦苦挣扎了一下,这对我们的项目很有帮助。在我们的 docker 容器中对依赖项进行排序有点痛苦,但是一旦我们完成了,它就像一个魅力(对我们的用例进行了一些修改)。 如果需要签名响应不要使用这个模块,一旦这个模块doesn't support证书/密钥【参考方案4】:

此库正在积极维护:https://github.com/onelogin/python3-saml/tree/master/demo-django

【讨论】:

使用基于 SAML 的基本身份验证进行身份验证?

】使用基于SAML的基本身份验证进行身份验证?【英文标题】:AuthenticateusingSAML-basedBasicAuthentication?【发布时间】:2015-08-1219:55:40【问题描述】:我有一个用例,其中Web应用程序需要让用户以两种不同的方式进行身份验证,但通过... 查看详情

创建 WCF 休息服务以接受 SAML 并对 Windows 用户进行身份验证

...8-01-1822:43:02【问题描述】:我必须创建一个WCF服务来接收带有SAML断言的请求。在内部,它需要获取Windows用户(调用者用户),然后模拟对应用程序的下一次调用。此应用仅支持AD用户。我试图获 查看详情

基于 SAML 断言授权的 SAML2 身份验证

】基于SAML断言授权的SAML2身份验证【英文标题】:SAML2AuthenticationwithauthorizationbasedonSAMLassertions【发布时间】:2022-01-1703:21:12【问题描述】:我正在使用spring-security-saml2-service-provider针对SAMLIdP对我的SpringBootwebapp进行身份验证-这很... 查看详情

带有内置登录视图和身份验证表单的 Django “记住我”

】带有内置登录视图和身份验证表单的Django“记住我”【英文标题】:Django"RememberMe"withbuilt-inloginviewandauthenticationform【发布时间】:2013-02-1213:40:48【问题描述】:如何重用原始管理员login()和AuthenticationForm为在登录页面选... 查看详情

带有 okta OAUTH 令牌身份验证的 Django Rest API

】带有oktaOAUTH令牌身份验证的DjangoRestAPI【英文标题】:DjangoRestAPIwithoktaOAUTHtokenauthentication【发布时间】:2020-08-2120:34:05【问题描述】:我在使用Okta令牌身份验证时遇到问题,我知道如何使用drf令牌和jwt令牌身份验证进行身份验... 查看详情

带有 jwt 身份验证的 django rest api 要求 csrf 令牌

】带有jwt身份验证的djangorestapi要求csrf令牌【英文标题】:djangorestapiwithjwtauthenticationisaskingforcsrftoken【发布时间】:2018-06-2216:08:10【问题描述】:我是djangorestapi框架的新手。我正在为其余api使用基于JWT令牌的身份验证,并具有以... 查看详情

使用 SAML 和身份提供者的微服务身份验证

】使用SAML和身份提供者的微服务身份验证【英文标题】:microservicesauthenticationusingSAMLandIdentityProvider【发布时间】:2016-10-2407:24:09【问题描述】:我们正在为我们的领域开发微服务。我们需要使用SAML保护微服务。我通读了SAML文... 查看详情

Spring 安全 SAML OpenAM

...布时间】:2017-02-1508:42:15【问题描述】:我正在尝试使用带有angular2的前端和带有SpringBoot的REST后端来开发Web应用程序。我需要管理3种类型的身份验证:-基本的登录名/密码匹配数据库-ldap认证-sso认证当用户通过身份验证时,后... 查看详情

带有 JWT 身份验证实现的 Django GraphQL API 仍然允许来自 Postman 的未经身份验证的请求获取数据。我该如何解决?

】带有JWT身份验证实现的DjangoGraphQLAPI仍然允许来自Postman的未经身份验证的请求获取数据。我该如何解决?【英文标题】:DjangoGraphQLAPIwithJWTauthenticationimplementationstillallowsforunauthenticatedrequestsfromPostmangetdata.HowdoIfixthis?【发布时间】... 查看详情

是否可以在单个应用程序中拥有 SAML 2.0 身份验证和 JWT 身份验证?

】是否可以在单个应用程序中拥有SAML2.0身份验证和JWT身份验证?【英文标题】:IsitpossibletohaveSAML2.0AuthenticationandJWTAuthenticationinasingleApplication?【发布时间】:2019-10-2114:42:26【问题描述】:我们的应用程序目前有自己的使用JWT的身... 查看详情

为微服务中开发的 API 集成 SAML 身份验证

】为微服务中开发的API集成SAML身份验证【英文标题】:IntegrateSAMLauthenticationforAPIsdevelopedinmicroservices【发布时间】:2021-03-1719:39:02【问题描述】:我需要开发一组微服务(其余API)供Web和移动客户端使用,这些微服务位于API网关... 查看详情

使用 Angular、node.js 和身份提供者的 SAML 身份验证

】使用Angular、node.js和身份提供者的SAML身份验证【英文标题】:SAML-Authenticationusingangular,node.jsandanidentityprovider【发布时间】:2021-03-2219:10:03【问题描述】:我想使用SAML2实现SSO。但我不知道如何让它与分布式系统一起工作,其中... 查看详情

JWT 身份验证回退到相同路径的 SAML2

】JWT身份验证回退到相同路径的SAML2【英文标题】:JWTauthenticationwithfallbacktoSAML2forthesamepath【发布时间】:2020-08-0804:39:29【问题描述】:我在我的一个SpringBoot应用程序中使用spring-security-saml2-service-provider进行身份验证,我在另一... 查看详情

将 java webapp 转换为使用 SAML2 身份验证

】将javawebapp转换为使用SAML2身份验证【英文标题】:convertjavawebapptouseSAML2authentication【发布时间】:2013-05-1215:24:16【问题描述】:我在尝试了解如何完成此任务时遇到了一些问题:1)具有数据库身份验证的现有简单webapp。(简单... 查看详情

带有 Spring 会话的 Spring Security SAML

】带有Spring会话的SpringSecuritySAML【英文标题】:SpringSecuritySAMLwithSpringsession【发布时间】:2016-12-0512:48:33【问题描述】:我使用OpenAM作为我的IDP,我的SP(一个angular2SPA)基于在以下位置共享的示例:https://github.com/vdenotaris/spring-bo... 查看详情

使用 SAML 对 Spring Boot 应用程序进行身份验证的问题

】使用SAML对SpringBoot应用程序进行身份验证的问题【英文标题】:IssueusingSAMLforauthenticationwithspringbootapp【发布时间】:2018-04-1619:07:36【问题描述】:我目前正在阅读thisarticle,了解如何使用SpringBoot应用程序设置SAML。我按照所有步... 查看详情

如何创建 SAMLAuthenticationToken 并将其发送到 SAML 身份验证提供程序

】如何创建SAMLAuthenticationToken并将其发送到SAML身份验证提供程序【英文标题】:HowtocreatetheSAMLAuthenticationTokenandsendittotheSAMLauthenticationprovider【发布时间】:2015-08-2716:05:46【问题描述】:我已经在我的应用程序中配置了SAML扩展,并... 查看详情

IDP 的 Spring SAML 预身份验证检查

】IDP的SpringSAML预身份验证检查【英文标题】:SpringSAMLpreauthcheckatIDP【发布时间】:2014-08-1504:43:01【问题描述】:我正在编写几个基于springsecurity和springsecuritysamlextension(RC2)的Web应用程序。我在以基本方式与多个服务提供者和身份... 查看详情