当前位置: 首页 > 知识库问答 >
问题:

keybeapt将权限与角色一起包含到访问令牌中

戴鸿羲
2023-03-14

我一直在努力使用keydepeat设置授权,并根据资源设置了特定的角色和权限,但JWT访问令牌只包含有关角色的详细信息,而不包含分配给用户的权限。

我希望访问令牌包含权限详细信息,并尝试了KeyCloak留档上的方法:1)使用权限票证无法使用

http://${host}:${port}/auth/realms/${realm_name}/authz/protection/permission

它显示:

{
    "error": "invalid_bearer_token",
    "error_description": "Could not obtain bearer access_token from request."
}

因此无法生成RPT并获取权限的详细信息。

还尝试使用授权API。

2)使用授权API:

 curl -X GET \
     -H "Authorization: Bearer ${access_token}" \
     "http://localhost:8080/auth/realms/hello-world-authz/authz/entitlement/${resource_server_id}"

我试着用邮递员,结果显示404没有找到。。

谁能告诉我在访问令牌中包含权限或正确生成RPT的正确过程吗。

共有1个答案

越福
2023-03-14

Keyclope为授权服务提供了一个发现文档。您可以从以下url获取。

curl -X GET http://localhost:8080/auth/realms/{realm}/.well-known/uma2-configuration -H "Authorization: Bearer ${access_token}"

这里,localhost和8080用于keydepeat主机和端口

错误表示您使用的令牌对客户端无效。

我可以使用下面的命令获取RPT

curl -X POST   http://localhost:8080/auth/realms/${realm}/protocol/openid-connect/token  -H "Authorization: Bearer ${access_token}" --data "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket" --data "audience={resource_server_client_id}"  --data "permission=Resource#Scope"

Keyclope使用RPT响应客户端

 类似资料:
  • 我正在使用微软图形SDK为我的应用程序(不是用户)获取访问令牌,以便从共享点读取。我一直在关注这个文档,并发布了这个SO问题。链接的SO中的代码是相同的。我能够添加应用程序权限以及在Azure门户中授予它们(通过按下按钮)。问题是,返回使用的令牌中不包含任何角色/scp声明。因此,当使用令牌时,我收到“令牌中需要存在scp或角色声明”消息。 可以肯定的是,在获取访问令牌时,我传递的范围的唯一值是:

  • 有些企业会对向用户发送的营销内容进行严格的管理——基层的运营或营销经理拟定的活动必须经过上级管理者的审批,方可生效执行。为此,诸葛的智能触达中提供了基于用户角色的触达活动权限管理,以支撑上述的企业需求。 如果您的团队需要使用权限控制,可通过以下步骤开启使用: 开启权限控制:智能触达的权限控制默认是关闭的,需要开启后方能使用; 分配用户角色:为团队成员分别分配设定「管理员」和「运营人员」角色; 开始

  • 我是要定义什么还是别的什么?我在网上看到那个有角色权限的东西。

  • 我想要一些关于如何在隐式授予流中使用ID令牌和访问令牌的澄清。我有一个使用msal.js for Angular包的Angular SPA和一个Web API。API不调用任何外部服务,如MSFT Graph。后端仅使用JWT中的角色声明来建立对API功能的RBAC授权。 这个文档写着:https://docs.microsoft.com/en-us/azure/active-directory/

  • 我正在配置一个具有各种前端(移动和web应用程序)的应用程序和一个由Lambda提供动力并通过AWS API网关访问的API后端。 由于我正计划使用Cognito对用户进行身份验证和授权,所以我在我的API网关和几个API方法上设置了一个Cognito用户池授权器。 使用这样的体系结构,从OAuth角度来看,我的应用程序(例如iOS或Vue.js应用程序)是客户端应用程序,而我的API网关后端是资

  • 问题内容: 我将Google云端硬盘集成到我的应用中。并且希望每当连接的驱动器帐户中发生任何更改时都接收推送通知/ webhooks。自连接驱动器帐户一小时后,access_token过期,此后我无法收到任何Webhook。如何刷新并自动刷新? 问题答案: 您可以使用刷新令牌。可以通过刷新令牌来更新访问令牌。可以按以下方式检索此刷新令牌。首先,需要以下信息来检索refreshtoken。 客户编号