L.L*_*urg 7 python flask oauth-2.0 openid-connect
问题:
库flask-oidc将该scope参数包含到授权代码/访问令牌交换请求中,这毫不奇怪地抛出以下错误:
oauth2client.client.FlowExchangeError:授权代码 access_token 交换请求不支持 invalid_request 范围参数。应向授权请求提供范围参数。
问题:
这是配置问题还是库问题?
我的配置:
app.config.update({
'DEBUG': True,
'TESTING': True,
'SECRET_KEY': 'secret',
'SERVER_NAME' : 'flask.example.com:8000',
'OIDC_COOKIE_SECURE': False,
'OIDC_REQUIRE_VERIFIED_EMAIL': False,
'OIDC_CALLBACK_ROUTE': '/oidc/callback',
'OIDC_CLIENT_SECRETS': 'client_secrets.json'
})
oidc = OpenIDConnect(app)
Run Code Online (Sandbox Code Playgroud)
{
"web": {
"auth_uri": "http://openam.example.com:8080/openam/oauth2/realms/root/authorize",
"issuer": "http://openam.example.com:8080/openam/oauth2/realms/root/",
"userinfo_uri": "http://openam.example.com:8080/openam/oauth2/realms/root/userinfo",
"client_id": "MyClientID",
"client_secret": "password",
"redirect_uris": [
"http://flask.example.com:8000/oidc/callback"
],
"token_uri": "http://openam.example.com:8080/openam/oauth2/realms/root/token",
"token_introspection_uri": "http://openam.example.com:8080/openam/oauth2/realms/root/introspect"
}
}
Run Code Online (Sandbox Code Playgroud)
对于访问管理器,我使用OpenAM。我按如下方式配置了 OpenAM 客户端代理:
MyClientIDpasswordcodeclient_secret_posthttp://flask.example.com:8000/oidc/callback上下文:我使用Flask-oidc作为应用程序端的逻辑,使用OpenAM进行身份和访问管理 - 两个应用程序都在 Docker 容器中运行。使用简单的curl命令时,我可以检索授权授予以及身份验证令牌(授予类型:授权代码授予)。但是,使用上述库,登录 OpenAM 并向应用程序授予授权(端点“oauth2/authorize”)后,flask-oidc 会发送以下 GET 请求:
GET /oidc/callback?code=<some code> \
&scope=openid%20email \
&iss=http%3A%2F%2Fopenam.example.com%3A8080%2Fopenam%2Foauth2 \
&state=<some state> \
&client_id=MyClientID
Run Code Online (Sandbox Code Playgroud)
这导致了上面提到的错误。
虽然这并不能直接回答问题,但我能找到的最佳答案是使用 pyJWT 或 oauthlib 而不是使用flask-oidc。我发现 pyjwt 在大多数方面都非常简单,这里有一个很棒的教程:
使用 Flask 请求 Oauthlib 和 pyjwt 进行 SSO
我不确定这一点,但由于该错误是由 oauth2client 而不是flask-oidc 生成的,因此该错误实际上可能与已弃用的 oathlib2clientlib 有关。
有一个详细的请求将整个 Flask-oidc 项目标记为已弃用,但该请求是在 Flask-oidc 项目停止维护几年后提出的。我希望有一天 Flask 能够从他们的网站上删除这个链接,因为认为它是 Flask 的主要部分是一种误导。
| 归档时间: |
|
| 查看次数: |
1287 次 |
| 最近记录: |