问题标签 [flask-oidc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
697 浏览

python - 为什么我使用 Okta+oidc 得到“'OpenIDConnect' 对象没有属性 'extra_data_serializer'”?

我尝试将 Okta 与flask-oidc集成到我的 Flask 应用程序中。示例应用程序适用于我的. client_secrets.json,但是当我将它集成到我的(更大)应用程序中时,我收到以下错误:

有趣的是,当我尝试访问受保护的视图时,我只会收到此错误@oidc.require_login。当我第一次登录然后访问受保护的视图时,它工作正常。我会期待重定向(flask-oidc 代码),就像它发生在非蓝图视图中一样。

如何使蓝图直接与 flask-oidc 一起使用?

0 投票
1 回答
846 浏览

unit-testing - 如何从视图中删除“@oidc.login_required”以进行单元测试?

我使用进行用户登录和进行测试。对于单元测试,我想“删除” @oidc.require_login。我怎样才能做到这一点?

我试过的

flask-o 的工作方式大致是:

然后我希望单元测试可以模拟@oidc.require_login离开:

0 投票
1 回答
819 浏览

python - 无法使用 keycloak 保护 python flask rest api 服务

我有在 docker (192.168.99.100:8080) 中运行的 keycloak 服务器和在本地运行的 python flask-oidc flask 应用程序 (localhost:5000) 我即使在获取 access_token 后也无法访问受保护的 Rest Api。有没有人试过这个代码。如果是这样,请帮助我解决这个问题。谢谢你

这是我使用 docker jboss/keycloak 映像的 keycloak 客户端

这是我在新领域下的新用户

下面是我的烧瓶应用程序

应用程序.py

client_secrets.json

当我在网络浏览器中启动烧瓶应用程序时,
我单击下一步的登录链接
,它会提示输入用户详细信息(在我的新领域下创建的用户)
,这需要几秒钟,然后将我重定向到错误页面
http:// localhost:5000/oidc_callback?state=eyJjc3JmX3Rva2VuIjogIkZZbEpqb3ZHblZoUkhEbmJsdXhEVW

httplib2.socks.HTTPError

httplib2.socks.HTTPError: (504, b'Gateway Timeout')

并且它正在重定向到 /oidc_callback 任何地方都没有提到
任何帮助将不胜感激

0 投票
1 回答
571 浏览

flask - 如何设置 OpenID 以使用负载均衡器?

我目前使用的堆栈是: Keycloak flask flask-oidc nginx as load balancer

我的设置是我有两个正在运行的服务实例(instance1,instance2)。我面临的问题是:

  1. 用户通过访问https://mycompany.com/auth/login使用 Web 浏览器进行身份验证

  2. instance1 处理此请求并将用户重定向到 Keycloak 进行身份验证

  3. Keycloak 使用重定向 url ( https://mycompany.com/auth/auth_callback )将用户重定向回应用程序

  4. 这次负载均衡器将请求路由到重定向 url 到 instance2。这里 instance2 出错,Keycloak 的响应是“{'error': 'invalid_grant', 'description': 'Incorrect redirect uri'}”,这非常令人困惑,因为重定向 uri 是正确的。

    我不完全确定为什么这个设置不起作用。但是在阅读了 openID 的工作原理之后,我有点怀疑它与 state 参数(https://auth0.com/docs/protocols/oauth2/oauth-state)有关。同样,我不完全确定。但它必须是 instance1 本地的东西,而 instance2 没有。

人们如何解决这个问题?这种设置甚至可能吗?

0 投票
1 回答
3753 浏览

python - Python Flask Oidc + Keycloak 获取组、属性

我正在使用下面的这个例子来连接烧瓶 + 钥匙斗篷。工作正常,但我需要获取有关此用户的一些信息,例如组、属性 在 flask_oid 文档中搜索,我找不到任何关于如何获取它的想法。我需要它在登录后过滤是否是管理员,以根据您的个人资料创建菜单。

应用程序.py

client_secrests.json

有些可以帮助我。谢谢

0 投票
0 回答
428 浏览

nginx - flask oidc auth 回调重定向到 http 而不是 https

这是我第一次尝试部署一个 plotly dash python web 应用程序。我按照以下教程开始

该应用程序在 ec2 实例上运行良好,nginx 和 gunicorn 都在 docker 容器中。重定向到 okta 进行身份验证并返回工作正常(使用 ec2 实例公共 ip)

在通过 aws 负载均衡器 (HTTPS) 为域名设置重定向后,它开始失败并抱怨404,因为返回的 url 方案是http而不是https

首先,我添加OVERWRITE_REDIRECT_URI了带有https的配置,它修复了 okta 端不正确的重定向 uri 问题

然后尝试ProxyFix以下 SO 帖子中的所有选项,但在重定向到/authorization-code/callback?code=<long code value>后,响应总是以http:// <my_website_name>/<page>而不是https返回

  1. 让 Flask 的 url_for 在 AWS 负载均衡器中使用“https”方案,而不会弄乱 SSLify
  2. X-Forwarded-Proto 和 Flask

我被困在这一点上,我在这里错过了什么?

谢谢

nginx conf.d/conf

0 投票
1 回答
258 浏览

keycloak - 尝试获取“openid_id”和“角色”字段时,带有 Keycloak 的 Flask OIDC 返回 None

我正在尝试使用 Flask-ODBC + Keycloak 构建一些测试应用程序。

我成功启动了 Keycloak,创建了一个领域、一个角色和一个分配给该角色的用户。现在我试图从 OpenIDConnect 对象中获取“角色”和“openid_id”字段,但这两个字段返回无。

我的应用程序代码如下

在 hello_me() 中,我尝试获取 'openid_id' 和 'role' 并打印出来。问题是我在这些领域没有得到任何东西。我可以正确收到电子邮件。

你能帮我找出我犯了什么错误吗?

0 投票
2 回答
1126 浏览

ssl - 烧瓶 SSL 证书中的 OIDC SSO 验证失败

我有一个烧瓶驱动的应用程序,我正在尝试为此应用程序启用 OIDC SSO。我选择 wso2 作为身份服务器。我创建了一个回调 URL,并在 Identity Server 和烧瓶应用程序中添加了必要的东西,如下所示。该应用程序能够通过凭据日志记录页面,之后,我收到 SSL 证书验证错误。

我的尝试:

  • 我尝试过使用自签名证书,app.run(ssl_context='adhoc')但没有奏效。

代码片段:

客户信息:

应用信息:

  • 蟒蛇3.8
  • 烧瓶 1.1.2

在此处输入图像描述

0 投票
0 回答
564 浏览

python - 无法将 flask-oidc 与 Keycloak 公共客户端一起用于 API 调用

我正在尝试将 Flask 应用程序与使用两种端点装饰器的 Keycloak 公共连接:@oidc.require_login 和@oidc.accept_token. 但是我遇到了以下问题。

对于 Keycloak 机密客户端,我可以访问 Flask 应用程序中的所有端点。这是我的应用程序配置:

以及我的(经过清理的)clients_secrets.json 的内容

对于公共Keycloak 客户端,我将 client_secrets.json 修改如下(只需将 client_secret 设置为空字符串:

但是,当我在公共 Keycloak 客户端下部署此 Flask 时,我仍然可以访问 @oidc.require_login 端点,但@oidc.accept_tokenAPI 端点返回此错误:

使用 Keycloak 公共客户端是此 Flask 应用程序所在的微服务环境的要求。我不控制这个要求,其他微服务(用 Java、Angular 等编写)对这个 Keycloak 配置没有任何问题。

有没有办法使用装饰器使用带有flask-oidc端点的Keycloak公共客户端@oidc.accept_token?在我看来,这是一个常见的 OIDC 场景。

我在 Python 3.8.6 上使用 Flask 1.0.2 flask-oidc 1.4.0 运行它

0 投票
2 回答
258 浏览

keycloak - 烧瓶-OIDC | 用户登录后如何调用特定函数

我使用 Flask OIDC 和 Keycloak 构建了一个登录系统。在我的系统中,有一些用 oidc.require_login() 修饰的端点调用 Keycloak 登录页面。

我的目标是,在用户成功登录后,我的系统会检查用户名是否存在于特定数据库中。

如何设置每次有人使用 Keycloak 成功登录并在数据库中进行验证时调用的函数?