【Authing】| 集成 RBAC 权限模型到应用系统

该代码示例展示了如何使用Python SDK从Authing管理用户池中的用户、角色及权限。首先,它获取用户池中的所有用户数据,然后列出指定用户的角色,并生成角色代码列表。接着,检查用户是否拥有'user'和'provider'角色,这些角色关乎用户能否执行特定操作。最后,演示了如何判断用户是否有权限操作某个资源。
部署运行你感兴趣的模型镜像
# -*- coding: utf-8 -*-
#  @ Date   : 2022/8/17 11:06
#  @ Author : RichardLau_Cx
#  @ Project: bakingOven-cn
#  @ File   : access_control.py
#  @ IDE    : PyCharm


from authing.v2.management import ManagementClient, ManagementClientOptions

management_client = ManagementClient(
    options=ManagementClientOptions(
        user_pool_id='YOUR_USERPOOL_ID',  # 用户池ID
        secret='YOUR_USERPOOL_SECRET'  # 授权用户池密钥
    )
)

# 获取用户池中全部用户的数据
user_pool_data = management_client.users.list()
# print("user_pool_data: ")
# print(user_pool_data)

# 首先获取用户的被授予的所有角色列表
role_lists = management_client.users.list_roles('USER_ID')
# print("role_lists['totalCount']: ", end='')
# print(role_lists['totalCount'])

# print("role_lists['list']: ")
# print(role_lists['list'])

# 生成角色代码列表
role_code_lists = []

for info in role_lists['list']:
    role_code_lists.append(info['code'])

print("role_code_lists: ", role_code_lists)

# 判断该用户是否具备 user/provider 这个角色
if 'user' in role_code_lists:
    print("此用户包含user角色!")
else:
    print("此用户不包含user角色,无权操作!")

if 'provider' in role_code_lists:
    print("此用户包含provider角色!")
else:
    print("此用户不包含provider角色,无权操作!")

# print("role_lists['list'][0]['description']: ", end='')
# print(role_lists['list'][0]["description"])

# 获取权限分组列表
namespace_list = management_client.acl.list_namespaces(1, 10)
# print("namespace_list: ")
# print(namespace_list)


# 授权角色操作资源的权限
def resource():
    """
    判断是否允许操作某项资源
    """

    accepted = management_client.acl.is_allowed(
        user_id='USER_ID',  # 用户ID
        resource='view-user:*',  # 资源标识符
        action='view-user:view',  # 资源特定操作
        namespace='default'  # 权限分组(独立的命名空间)
    )

    return accepted


if __name__ == '__main__':
    print(resource())

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值