You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Authlib Python库的OAuth客户端禁用SSL验证?

解决Authlib连接Keycloak时SSL证书验证失败的问题

问题原因

你遇到的错误是因为Authlib在请求Keycloak的/.well-known/uma2-configuration元数据时,默认会验证SSL证书,而你的Keycloak使用自签名证书,导致验证失败。create_authorization_url里的verify=False参数仅作用于授权请求,无法覆盖元数据请求的SSL验证配置。

解决方案

方案1:注册客户端时全局禁用SSL验证

在注册OAuth客户端时,将verify=False加入client_kwargs,该客户端发起的所有请求(包括元数据请求)都会跳过SSL验证:

from authlib.integrations.flask_client import OAuth

oauth_client = OAuth()
oauth_client.register(
    name=_configuration.oauht2_provider,
    client_id=_configuration.oauth2_client_id,
    client_secret=_configuration.oauth2_client_secret,
    authorize_url=_configuration.oauht2_authorize_url,
    authorize_params=_configuration.oauht2_authorize_params,
    refresh_token_url=_configuration.oauht2_refresh_token_url,
    refresh_token_params=_configuration.oauht2_refresh_token_param,
    access_token_url=_configuration.oauht2_access_token_url,
    access_token_params=_configuration.oauht2_access_token_params,
    client_kwargs={
        "scope": _configuration.oauht2_scope,
        "verify": False  # 添加此行禁用SSL验证
    },
    server_metadata_url=_configuration.oauht2_open_id_url)

oauth_client.init_app(app=_app)
_oauth_client = oauth_client.create_client(_configuration.oauht2_provider)    

redirect_url = _oauth_client.create_authorization_url(_configuration.oauth2_client_redirect_url)['url']

方案2:针对已创建的客户端单独配置

如果不想全局禁用,可在创建客户端后直接修改其底层session的验证规则:

_oauth_client = oauth_client.create_client(_configuration.oauht2_provider)
# 禁用该客户端所有请求的SSL验证
_oauth_client.session.verify = False

redirect_url = _oauth_client.create_authorization_url(_configuration.oauth2_client_redirect_url)['url']

注意事项

  • 禁用SSL验证仅适合开发测试环境,生产环境请务必配置合法SSL证书,或将自签名证书添加到系统信任列表,避免安全风险。
  • 若已配置server_metadata_url,Authlib会自动请求元数据覆盖手动配置的authorize_url、access_token_url等参数,请确保元数据URL正确。

内容的提问来源于stack exchange,提问作者Wal D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:40:23