我正在使用python—keycloak库3.3将我的Python应用程序与Keycloak连接起来.我在一个领域使用2个客户端.在我的本地计算机上,当我在localhost:8080上运行keycloat服务器时,它工作得很好,但是当我try 连接到部署在Azure云中的Keycloat服务器时,我得到了auth客户端的这个错误:

keycloak.exceptions.KeycloakConnectionError: Can't connect to server (Could not find a suitable TLS CA certificate bundle, invalid path: 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)

推荐答案

你不能建立直接子领域的连接.你先接通大师界 并切换子领域. 我不知道为什么它可以使用旧的Keycloak版本,但不能使用v24.

Launch Keycalok

docker-compose/here启动Keyclock

configuration

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)

Result

enter image description here

Python相关问答推荐

列表上值总和最多为K(以O(log n))的最大元素数

numba jitClass,记录类型为字符串

查找两极rame中组之间的所有差异

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

如果满足某些条件,则用另一个数据帧列中的值填充空数据帧或数组

判断solve_ivp中的事件

lityter不让我输入左边的方括号,'

基于行条件计算(pandas)

合并与拼接并举

如何将数据帧中的timedelta转换为datetime

Python—为什么我的代码返回一个TypeError

在Google Drive中获取特定文件夹内的FolderID和文件夹名称

Pandas—MultiIndex Resample—我不想丢失其他索引的信息´

PySpark:如何最有效地读取不同列位置的多个CSV文件

为罕见情况下的回退None值键入

如何关联来自两个Pandas DataFrame列的列表项?

在聚合中使用python-polars时如何计算模式

如何在Polars中将列表中的新列添加到现有的数据帧中?

对当前的鼹鼠进行编码,并且我的按键获得了注册

如何让PYTHON上的Selify连接到现有的Firefox实例-我无法连接到Marionette端口