CERTIFICATE_VERIFY_FAILED while connecting to the databricks sql endpoint using python through M2M auth
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 25/100
- Issue 类型
- 缺陷
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
调研方向
从 main.py、credential_provider() 中的 Config 初始化,以及向 /oidc/.well-known/oauth-authorization-server 发出的 traceback 请求开始。使用列出的软件包版本重现该故障,并检查 Python SDK 在 OAuth M2M 设置期间如何处理证书验证;完成标准是确定一种受支持的解决方案,或记录此环境中的限制。
由索引模型根据 Issue 内容生成。
描述
main.py content
from dotenv import load_dotenv, dotenv_values
load_dotenv()
from databricks.sdk.core import Config, oauth_service_principal
from databricks import sql
import os
server_hostname = os.getenv("DATABRICKS_HOST")
def credential_provider():
config = Config(
host = f"https://{server_hostname}",
client_id = os.getenv("DATABRICKS_CLIENT_ID"),
client_secret = os.getenv("DATABRICKS_CLIENT_SECRET"))
print(config)
return oauth_service_principal(config)
with sql.connect(server_hostname = server_hostname,
http_path = f'{os.getenv("DATABRICKS_HTTP_PATH")}',
credentials_provider = credential_provider,
_tls_no_verify=True,
) as connection:
with connection.cursor() as cursor:
cursor.execute("SELECT 1 as a")
print(cursor.fetchall())
cursor.close()
connection.close()
.env content
DATABRICKS_HOST="adb-XXXXXXXXXXXXX.azuredatabricks.net"
DATABRICKS_CLIENT_ID="XXXXXXX"
DATABRICKS_CLIENT_SECRET="XXXXXXX"
DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/XXXXXXXXXX"
ERROR
Traceback (most recent call last):
File "/Users/saurabhkumar/PycharmProjects/pythonProject/test.py", line 28, in <module>
credential_provider()
File "/Users/saurabhkumar/PycharmProjects/pythonProject/test.py", line 21, in credential_provider
config = Config(
File "/Users/saurabhkumar/PycharmProjects/pythonProject/.venv/lib/python3.8/site-packages/databricks/sdk/config.py", line 127, in __init__
raise ValueError(message) from e
ValueError: default auth: oauth-m2m: HTTPSConnectionPool(host='adb-XXXXXXXXXXXX.azuredatabricks.net', port=443): Max retries exceeded with url: /oidc/.well-known/oauth-authorization-server (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1131)'))). Config: host=https://adb-XXXXXXXXXXX.azuredatabricks.net, client_id=XXXXXXXXXXX, client_secret=***. Env: DATABRICKS_HOST, DATABRICKS_CLIENT_ID, DATABRICKS_CLIENT_SECRET
Packages
cachetools==5.5.0
certifi==2024.8.30
charset-normalizer==3.3.2
databricks==0.2
databricks-connect==13.0.1
databricks-sdk==0.32.1
databricks-sql-connector==3.4.0
et-xmlfile==1.1.0
google-auth==2.34.0
googleapis-common-protos==1.65.0
grpcio==1.66.1
grpcio-status==1.66.1
idna==3.8
lz4==4.3.3
numpy==1.24.4
oauthlib==3.2.2
openpyxl==3.1.5
pandas==1.5.3
pip-system-certs==4.0
protobuf==5.28.1
py4j==0.10.9.7
pyarrow==16.1.0
pyasn1==0.6.1
pyasn1_modules==0.4.1
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
pytz==2024.2
requests==2.32.3
rsa==4.9
six==1.16.0
thrift==0.20.0
urllib3==2.2.2
wrapt==1.16.0
- 主要语言
- Python
- 星标
- 233
- 派生
- 152
- 平均合并
- 21 小时 5 分钟
- 30 天内合并 PR
- 10
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
databricks/databricks-sql-python 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 76/100
-
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 2/5 1-3 小时 新手友好度 84/100
查看 databricks/databricks-sql-python 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 74/100
-
难度 2/5 1-3 小时 新手友好度 84/100
PolicyEngine/policyengine-us#9559 ·
-
priority: p3
难度 2/5 1-3 小时 新手友好度 72/100
googleapis/librarian#7636 ·
-
from:qa priority:P2 reliability tech-debt
难度 2/5 1-3 小时 新手友好度 78/100
spec-kitty/spec-kitty#4874 ·
-
难度 2/5 1-3 小时 新手友好度 68/100