用于烧瓶和python 3的saml 2.0 idp和sp
flask-saml2的Python项目详细描述
这个flask插件提供了创建两个saml服务的功能 提供者和身份提供者。应用程序可以实现 这些提供者。
flask-saml2适用于flask 1.0+和python 3.6+。
这是一个经过大量修改的NoodleMarkets/dj-saml-idp叉子,依次是 是deforestg/dj-saml-idp的叉子,它又是deforestg/dj-saml-idp的叉子 novapost/django-saml2-idp。
术语
有关saml工作原理的完整描述,请在 互联网。简单介绍一下 本软件包中使用的术语,请继续阅读。
saml协议是双方之间的对话: identity providers(idp)和service providers(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
接下来,在单独的终端窗口中运行idp和sp:
$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运行测试 不同版本的烧瓶和Python。测试可以在本地运行,使用 tox直接(最好在虚拟环境中):
$ pip install tox $ tox
许可证
分布在MIT License下面。