跳转到主要内容

SAML 2.0 IdP和SP为Flask和Python 3

项目描述

https://travis-ci.cn/timheap/flask-saml2.svg?branch=master https://badge.fury.io/py/flask-saml2.svg https://readthedocs.org/projects/flask-saml2/badge/?version=latest

此Flask插件提供了创建SAML服务提供者和身份提供者的功能。应用程序可以实现其中一个或两个提供者。

flask-saml2 与Flask 1.0+和Python 3.6+兼容。

这是对 NoodleMarkets/dj-saml-idp 的一个重度修改版本,而 deforestg/dj-saml-idp 则是对 novapost/django-saml2-idp 的修改版本。

术语

有关SAML如何工作的完整描述,请参考互联网上的其他指南。为了快速了解,以及本包中使用的某些术语,请继续阅读。

SAML协议是双方之间的对话: 身份提供者(IdP)服务提供者(SP)。当未认证的客户端(通常是浏览器)访问服务提供者时,服务提供者将发出一个 认证请求(AuthnRequest),使用其私钥对其进行签名,然后将此请求通过客户端转发给身份提供者。一旦客户端在中央身份提供者处登录,身份提供者将做出响应,对其进行签名,并将此响应通过客户端转发给请求的服务提供者。然后,客户端通过中央身份提供者在服务提供者处进行认证,而服务提供者无需了解任何有关认证方法或涉及到的密码。

示例实现

本仓库的 examples/ 目录中提供了一个最小但功能完整的服务提供者和身份提供者的示例实现。要运行示例,首先克隆仓库并安装依赖项。

$ git clone https://github.com/timheap/flask-saml2
$ cd flask-saml2
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -e .
$ pip install -r tests/requirements.txt

接下来,在单独的终端窗口中运行身份提供者和服务提供者。

$ cd flask-saml2
$ source venv/bin/activate
$ ./examples/idp.py
$ cd flask-saml2
$ source venv/bin/activate
$ ./examples/sp.py

最后,导航到 http://localhost:9000/ 访问服务提供者登录页面。

测试

测试运行器是 pytest,我们使用 tox 在不同版本的 Flask 和 Python 上运行测试。可以直接使用 tox 在本地运行测试(最好在虚拟环境中)。

$ pip install tox
$ tox

许可

MIT 许可证 下发布。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

flask-saml2-0.3.0.tar.gz (30.4 kB 查看哈希)

上传时间

由以下机构支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页