用于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_CLASS
是AirflowSecurityManager
的一个子类。
使用特殊的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。