saml2.0的服务提供程序实现。

pysamlsp的Python项目详细描述


pysamlsp是一个python库,用于在saml2.0 sso环境中实现服务提供者。

此软件包正在积极开发中,但目前尚未完成。请不要试图使用它。

要求

python包

  • python设置工具
  • Python2.7
  • lxml

对于测试:

  • 鼻子
  • 预期值
  • 丁格斯

非python包

  • xmlsec1
  • openssl(尽管xmlsec1可以用gnutls、libgcrypt或nss构建)
  • libxml2
  • libxslt

安装

在这个开发阶段,我还没有上传到Pypi一旦我有了,安装将像:

pip install pysqlsp

同时,您可以克隆此存储库并运行:

python setup.py install

用法

使用配置字典初始化类:

sp_config = dict( ... )

配置字典可能包含以下条目:

  • ‘assertion_consumer_service_url’: The URL of the SSO provider.
  • ‘issuer’: A unique identifier for the service provider; probably should match the entityID attribute of the SP metadata.
  • ‘private_key’: A path for the private key PEM file, required for signing AuthnRequests.
  • ‘sign_authnrequests’: True / False flag to indicate whether AuthnRequests should be signed.
  • ‘certificate’: A path for the certificate file against which a SAMLResponse signature can be verified.

使用samlrequest查询参数创建重定向url:

sp = Pysamlsp(sp_config)
redirect_url = sp.redirect_for_idp()

标识提供程序将投递到service providers metadata.xml中指定的地址。发布字段“samlResponse”将包含(base64encoded,gzip'd)XML响应:

saml_response = query['SAMLResponse']
if sp.idp_response_is_valid(saml_response):
  ...

签名的authnrequests

如果要签署authnrequests,则需要rsa私钥。下面是使用openssl创建密钥的过程

创建私钥,有效期10年:

openssl req -x509 -days 3650 -newkey rsa:1024 -keyout saml_key_pw.pem -out saml.crt

从新密钥中删除密码短语。此库当前不支持带有密码短语的密钥:

openssl rsa -in saml_key_pw.pem -out saml_key.pem

从私钥创建公钥。您将需要此元数据:

openssl rsa -in saml_key.pem -pubout > saml.pub

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从用户输入中找到最大值和最小值?(while循环)   java数据库资源异常   java hibernate查询速度太慢,是否忽略了延迟加载条件?   不带花括号的java IfElse控制流   nextInt()中十进制数输入的java检查   java根据REST中的资源类型发送不同的响应主体   JAVAutil。扫描器Java系统。争论中   对于单个条目,java XSLT到数组的转换失败   java将txt文档预处理为以字符串为键、整数ArrayList为值的hashmap   java获取泛型数组类类型的简单方法?   雅加达ee使用Fast Purge Open API通过java代码清除akamai中的缓存URL   java在OpenNLP中使用parseLine解析后,如何获得没有空格的名词短语作为输入句子?   设置与my GUI的自动交互之间的延迟(Java Swing)