intra-mart Accel Platform 脚本开发模式编程指南 第16版2020-04-01

许可

设置对屏幕的访问权限

可以通过设置路由器来访问该屏幕。
但是,在路由表中使用“所有人欢迎”映射器会跳过许可过程,因此任何人都可以查看屏幕。
在实际操作系统时,几乎总是会设置访问权限,并且仅某些用户显示在屏幕上以限制访问。
本章介绍使用intra-mart Accel Platform提供的许可功能,仅将准备好的画面显示给特定用户的步骤。

什么是许可

许可概述

许可是控制对由认证功能所标识的用户所请求的资源的访问的功能。
intra-mart Accel Platform提供了一种通用的许可功能机制,该机制通过“允许”和“禁止”来确定“谁”,“什么”和“什么”。
../../../_images/authz_flow.png

主题

许可的“主题”是指“谁”部分。
在intra-mart Accel Platform ,可以通过“用户”,“角色”,“公司/部门”,“职务”,“公共组”,“公共组/ 职责”的组合来设置授予权限的目标人。
../../../_images/authz_treegrid_subject.png

资源和资源组

许可的“资源”指示“什么”部分。
例如,有诸如屏幕和Web服务之类的服务系统,以及诸如菜单和门户类的数据系统。
资源可以通过资源组具有父子层次结构。
../../../_images/authz_treegrid_resource.png

资源类型和Action

许可的“Action”指示“要做的事情”部分。
Action的内容取决于资源的类型(资源类型)。
例如,屏幕上只有一个Action Execute。
../../../_images/authz_treegrid_action.png

策略

许可“策略”中显示“允许”,“禁止”的部分。
您可以为主题资源Action每种组合设置策略。
../../../_images/authz_treegrid_policy.png
如果未设置策略,则继承父层次结构的资源组的权限。
如果未设置顶级资源组的策略,则将其视为“禁止”。

访问画面的许可设置方法

权限设置流程

路由器根据路由表中设置的信息查询许可。
进行查询时,请使用分配给每个资源的URI作为关键字。
../../../_images/router_authz_chain.png
设置画面权限时的工作步骤如下。
  1. 将许可与路由表相关联
  2. 注册许可资源组和资源
  3. 设置资源权限

步骤1:将许可与路由表相关联

为了表征许可线,在路由表中描述authz标签。
<?xml版本=“ 1.0”编码=“ UTF-8”?>
<routing-jssp-config
  xmlns =“宀:. //万维网intra-mart .JP /路由器/路由- JSSP-Config”中
  xmlns:xsi =“ http://www.w3.org/2001/XMLSchema-instance”
  xsi:schemaLocation =“宀:. //万维网intra-mart .JP /路由器/路由- JSSP-配置路由- JSSP-Config.Xsd”>

  <文件映射 路径=“ / app / foo” 页面=“商业/富”>
    <authz uri =“服务:// sample / foo” 行动=“执行” />
  </文件映射>

</ routing-jssp-config>

注意

将字符代码设置为UTF-8并保存。
<authz-default mapper =” welcome-all” />请删除。
如果是屏幕,请在uri属性中指定一个以“ service://”开头的字符串。
在此,“服务”是表示“资源类型”的字符串,“服务”是“画面/处理”。
资源类型“服务”只有一个“执行” Action 。
因此,在动作属性中指定“执行”。

步骤2:注册许可资源组和资源

为了将示例中创建的屏幕与许可,请使用以下许可配置来注册资源组和资源。
../../../_images/sample_resource_tree.png
注册资源组和资源的方法有两种:“如何从许可设置屏幕注册”和“如何使用作业从文件注册”。
要从许可设置屏幕注册资源,请执行步骤2-1的操作:使用许可设置屏幕注册许可资源组和资源
要使用作业从文件中注册要注册的资源,请执行步骤2-2的操作:使用作业注册许可的资源组和资源

步骤2-1:使用许可设置屏幕注册许可资源组和资源

用Tenant管理员登录intra-mart Accel Platform 。
http:// <主机>:<PORT> / <CONTEXT_PATH> /登录
单击网站地图>租户管理>许可。
许可设置屏幕将打开,单击“启动许可设置”按钮。 (单击后,将显示为下图的红色框所示)
../../../_images/authz_settings_edit_start.png
首先,注册资源组。
将鼠标光标移到资源列中的“屏幕/过程”上以在右侧显示图标,然后单击该图标。
../../../_images/authz_settings_open_policy_detail.png
在“资源详细内容 ”对话框中,单击“下的创建新资源”。
../../../_images/authz_settings_policy_detail_new.png
在“资源组ID”的文本框中输入“ guide-sample-service”。
在“资源组名称”顶部的文本框中,输入“示例编程指南”。
“资源URI”和“描述”可以保留为空白。
点击“确定”按钮。资源组现已注册。
../../../_images/authz_settings_policy_new_dialog.png

注解

可以为“资源组ID”指定任何ID。
通过使用未输入的“ Resource URI”进行注册,可以创建资源组以对资源进行分组。

在实际开发过程中,建议设置“描述”以清楚指示注册到许可管理员的资源组代表哪个屏幕,进程和数据。
在“资源详细内容 ”对话框的“资源层次结构”中,找到您创建的“编程指南示例”。
单击同一行右侧的“打开”图标。
选择“编程指南样本”。
../../../_images/authz_settings_policy_detail_child.png

注意

如果该资源未注册在资源组下,则该资源将不会显示在权限设置网格上。
它显示在资源层次结构中。

注解

“资源层次结构”显示所选资源(组)的父层次结构和子层次结构(一个层次结构)。
接下来,注册资源。
在“资源详细内容 ”对话框中,单击“下的创建新资源”。
在“资源组ID”的文本框中输入“ guide-sample-foo-service”。
在“资源组名称”顶部的文本框中输入“ Hello World”。
在“资源URI”的文本框中输入“ service:// sample / foo”。
您可以将“描述”保留为空白。
点击“确定”按钮。现在,资源已注册。
../../../_images/authz_settings_policy_detail_new2.png

注解

可以为“资源组ID”指定任何ID。
对于“资源URI”,请指定与在路由表中指定的authz标记的uri属性相同的值。
通过输入和注册“资源URI”,您可以创建链接到资源(例如屏幕)的资源。

在实际开发过程中,建议设置“描述”以向许可管理员清楚地指示注册资源代表的屏幕,进程和数据。
单击“资源详细内容 ”对话框右上方的“ x”图标以关闭该对话框。
现在,您已经注册了显示许可屏幕所需的资源组和资源。
接下来,执行步骤3。

步骤2-2:使用作业注册许可资源组和资源

创建一个空的<authz-resource-group.xml>文件,输入以下内容并保存。
<?xml版本=“ 1.0”编码=“ UTF-8”?> <root xmlns = “ http:// www。intra intra-mart .jp / authz / imex / resource-group” xmlns:xsi = “ http:/ /Www.W3.Org/2001/XMLSchema-instance “将 xsi:的schemaLocation =” 的Http :. //万维网intra-mart .JP / AuthZ的/ Imex的/资源组的authz-资源-Group.Xsd“> <AuthZ的服务资源-group id = “ guide-sample-service” > <显示名称> <name locale = “ ja” >样本编程指南</ name> </ display-name> <resource-group-description> <description locale = “ ja” >这是示例编程指南。 </ description> </ resource-group-description> <parent-group id = “ http-services” /> </ authz-resource-group> </ root>

注意

将字符代码设置为UTF-8并保存。

注解

可以在authz-resource-group标记的id属性中指定任何ID。
在父组标签的id属性中指定“ http-services”。

可以在resource-group-description标记中指定资源组的描述。标签是可选的。
在实际开发过程中,建议指定描述以澄清向许可管理员注册的资源组代表的屏幕,处理和数据。
接下来,创建一个空的<authz-resource.xml>文件,输入以下内容并保存。
<?xml版本=“ 1.0”编码=“ UTF-8”?> <root xmlns = “ http:// www。intra intra-mart .jp / authz / imex /资源” xmlns:xsi = “ http:// www .w3.org / 2001 / XMLSchema-instance“ xsi:schemaLocation = ” http:// www。intra intra-mart .jp / authz / imex /资源authz-resource.xsd“ > <authz-resource id = ” guide-sample -foo-service“ uri = ” service://样本/ foo“ > <显示名称> <名称 区域设置= ” ja“ > Hello World </名称> </显示名称> <资源描述> <描述 区域设置= “ ja” >这是示例编程指南。 </ description> </ resource-description> <parent-group id = “ guide-sample-service” /> </ authz-resource> </ root>

注意

将字符代码设置为UTF-8并保存。

注解

可以在authz-resource标记的id属性中指定任何ID。
对于uri属性,请指定与路由表中指定的authz标记的uri属性相同的值。
对于父组标签的id属性,请指定与先前创建的authz-resource-group的id属性相同的值。

您可以在resource-description标记中指定资源的描述。标签是可选的。
在实际开发过程中,建议指定描述以向许可管理员阐明注册资源代表的屏幕,处理和数据。
将创建的<authz-resource-group.xml>和<authz-resource.xml>文件直接放在公共Storage的根目录下。
用Tenant管理员登录intra-mart Accel Platform 。
http:// <主机>:<PORT> / <CONTEXT_PATH> /登录
单击“ 网站地图 ”→“租户管理”→“作业管理”→“ Jobnet设置”。
../../../_images/sitemap_jobnet.png
从“Jobnet一览表”中选择“租户主”-“导入”-“许可(资源组)导入”。
单击屏幕底部的“编辑此Jobnet ”按钮。
从“触发器设置”下拉菜单中选择“重复”,然后单击“新注册”按钮。
选择“仅执行一次”,然后单击“确定”按钮。
选中“启用”复选框,然后单击“使用此内容更新Jobnet ”按钮。
单击确认消息中的“确定”按钮。
../../../_images/jobnet_settings_update.png
从“Jobnet一览表”中选择“租户主”-“导入”-“许可(资源)导入”。
执行相同的操作以更新Jobnet 。
单击“ 网站地图 ”→“租户管理”→“作业管理”→“ Jobnet监视器”。
列表中显示两行“许可(资源组)导入”“许可(资源)导入” ,一览表确保您处于“成功”状态。
../../../_images/jobnet_monitor_search.png
现在,您已经注册了显示许可屏幕所需的资源组和资源。
接下来,执行步骤3。

步骤3:设定资源权限

单击网站地图>租户管理>许可。
许可设置屏幕打开,单击屏幕左上方的“搜索”图标。
在“过滤器资源(垂直轴)”的文本框中输入“ Hello”,然后单击“搜索”按钮。
../../../_images/authz_settings_search.png
您可以看到在资源列的“屏幕/过程”下显示了“编程指南示例”,在其下方显示了“ Hello World”。
这样就完成了此示例屏幕的资源注册。
在这种状态下,访问以下URL。
http:// <HOST>:<PORT> / <CONTEXT_PATH> / app / foo
已确认使用HTTP 403不再可能进行访问。
最后,在此许可设置屏幕上,为“ Hello World”许可设置。
单击网站地图>租户管理>许可。
许可设置屏幕打开,单击屏幕左上方的“搜索”图标。
在“过滤器资源(垂直轴)”的文本框中输入“ Hello”,然后单击“搜索”按钮。
../../../_images/authz_settings_search.png
点击“启动权限设置”按钮。 (单击后,将显示为下图中的红色框)
单击“ Hello World”行与“ Tenant管理员 ”列相交的单元格,然后将其更改为绿色复选框。
../../../_images/authz_settings_set_policy.png
在这种状态下,请尝试再次访问以下URL。
http:// <HOST>:<PORT> / <CONTEXT_PATH> / app / foo
这次,您可以确认可以访问。
在这种情况下,只有具有“ Tenant管理员 ”角色的用户才能查看此示例屏幕。

注解

在本教程中,我们检查了以下几点。

  • 我们使用许可来控制对屏幕的访问。
  • 为了使可许可屏幕的权限设置,我们已注册了与许可屏幕的许可关联的资源和资源组。
  • 管理员打开许可设置屏幕,并设置要控制其访问权限的屏幕资源的授权。