Flask OIDC с Keycloak — логин не зарегистрирован?Python

Программы на Python
Гость
Flask OIDC с Keycloak — логин не зарегистрирован?

Сообщение Гость »


У меня есть сайт (в настоящее время локальный), с которого я пытаюсь получить доступ к службе Keycloak с помощью Flask OIDC. При запуске приведенного ниже кода я правильно перенаправляюсь на страницу входа в Keycloak и могу войти в систему. Однако после перенаправления обратно на сайт мой логин не распознается. Добавление @oidc.require_login к маршруту просто помещает меня в бесконечный цикл между моим сайтом и keycloak (который распознает мой логин и не требует повторного входа в систему). Использование oidc.user_loggedin также не будет работать и сообщит мне, что я не аутентифицирован.

из фляги импорта Flask из колбы импорта render_template журнал импорта из колбы импортировать url_for из перенаправления импорта колбы из запроса на импорт колбы из колбы импортировать jsonify из фляги импорта send_file импортировать ОС импортировать JSON запросы на импорт из flask_oidc импортировать OpenIDConnect импорт psycopg2 из сеанса импорта колбы приложение = Колба(__name__) app.config.update({ «SECRET_KEY»: «Очень секретно», «ТЕСТИРОВАНИЕ»: Верно, «ОТЛАДКА»: Верно, «OIDC_CLIENT_SECRETS»: «client_secrets.json», 'OIDC_COOKIE_SECURE': Ложь, 'OIDC_USER_INFO_ENABLED': Верно, 'OIDC_SCOPES': ['openid', 'электронная почта', 'профиль'] }) oidc = OpenIDConnect (приложение) @app.route('/loging') регистрация регистрации(): return redirect(url_for('oidc_auth.login')) @app.route('/test') @oidc.require_login защита sitetest(): вернуть «Привет» @app.route('/') Защитный старт(): если (oidc.user_loggedin==True): вернуть render_template("login.html") еще: nice = 'Вы не вошли в систему! ' + str(oidc.user_loggedin) вернуться хорошо Иногда я также получаю сообщение об ошибке «Несанкционированное несоответствие_состояния: предупреждение CSRF! Состояние не равно в запросе и ответе». В сообщении об ошибке указано, что файл cookie «session» не имеет допустимого атрибута «SameSite», но я не нашел способа изменить или добавить его, чтобы определить, в чем именно заключается проблема...

Мой файл client_secrets.json гласит:
{ "паутина": { "эмитент": "http://127.0.0.1:8080/realms/elrealm", "auth_uri": "http://127.0.0.1:8080/realms/elrealm/pr ... nnect/auth", "client_id": "остальное", "client_secret": "NSIsn*********************", "redirect_uris": ["http://127.0.0.1:5000/*"], "userinfo_uri": "http://127.0.0.1:8080/realms/elrealm/pr ... t/userinfo", "token_uri": "http://127.0.0.1:8080/realms/elrealm/pr ... nect/token", "token_introspection_uri": "http://127.0.0.1:8080/realms/elrealm/pr ... introspect" } }

Вернуться в «Python»