快速实现细粒度的身份权限管理

授权的含义

通用领域内,授权是领导者通过为员工和下属提供更多的自主权,以达到组织目标的过程。

计算机领域内,授权是由信息系统指定批准机构授予某实体处理、存储或传送信息的权力。

而在 身份认证领域内,授权是指当客户端经过身份认证后,能够有限的访问服务端资源的一种机制。

为什么要进行「授权」?

在已经构建起的用户系统中,当你的 API 需要判断当前访问用户是否能访问当前资源时,就需要你构建自己的权限系统了。授权是权限系统中一个很重要的概念,是指判断用户具备哪些权限的过程,这与认证完全不同。

对于企业来说,授权能够明确组织成员之间的关系,使职责和边界变得更加清晰,方便公司管理;同时,授权能够保障数据安全、防控风险,不同的权限准许不同的操作,可防止用户人为破坏、数据泄漏、误操作等事故的发生;授权能够提高决策的效率,优秀的授权和权限管理使系统更易操作,使员工的工作效率得到提升。

而从产品角度出发,授权可以保障产品系统的使用安全和数据安全,防止违规操作和数据泄漏;授权也可以提高系统的可操作性,提升用户体验;此外,好的授权功能会提升产品价值,使其在市场上更具有竞争力。

授权模式

授权模式主要为两种,分别是通过基于 OAuth 2.0 流程中的授权码模式,以及通过 API 接口到授权中心对用户授权进行集中验证。

基于 OAuth 2.0 框架的授权模式

OAuth2 框架是一种安全、轻量、标准的授权体系,用于帮助资源方、调用方、资源所有者之间的完成授权流程。如果授权过程中不涉及到资源所有者,可以使用 client_credentials 模式。这种模式一般用于后端服务器的 M2M 模式。你可以在应用详情页获取应用的 ID 和密钥,你需要将其并安全地存储在你的服务器中。

你可以使用 OAuth2.0 的 client_credentials 模拟颁发具备特定 scope 权限的 access_token:

curl --request POST \
  --url https://${
   YOUR_AUTHING_DOMAIN}/oidc/token \
  --header 'accept: application/json' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data 'grant_type=client_credentials&scope=customScope&client_id=CLIENT_ID&client_secret=CLIENT_SECRET'

Authing 会根据调用方请求的资源和上下文环境,动态的决定颁发具备哪些权限的 AccessToken。并返回被拒绝的 scope:

{
   
  "access_token": "...",
  "token_type": "Bearer"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值