代码之家  ›  专栏  ›  技术社区  ›  president

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

  •  0
  • president  · 技术社区  · 6 年前

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

    我在文件中看到:

    GET /admin/realms/{realm}/clients/{id}/client-secret

    data = {
        "grant_type" : 'password',
        "client_id" : 'myclientid',
        "username" : 'myusername',
        "password" : 'mypassword'
    }
    response = requests.get("https://mylink.com/auth/admin/realms/{myrealm}/clients/{myclientid}/client-secret", data=data, headers= {"Content-Type": "application/json"})
    

    我总是犯错误。

    我做错了什么?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Marcos Pereira Júnior    6 年前

    我认为你的身份验证不起作用。

    1. 你需要一个代币。您可以使用OpenID生成(请参见 docs ).
    2. 通过令牌(通过标头授权),您可以执行对API的请求。

    例子:

    data = {"username": "username", "password": "password",
            "client_id": "client_id", "client_secret": "client_secret", 
            "grant_type": "password"}
    
    token = request.post("https://{server-url}/"realms/{realm-name}/protocol/openid-connect/token", data=data)
    

    对API的请求

    response = requests.get("https://mylink.com/auth/admin/realms/{myrealm}/clients/{myclientid}/client-secret", data=data, headers= {"Authorization": "Bearer " + token.get('access_token'), "Content-Type": "application/json"})
    
        2
  •  8
  •   xardbaiz    3 年前

    client_secret

    1. CLIENTS 域管理面板的一部分 ( <protocol>://<host>:<port>/auth/admin/master/console/#/realms/<your realm>/clients/<your clint code>
    2. confidential confidential
    3. 按“保存”
    4. 确保“客户端身份验证器”=“客户端Id和密码”

    secret

    附笔。 客户机密 使用API进行检索是非常困难的 possible 通过另一个客户端(应具有客户端信息视图的角色)

        3
  •  7
  •   ravthiru    6 年前

    它是keydrope唯一id(即 uuid )比如 628e4b46-3d79-454f-9b1c-e07e86ee7615

    GET/admin/realms/{realm}/clients/{id}/client secret

    您可以使用此api获取id,其中它返回ClientRepresentation列表,该列表具有 ,使用

    获取/{realm}/客户端

    `

        4
  •  0
  •   Edorka    4 年前

    除了@ravthiru的回复外,您还可以从管理控制台上的“安装”选项卡中检索客户端机密,选择类似JSON的格式,客户端机密将显示在 credentials.secret