我怎么能得到元数据从我的Python-Django项目实现SSO?



我有一个Python-Django项目,我正试图与c#/集成。. NET现有网站的SAML身份验证,使用它们的idp.

我绝对需要生成一个元数据文件给谁管理IdP (c#/。网网站)。我在网上搜了好几天,但什么也没找到;我尝试了所有的库(pysaml2, djangosaml2, python3-saml, django-saml2-auth等),但它没有工作!

我如何实现它?

问题:

我绝对需要生成一个元数据文件给谁管理IdP (c#/。网网站)。我在网上搜了好几天,但什么也没找到;我尝试了所有的库(pysaml2, djangosaml2, python3-saml, django-saml2-auth等),但它没有工作!

:

PySAML2/PySAML2是SAML库,djangosaml2是SAML服务提供商(SP)

(1) PySAML2/PySAML2是SAML第2版标准的纯python实现。它包含构建SAML2服务提供者或标识提供者所需的所有部分。

您可以使用PySAML2库为您的Python- django项目开发Python SAML Service Provider (SP),参考djangosaml2的源代码,因为PySAML2库的开发团队也开发了djangosaml2项目,以指导如何使用PySAML2库开发Python SAML SP。

(2) djangosaml2是一个完全兼容的SAML2服务提供商,它是使用PySAML2库开发的。

djangosaml2 Getting Started告诉我们如何通过访问http://localhost:8000/saml2/metadata/获取djangosaml2的SAML SP元数据

因此,当你使用PySAML2库为你的Python- django项目开发Python SAML SP后,你可以访问https://your-Python-Django-app.com/saml2/metadata/来生成/获取你的Python- django项目的Python SAML SP元数据,然后你可以将你的Python SAML SP元数据提供给管理IdP (c#/。网网站)。

(3)如何在GitHub存储库中使用Docker容器构建和运行Shibboleth SAML IdP和SP提供了关于如何构建和运行Shibboleth SAML IdP和SAML SP测试平台来测试您的SAML SP应用程序的说明。

SAML SP可以通过使用用于开发SAML IdP的不同编程语言来开发。因此,你也可以使用基于java的Shibboleth IdP来测试Python的SAML SP,如果你将Python- django项目的SAML SP元数据上传到Shibboleth - IdP -dockerized/ext-conf/metadata并配置Shibboleth - IdP -dockerized/ext-conf/conf/metadata-providers.xml和reli-party .xml。

在您使用PySAML2库为您的Python- django项目开发Python SAML服务提供商(SP)之前,您可以使用上述基于java的Shibboleth SAML IdP和SP测试平台(已在Ubuntu 22.04上验证)来获得SAML IdP和SAML SP之间身份验证的大图片。