%global _empty_manifest_terminate_build 0 Name: python-fab-oidc Version: 0.0.9 Release: 1 Summary: Flask-AppBuilder SecurityManager for OpenIDConnect License: MIT URL: https://github.com/ministryofjustice/fab-oidc/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a4/19/0ff0bb46a69fcc0773be2d370dee459bf5c880929236e2c6eb23e6dc1966/fab_oidc-0.0.9.tar.gz BuildArch: noarch Requires: python3-Flask-AppBuilder Requires: python3-Flask-OIDC Requires: python3-Flask-Admin %description # Flask-AppBuilder SecurityManager for OpenIDConnect Wrapper for [flask_oidc] that exposes a `SecurityManager` for use with any Flask-AppBuilder app. It will allow your users to login with OpenIDConnect providers such as Auth0, Okta or Google Apps. This is roughly inspired by the code in this [stackoverflow](https://stackoverflow.com/a/47787279/44252) answer. (MIT Licenced © [thijsfranck](https://stackoverflow.com/users/8905583/thijsfranck)) ## Usage ### Generic Just override the default security manager in your Flask Appbuilder app. ```python from fab_oidc.security import OIDCSecurityManager appbuilder = AppBuilder(app, db.session, security_manager_class=OIDCSecurityManager) ``` ### [Airflow] Airflow provides a hook in the `webserver_config.py` file where you can specify a security manager class. In `webserver_config.py` import the OIDCSecurityManager and set ```python from fab_oidc.security import AirflowOIDCSecurityManager ... SECURITY_MANAGER_CLASS = AirflowOIDCSecurityManager ``` Airflow now requires that your `SECURITY_MANAGER_CLASS` is a subclass of `AirflowSecurityManager`. Use the special `AirflowOIDCSecurityManager` that is only defined if you're using this library alongside Airflow. ### [Superset] Superset works in a a similar way. Just as in Airflow, `SECURITY_MANAGER_CLASS` needs to be a subclass of `SupersetSecurityManager` the config is in a file called `superset_config.py` and the hook is called `CUSTOM_SECURITY_MANAGER`. There now exists a special `SupersetOIDCSecurityManager` that is only defined if you are using this library alongside Superset. ```python from fab_oidc.security import SupersetOIDCSecurityManager ... CUSTOM_SECURITY_MANAGER = SupersetOIDCSecurityManager ``` ## Settings The settings are the same as the [flask_oidc settings][flask_oidc_settings], so look there for a reference. if you're happy with [flask_oidc]'s defaults the only thing you'll really need is something like: ```python OIDC_CLIENT_SECRETS = '/path/to/client_secret.json' ``` see the [flask_oidc manual client registration][flask_oidc_manual_config] docs for how to generate or write one. ### OIDC Field configuration If you like to change the default OIDC field that will be used as a username, first name and last name you can set the following env var in the shell you run your process: ```bash export USERNAME_OIDC_FIELD='preferred_username' export FIRST_NAME_OIDC_FIELD='given_name' export LAST_NAME_OIDC_FIELD='family_name' ``` Copyright © 2018 HM Government (Ministry of Justice Digital Services). See LICENSE.txt for further details. [flask_oidc]: http://flask-oidc.readthedocs.io/en/latest/ [flask_oidc_settings]: http://flask-oidc.readthedocs.io/en/latest/#settings-reference [flask_oidc_manual_config]: http://flask-oidc.readthedocs.io/en/latest/#manual-client-registration [Airflow]: https://airflow.apache.org/ [Superset]: https://superset.incubator.apache.org/ %package -n python3-fab-oidc Summary: Flask-AppBuilder SecurityManager for OpenIDConnect Provides: python-fab-oidc BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-fab-oidc # Flask-AppBuilder SecurityManager for OpenIDConnect Wrapper for [flask_oidc] that exposes a `SecurityManager` for use with any Flask-AppBuilder app. It will allow your users to login with OpenIDConnect providers such as Auth0, Okta or Google Apps. This is roughly inspired by the code in this [stackoverflow](https://stackoverflow.com/a/47787279/44252) answer. (MIT Licenced © [thijsfranck](https://stackoverflow.com/users/8905583/thijsfranck)) ## Usage ### Generic Just override the default security manager in your Flask Appbuilder app. ```python from fab_oidc.security import OIDCSecurityManager appbuilder = AppBuilder(app, db.session, security_manager_class=OIDCSecurityManager) ``` ### [Airflow] Airflow provides a hook in the `webserver_config.py` file where you can specify a security manager class. In `webserver_config.py` import the OIDCSecurityManager and set ```python from fab_oidc.security import AirflowOIDCSecurityManager ... SECURITY_MANAGER_CLASS = AirflowOIDCSecurityManager ``` Airflow now requires that your `SECURITY_MANAGER_CLASS` is a subclass of `AirflowSecurityManager`. Use the special `AirflowOIDCSecurityManager` that is only defined if you're using this library alongside Airflow. ### [Superset] Superset works in a a similar way. Just as in Airflow, `SECURITY_MANAGER_CLASS` needs to be a subclass of `SupersetSecurityManager` the config is in a file called `superset_config.py` and the hook is called `CUSTOM_SECURITY_MANAGER`. There now exists a special `SupersetOIDCSecurityManager` that is only defined if you are using this library alongside Superset. ```python from fab_oidc.security import SupersetOIDCSecurityManager ... CUSTOM_SECURITY_MANAGER = SupersetOIDCSecurityManager ``` ## Settings The settings are the same as the [flask_oidc settings][flask_oidc_settings], so look there for a reference. if you're happy with [flask_oidc]'s defaults the only thing you'll really need is something like: ```python OIDC_CLIENT_SECRETS = '/path/to/client_secret.json' ``` see the [flask_oidc manual client registration][flask_oidc_manual_config] docs for how to generate or write one. ### OIDC Field configuration If you like to change the default OIDC field that will be used as a username, first name and last name you can set the following env var in the shell you run your process: ```bash export USERNAME_OIDC_FIELD='preferred_username' export FIRST_NAME_OIDC_FIELD='given_name' export LAST_NAME_OIDC_FIELD='family_name' ``` Copyright © 2018 HM Government (Ministry of Justice Digital Services). See LICENSE.txt for further details. [flask_oidc]: http://flask-oidc.readthedocs.io/en/latest/ [flask_oidc_settings]: http://flask-oidc.readthedocs.io/en/latest/#settings-reference [flask_oidc_manual_config]: http://flask-oidc.readthedocs.io/en/latest/#manual-client-registration [Airflow]: https://airflow.apache.org/ [Superset]: https://superset.incubator.apache.org/ %package help Summary: Development documents and examples for fab-oidc Provides: python3-fab-oidc-doc %description help # Flask-AppBuilder SecurityManager for OpenIDConnect Wrapper for [flask_oidc] that exposes a `SecurityManager` for use with any Flask-AppBuilder app. It will allow your users to login with OpenIDConnect providers such as Auth0, Okta or Google Apps. This is roughly inspired by the code in this [stackoverflow](https://stackoverflow.com/a/47787279/44252) answer. (MIT Licenced © [thijsfranck](https://stackoverflow.com/users/8905583/thijsfranck)) ## Usage ### Generic Just override the default security manager in your Flask Appbuilder app. ```python from fab_oidc.security import OIDCSecurityManager appbuilder = AppBuilder(app, db.session, security_manager_class=OIDCSecurityManager) ``` ### [Airflow] Airflow provides a hook in the `webserver_config.py` file where you can specify a security manager class. In `webserver_config.py` import the OIDCSecurityManager and set ```python from fab_oidc.security import AirflowOIDCSecurityManager ... SECURITY_MANAGER_CLASS = AirflowOIDCSecurityManager ``` Airflow now requires that your `SECURITY_MANAGER_CLASS` is a subclass of `AirflowSecurityManager`. Use the special `AirflowOIDCSecurityManager` that is only defined if you're using this library alongside Airflow. ### [Superset] Superset works in a a similar way. Just as in Airflow, `SECURITY_MANAGER_CLASS` needs to be a subclass of `SupersetSecurityManager` the config is in a file called `superset_config.py` and the hook is called `CUSTOM_SECURITY_MANAGER`. There now exists a special `SupersetOIDCSecurityManager` that is only defined if you are using this library alongside Superset. ```python from fab_oidc.security import SupersetOIDCSecurityManager ... CUSTOM_SECURITY_MANAGER = SupersetOIDCSecurityManager ``` ## Settings The settings are the same as the [flask_oidc settings][flask_oidc_settings], so look there for a reference. if you're happy with [flask_oidc]'s defaults the only thing you'll really need is something like: ```python OIDC_CLIENT_SECRETS = '/path/to/client_secret.json' ``` see the [flask_oidc manual client registration][flask_oidc_manual_config] docs for how to generate or write one. ### OIDC Field configuration If you like to change the default OIDC field that will be used as a username, first name and last name you can set the following env var in the shell you run your process: ```bash export USERNAME_OIDC_FIELD='preferred_username' export FIRST_NAME_OIDC_FIELD='given_name' export LAST_NAME_OIDC_FIELD='family_name' ``` Copyright © 2018 HM Government (Ministry of Justice Digital Services). See LICENSE.txt for further details. [flask_oidc]: http://flask-oidc.readthedocs.io/en/latest/ [flask_oidc_settings]: http://flask-oidc.readthedocs.io/en/latest/#settings-reference [flask_oidc_manual_config]: http://flask-oidc.readthedocs.io/en/latest/#manual-client-registration [Airflow]: https://airflow.apache.org/ [Superset]: https://superset.incubator.apache.org/ %prep %autosetup -n fab-oidc-0.0.9 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-fab-oidc -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed Apr 12 2023 Python_Bot - 0.0.9-1 - Package Spec generated