1

我正在努力寻找它,但我找不到解决方案。有人帮助我吗?

这是我的尝试。#1 首先找到 PAT (Protection API Token) 在此处输入图像描述

#2 获取权限票列表 在此处输入图像描述

#3 尝试获取 RPT,但出现“票证验证失败”错误。 在此处输入图像描述

#4 这个错误的源代码,但我不熟悉源代码。

    private PermissionTicketToken verifyPermissionTicket(KeycloakAuthorizationRequest request) {
        String ticketString = request.getTicket();

        PermissionTicketToken ticket = request.getKeycloakSession().tokens().decode(ticketString, PermissionTicketToken.class);
        if (ticket == null) {
            throw new CorsErrorResponseException(request.getCors(), "invalid_ticket", "Ticket verification failed", Status.FORBIDDEN);
        }

它从第 670 行的源文件(AuthorizationTokenService.java)复制。 在此处输入图像描述

https://www.keycloak.org/docs/latest/authorization_services/#_service_overview

4

2 回答 2

3

我花了很多时间试图获得 RPT,我终于找到了解决方案。

所以首先你必须得到一个带有 grant_type 密码的普通令牌:

在此处输入图像描述

然后你用你收到的 access_token 请求派对令牌,这次你的 grant_type 将是“urn:ietf:params:oauth:grant-type:uma-ticket”

在此处输入图像描述

注意:这里的观众属性是 client_id

于 2021-02-04T14:54:27.303 回答
1

这是您正在研究的相当先进/新兴的标准。用户管理访问与用户 A 基于可验证的前提条件授予其他用户资源访问权限有关。

这真的是你想要做的吗?如果您能解释您的方案/要求——例如有哪些组件——我们可能会建议一个更简单/替代的解决方案。

于 2020-09-30T17:55:26.423 回答