OpenIDConnect的FlaskAppBuilder安全管理器
fab-oidc2的Python项目详细描述
用于OpenIDConnect的Flask AppBuilder安全管理器
用于flask_oidc2的包装器,它公开了一个SecurityManager
,可用于任何Flask AppBuilder应用程序。在
它将允许你的用户使用OpenIDConnect提供商(如Auth0、Okta或googleapps)登录。此版本的代码提取OIDC ID令牌的角色信息,并且仅当该角色在应用程序上可用时,才允许请求继续。在
这大概是受stackoverflow答案中的代码启发的。(麻省理工学院许可证)
使用
通用
只需覆盖Flask Appbuilder应用程序中的默认安全管理器。在
fromfab_oidc2.securityimportOIDCSecurityManagerappbuilder=AppBuilder(app,db.session,security_manager_class=OIDCSecurityManager)
Airflow
Airflow在webserver_config.py
文件中提供了一个钩子,您可以在其中指定安全管理器类。
在webserver_config.py
中导入OIDCSecurityManager并设置
气流现在要求您的SECURITY_MANAGER_CLASS
是AirflowSecurityManager
的子类。
使用特殊的AirflowOIDCSecurityManager
,只有当你在气流旁边使用这个库时才定义它。在
Superset
超集的工作原理与此类似。就像气流一样,
SECURITY_MANAGER_CLASS
必须是{superset_config.py
的文件中,钩子被调用
CUSTOM_SECURITY_MANAGER
。现在有一种特殊的
SupersetOIDCSecurityManager
它只在使用时定义
超集旁边的图书馆。在
fromfab_oidc2.securityimportSupersetOIDCSecurityManager...CUSTOM_SECURITY_MANAGER=SupersetOIDCSecurityManager
设置
这些设置与[flask_-oidc settings][flask_-oidc\u-settings]相同,因此可以在那里查找参考。在
如果您对[flask_-oidc]的默认值满意,那么您真正需要的是:
OIDC_CLIENT_SECRETS='/path/to/client_secret.json'
有关如何生成或编写文件,请参阅[flask_oidc manual client registration][flask_oidc_manual_config]文档。在
OIDC字段配置
如果要更改将用作用户名的默认OIDC字段, 名字、姓氏和通过OIDC角色授予访问权限,可以在运行的shell中设置以下env var 您的流程:
exportUSERNAME_OIDC_FIELD='preferred_username'exportFIRST_NAME_OIDC_FIELD='given_name'exportLAST_NAME_OIDC_FIELD='family_name'exportENABLE_ROLE_OIDC_ACCESS='true'exportROLES_OIDC_FIELD='roles'
项目状态
这是项目的一个分支[ministryofjustice/fab-oidc]:https://github.com/ministryofjustice/fab-oidc
版权所有©2018 HM政府(司法部数字服务部)。看到了吗许可证.txt更多细节。在
- 项目
标签: