用于openidconnect的Flask AppBuilder安全管理器

fab-oidc的Python项目详细描述


用于openidconnect的Flask AppBuilder安全管理器

用于flask_oidc的包装器,该包装器公开一个SecurityManager用于任何Flask AppBuilder应用程序。

它将允许您的用户登录openidconnect提供商,如auth0、okta或google应用程序。

这大致是受这个stackoverflow答案中的代码启发的。(麻省理工学院许可证)

用法

一般

只需覆盖Flask AppBuilder应用程序中的默认安全管理器。

fromfab_oidc.securityimportOIDCSecurityManagerappbuilder=AppBuilder(app,db.session,security_manager_class=OIDCSecurityManager)

Airflow

Airflow在webserver_config.py文件中提供了一个钩子,您可以在其中指定一个安全管理器类。 在webserver_config.py中导入oidcSecurityManager并设置

fromfab_oidc.securityimportAirflowOIDCSecurityManager...SECURITY_MANAGER_CLASS=AirflowOIDCSecurityManager

气流现在要求你的SECURITY_MANAGER_CLASSAirflowSecurityManager的一个子类。 使用特殊的AirflowOIDCSecurityManager,只有在使用此库和Airflow一起使用时才定义该库。

Superset

超集的工作方式与此类似。就像气流一样, SECURITY_MANAGER_CLASS需要是SupersetSecurityManager的一个子类 配置在名为superset_config.py的文件中,钩子被调用 CUSTOM_SECURITY_MANAGER。现在有一种特殊的东西 SupersetOIDCSecurityManager仅当您使用此 超集旁边的图书馆。

fromfab_oidc.securityimportSupersetOIDCSecurityManager...CUSTOM_SECURITY_MANAGER=SupersetOIDCSecurityManager

设置

设置与flask_oidc settings相同,因此请在那里查找引用。

如果您对flask_oidc的默认值满意,那么您唯一真正需要的东西是:

OIDC_CLIENT_SECRETS='/path/to/client_secret.json'

有关如何生成或编写文档,请参见flask_oidc manual client registration文档。

oidc字段配置

如果要更改将用作用户名的默认oidc字段, 名字和姓氏可以在运行的shell中设置以下env变量 您的流程:

exportUSERNAME_OIDC_FIELD='preferred_username'exportFIRST_NAME_OIDC_FIELD='given_name'exportLAST_NAME_OIDC_FIELD='family_name'

版权所有©2018英国政府(司法部数字服务)。有关详细信息,请参见license.txt。

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

推荐PyPI第三方库


热门话题
ArrayList中实体对象上的JAVA泛型   带Redis的爪哇芹菜vs单用Redis   java在设备面向横向时隐藏标题栏/通知栏   java JXTreeTable:如何使用ComponentProvider为一列设置渲染器   java创建异常的成本与记录异常的成本相比   java在方法参数中使用setter传递新对象   java在一个类中的方法与另一个类中的方法交互时遇到问题   java如何迭代2个大小相等的ArrayList   Java getDesktop()。open在Windows中工作,但在Mac中不工作   从tomcat切换到jetty后的java“无法启动嵌入式容器”,Spring引导   java如何使用void方法   java如何在解组时在JAXB的ValidationEventHandler中获取节点值?   如何使用Akka Java API创建不响应的TCP接收器   JavaScriptjQuery在java中将记录上传到数据库时的进度条   如何在重新绘制时在java小程序中显示上一个图像