首页 >> 牛刀云小程序开发教程 >> 第1篇 制作模式 >> 管理后台制作 >> 系统功能介绍

7.2.2 授权管理

授权即访问控制,它将判断用户对资源是否拥有相应的访问权限。例如,判断一个用户有查看页面的权限,编辑数据的权限,以及拥有某一按钮的权限等。

授权有着三个核心元素:权限、角色和用户。权限是安全机制最核心的元素。它明确声明了被允许的行为和表现。一个格式良好的权限声明可以清晰表达出用户对该资源拥有的权限。大多数的资源会支持典型的CRUD操作(createreadupdatedelete,但是任何操作建立在特定的资源上才是有意义的。因此,权限声明的根本思想就是建立在资源以及操作上。

通过权限声明仅仅能了解这个权限可以做些什么,而不能确定谁拥有此权限。于是,就需要对用户和权限建立关联。通常的做法就是将权限分配给某个角色,然后将这个角色关联一个或多个用户。

权限声明通常是使用以冒号分隔的表达式。一个权限表达式可以清晰的指定资源类型,允许的操作,可访问的数据。同时,权限表达式支持简单的通配符,可以更加灵活的进行权限设置。表7-1中以示例来说明权限表达式。

7-1  权限描述及表达式

权限描述

权限表达式

全部权限

*:*:*

全部数据权限

*:/dbrest:*

某个数据集全部权限

*:/dbrest/main_shangpin:*

某个数据集查询权限

*:/dbrest/main_shangpin:get

全部服务权限

*:/main:*

某个服务权限

*:/main/wodifw:*

某个请求权限

*:/main/wodifw/jiarugwj:get

可以看出权限表达式是三段的,三段的含义分别为域名、路径和操作。其中*是通配符。从市场下载权限组件后,才能进行授权管理。调用请求时,如果没有相应的权限,则控制台报出401的错误。

 

1、下载权限组件

在制作台中,从市场下载“权限组件”,如图7-4所示。

7-4  下载权限组件

下载“权限组件”后,在管理后台中就会显示出“授权管理”菜单,里面包括“权限管理”、“角色管理”和“按组织授权”3个功能,如图7-5所示。

7-5  授权管理菜单

授权管理的过程如下:

l  在权限管理中声明权限

l  在角色管理中给角色分配权限

l  在按组织授权中给人员分配角色

 

2、权限管理

系统中的权限分为访问数据的权限、调用服务的权限和管理后台的功能权限。在“权限管理”功能中声明哪些资源是需要鉴权的,不需要鉴权的资源可以直接访问,需要鉴权的资源在获得权限后,才能访问。这其中管理后台的功能权限已默认为需要鉴权的资源。

l  声明数据资源:添加那些需要分配权限才能访问的数据集

l  声明服务资源:添加那些需要分配权限才能访问的服务

l  声明自定义:自定义资源编码,例如:添加“/dbrest/”可以将所有数据集设置为需要鉴权的资源

 

3、角色管理

系统默认设置3个角色“匿名用户”、“注册用户”、“管理员”,还可以添加其它角色。

l  匿名用户:在小程序中仅登录,而未注册UAA的用户,都是匿名用户

l  注册用户:在小程序中登录且注册UAA的用户,是注册用户,目前未实现自动注册

l  管理员:默认用户SYSTEM是管理员

 

角色是权限的集合,每个权限包括:权限名称、权限表达式、授权范围和权限描述等4个信息。

l  权限名称:根据功能名、数据集名、服务名自动生成

l  权限表达式:由域名、路径和操作组成的三段表达式,*为通配符

l  授权范围:目前暂不支持

l  权限描述:权限说明

 

选择一个角色,为角色分配权限,权限有4种,分别是功能权限、数据权限、服务权限和自定义权限。

l  功能权限:指管理后台功能树上每个功能的访问权限

l  数据权限:指访问数据制作区中动态数据集的权限,数据权限包括查询、修改、删除,也可以设置为全部权限

l  服务权限:指调用服务制作区中服务请求的权限

l  自定义权限:自定义权限名称和权限表达式。例如:自定义权限*:/dbrest:*,表示可访问全部数据集的全部数据权限,自定义权限*:/main:*,表示可访问全部服务请求

3、按组织授权

按组织授权是给群组和用户分配角色,使得群组和用户拥有角色中的权限。