跳转到主要内容

Flask-AppBuilder SecurityManager for OpenIDConnect

项目描述

Flask-AppBuilder SecurityManager for OpenIDConnect

flask_oidc的包装器,用于暴露一个SecurityManager,以便与任何Flask-AppBuilder应用程序一起使用。

它将允许您的用户使用OpenIDConnect提供者(如Auth0、Okta或Google Apps)进行登录。

这大致受到了这个回答中的代码的启发。(MIT许可 © thijsfranck

用法

通用

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

from fab_oidc.security import OIDCSecurityManager

appbuilder = AppBuilder(app, db.session, security_manager_class=OIDCSecurityManager)

Airflow

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

from fab_oidc.security import AirflowOIDCSecurityManager
...
SECURITY_MANAGER_CLASS = AirflowOIDCSecurityManager

Airflow现在要求您的SECURITY_MANAGER_CLASSAirflowSecurityManager的子类。使用仅在您使用此库与Airflow一起时定义的特殊AirflowOIDCSecurityManager

Superset

Superset 以类似的方式工作。就像在 Airflow 中一样,SECURITY_MANAGER_CLASS 需要是 SupersetSecurityManager 的子类,配置文件名为 superset_config.py,钩子名为 CUSTOM_SECURITY_MANAGER。现在存在一个特殊的 SupersetOIDCSecurityManager,仅在您与 Superset 一起使用此库时定义。

from fab_oidc.security import SupersetOIDCSecurityManager
...
CUSTOM_SECURITY_MANAGER = SupersetOIDCSecurityManager

设置

设置与 flask_oidc 设置 相同,因此请参阅那里以获取参考。

如果您对 flask_oidc 的默认设置满意,您真正需要的是类似以下内容:

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

有关如何生成或编写一个的说明,请参阅 flask_oidc 手动客户端注册 文档。

OIDC 字段配置

如果您想更改默认的 OIDC 字段,用作用户名、名字和姓氏,您可以在运行进程的 shell 中设置以下环境变量:

export USERNAME_OIDC_FIELD='preferred_username'
export FIRST_NAME_OIDC_FIELD='given_name'
export LAST_NAME_OIDC_FIELD='family_name'

版权所有 © 2018 HM 政府司法部数字服务部。有关更多信息,请参阅 LICENSE.txt。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

fab_oidc-0.0.9.tar.gz (4.0 kB 查看哈希值)

上传时间

构建分发

fab_oidc-0.0.9-py3-none-any.whl (4.5 kB 查看哈希值)

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面