通过REST API创建Keycloak客户端

无名

我正在尝试通过Admin REST API和Python创建Keycloak客户端。

我尝试了以下方法:

导入请求
导入argparse
导入ast 

def get_token():

    url ='http:// localhost:9003 / auth / realms / master / protocol / openid-connect / 

    token'params = { 

        'client_id':'admin-cli',
        ' grant_type':'password',
        'username':'admin',
        'password':'password' 
    }

    返回ast.literal_eval(requests.post(url,params,verify = False).content.decode(“ utf-8” ))['access_token'] 
    #返回request.post(url,params,verify = False).content.decode('utf-8')

def create_client():

    url ='http:// localhost:9003 / auth / admin / realms / master / clients'

    标头= { 
                'content-type':'application / json',
                'Authorization':'bearer'+ str(get_token)
                } 

    params = { 
                                “ clientId”:“ testclient-3”,
                                #“ id”:“ 3”,
                                #“ name”:“ testclient-3”,
                                #“ description” :“ TESTCLIENT-3”,
                                #“已启用”:True,
                                #“ redirectUris”:[“ \\”],
                                #“ publicClient”:True 


            }

    返回请求。post (URL,标头,参数,verify = False) 

x = create_client()
打印(x)

我收到401 HTTP代码,有人可以帮我吗?

先感谢您。

PS:9003映射到8080(我正在使用Keycloak docker容器)

无名

我已经做到了,用这种方式:

import requests
import argparse
import ast

def get_token():

    url = 'http://localhost:9003/auth/realms/master/protocol/openid-connect/token'

    params = {

        'client_id': 'admin-cli',
        'grant_type': 'password',
        'username' : 'admin',
        'password': 'password'
    }
    x = requests.post(url, params, verify=False).content.decode('utf-8')
    print (x)
    print ('\n')
    return ast.literal_eval(x)['access_token']
    #return requests.post(url, params, verify=False).content.decode('utf-8')

def create_client():

          url ='http://localhost:9003/auth/admin/realms/master/clients'

          headers = {
                'content-type': 'application/json',
                'Authorization' : 'Bearer '+ str(get_token())
                }

          params = {
                                "clientId" : "testclient",
                                "id":"3",
                                "name": "testclient-3",
                                "description": "TESTCLIENT-3",
                                "enabled": True,
                                "redirectUris":[ "\\" ],
                                "publicClient": True


            }
           x = requests.post(url, headers=headers, json=params)
           print (x)
           return x.content

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过Keycloak API获取客户端机密?

通过keycloak管理客户端返回创建用户keycloak抛出:IllegalArgumentException

通过keycloak admin客户端在keycloak中创建用户返回400

使用 Keycloak Rest API 将用户添加到客户端角色

如何使用rest api从keycloak客户端注册中获取初始访问令牌?

使用服务帐户(客户端凭据授予)访问Keycloak REST Admin API

如何禁用 Keycloak Account 客户端但保留 Account Rest API?

通过REST接口获取客户端时,Keycloak返回{“ error”:“ Bearer令牌格式错误”}

通过Rest API或客户端DLL创建具有“贡献者”之类的Azure Devops(安全)组

Java REST API客户端

如何使用Paypal客户端Rest API创建订阅付款?

使用客户端凭据身份验证通过 Graph API 创建自定义扩展

我可以通过客户端API在kubernetes中同时创建许多Job吗?

服务器如何知道通过PayPal客户端REST API确实付款?

REST API仅可通过我的React客户端访问

Java的春天:实时状态更新客户端通过REST API

通过REST API取消订阅Firebase云消息传递客户端

无法通过Rest API从客户端Ajax POST请求接收数据

在基于Spring REST的客户端中访问通过wsdl公开的API

如何通过jersey rest客户端发布列表

如何用Java创建REST客户端?

如何为Java创建REST客户端?

用Flex创建REST客户端是否可行?

Jersey REST客户端未创建数据库

Web 客户端 API 和 Rest API

如何通过PHP客户端在Jasper上创建域

使 REST API 仅响应已知客户端

Microsoft Graph REST API无效的客户端机密

从REST API客户端返回通用swift对象