无法连接到Keycloak服务器

问题描述 投票:0回答:1

我正在使用 python-keycloak 库 3.3 将我的 python 应用程序与 Keycloak 连接。我在 1 个领域使用 2 个客户端。在我的本地计算机上,当我在 localhost:8080 上运行 keycloak 服务器时,它工作得很好,但是当我尝试连接到部署在 Azure 云中的 Keycloak 服务器时,我在身份验证客户端上收到此错误:

keycloak.exceptions.KeycloakConnectionError:无法连接到服务器(找不到合适的 TLS CA 证书捆绑包,无效路径:True)

对于我的前端需要的其他客户端,这里没有 TLS CA 证书问题,我可以毫无问题地访问服务器。 有人可以帮助我吗?

from keycloak import KeycloakAdmin
from keycloak import KeycloakOpenIDConnection
from config import cfg

cdb = cfg['test']

keycloak_connection = KeycloakOpenIDConnection(
                        server_url=['SERVER_URL'],
                        username=cdb['USERNAME'],
                        password=cdb['PASSWORD'],
                        realm_name=cdb['REALM_NAME'],
                        client_id=cdb['CLIENT_ID'],
                        client_secret_key=cdb['CLIENT_SECRET_KEY'],
                        verify=cdb['VERIFY'])

keycloak_admin = KeycloakAdmin(connection=keycloak_connection)
python azure ssl keycloak keycloak-admin-cli
1个回答
0
投票

您无法建立直接子领域的连接。你先连接主域 并切换儿童领域。 我不知道为什么。它适用于旧的 Keycloak 版本,但不适用于 v24。

启动Keycalok

通过

docker-compose
这里

启动Keyclock

配置

config.py
大师境界和凭证

test  = dict(
    SERVER_URL = 'http://localhost:8080',
    MASTER_USERNAME = 'admin',
    MASTER_PASSWORD = 'admin',
    MASTER_REALM_NAME = 'master',
    MASTER_CLIENT_ID = 'admin-cli',
    REALM_NAME = 'my-realm',
    VERIFY = True
)

demo.py

from keycloak import KeycloakAdmin
from keycloak import KeycloakOpenIDConnection
import config

cdb = config.test

keycloak_connection = KeycloakOpenIDConnection(
                        server_url=cdb['SERVER_URL'],
                        username=cdb['MASTER_USERNAME'],
                        password=cdb['MASTER_PASSWORD'],
                        realm_name=cdb['MASTER_REALM_NAME'],
                        client_id=cdb['MASTER_CLIENT_ID'],
                        verify=cdb['VERIFY']
)

keycloak_admin = KeycloakAdmin(connection=keycloak_connection)

keycloak_admin.change_current_realm(cdb['REALM_NAME'])

current = keycloak_admin.get_current_realm()
print('current realm : ' + current)

users = keycloak_admin.get_users()
for user in users:
  print(user)

结果

© www.soinside.com 2019 - 2024. All rights reserved.