Conversation
|
Надо завернуть приложение в middleware, пример тут: |
gnomeby
left a comment
There was a problem hiding this comment.
Нужен механиз Logout
rq_dashboard/cli.py
Outdated
| os.environ.get('OIDC_SERVER_METADATA_URL')]) and WITH_OAUTH: | ||
| app.register_blueprint(oauth_bp, url_prefix='/auth') | ||
| oauth.init_app(app) | ||
| add_oauth() |
rq_dashboard/cli.py
Outdated
|
|
||
| # If env variables for oauth and required packages are present add optional oauth protection | ||
| if all([os.environ.get('OIDC_CLIENT_ID'), os.environ.get('OIDC_CLIENT_SECRET'), | ||
| os.environ.get('OIDC_SERVER_METADATA_URL')]) and WITH_OAUTH: |
There was a problem hiding this comment.
Если WITH_OAUTH == False и при этом заданы OIDC параметры, то надо ругаться
|
|
||
| oauth.register( | ||
| name='oidc_provider', | ||
| client_id=OIDC_CLIENT_ID, |
There was a problem hiding this comment.
Разобраться должно ли быть OAUTH2_ или OPENID_
| client_secret=OIDC_CLIENT_SECRET, | ||
| server_metadata_url=OIDC_SERVER_METADATA_URL, | ||
| client_kwargs={ | ||
| 'scope': 'openid email profile' |
There was a problem hiding this comment.
Выяснить минимальный набор
There was a problem hiding this comment.
Должно быть настраиваемо
rq_dashboard/oauth_blueprint.py
Outdated
|
|
||
|
|
||
| @oauth_bp.route('/') | ||
| def index(): |
rq_dashboard/cli.py
Outdated
| app.config.from_envvar("RQ_DASHBOARD_SETTINGS") | ||
|
|
||
| # If env variables for oauth and required packages are present add optional oauth protection | ||
| if all([os.environ.get('OIDC_CLIENT_ID'), os.environ.get('OIDC_CLIENT_SECRET'), |
There was a problem hiding this comment.
Передача параметров должна соответствовать шалону приложения: можно через env, можно через.cfg, можно через командную строку
| def auth_callback(): | ||
| try: | ||
| token = oauth.oidc_provider.authorize_access_token() | ||
| session['user'] = token.get('userinfo') |
There was a problem hiding this comment.
После разбора со scope выяснить какое уникальное значение всегда будет.
| extras_require={ | ||
| 'oauth': [ | ||
| 'Authlib>=1.6.5', | ||
| 'python-dotenv>=1.2.1', |
There was a problem hiding this comment.
эта библиотека не должна быть обязательной
There was a problem hiding this comment.
она записана в extras, и будет устанавливаться дополнительно
Надо заюзать вложенный Blueprint:
https://gitlab.vizor-games.com/internal-tools-python/keycloak-auth-proxy/-/blob/main/src/keycloak_auth_proxy/blueprint.py?ref_type=heads