我希望在Python中实现一个基于SAML 2.0的服务提供者。
我的web应用程序目前都是Flask应用程序。我计划制作一个FlaskBlueprint/decorator,它允许我将单点登录功能放到现有的应用程序中。
我已经对python-saml进行了广泛的研究,不幸的是,有一些依赖性问题不值得解决,因为我有太多以前存在的服务器/应用程序,它们的环境将不兼容。
PySAML2看起来它可以工作,但是几乎没有文档,而且什么文档是可用的,我很难理解。烧瓶应用程序中没有使用PySAML2的示例。
我的身份证明人是Okta。我已经设置了Okta,这样在我登录Okta后,就会重定向到我的应用程序。
是否有人可以提供使用PySAML2的建议,或者建议如何最好地使用SAML 2.0对访问我的应用程序的用户进行身份验证?
更新:developer.okta.com上现在有关于using PySAML2 with Okta的详细说明。
下面是一些在Python/Flask中实现SAML SP的示例代码。此示例代码演示了以下几点:
所演示的不是的是执行SP启动的身份验证请求-稍后我将继续讨论。
在某种程度上,我希望创建一个pysaml2的包装器,它具有自以为是的默认值。
最后,与python saml一样,pysaml2库使用
xmlsec1
二进制文件。这也可能导致服务器环境中的依赖关系问题。如果是这样的话,您需要研究用signxml库替换xmlsec1
。以下示例中的所有内容都应使用以下设置:
最后,你需要做的事情,在奥克塔方面的工作。
第一:在Okta应用程序配置的常规选项卡中,配置应用程序以发送“FirstName”和“LastName”属性语句。
第二:在Okta应用程序配置的单点登录选项卡中,获取url并将它们放入名为
example.okta.com.metadata
的文件中。您可以使用下面这样的命令来执行此操作。以下是Python/Flask应用程序处理IdP启动的SAML请求所需的:
相关问题 更多 >
编程相关推荐