intra-mart Accel Platform / Script研制模式编程指南

«  路由   ::   Contents   ::   访问上下文  »

认可

为了对页面设置访问权限

通过设置路由,可以实现页面访问。
但是在路由表中使用 welcome-all 映射器后认可处理将被省略,因此任何人都可以访问页面。
在实际运行系统时,几乎都需要设置访问权限,只对特定用户显示页面并限制访问。
本章将介绍使用 Accel Platform 提供的认可功能,仅对特定用户显示页面的步骤。

认可的定义

认可的概要

认可是指,通过认证功能控制特定用户对所需资源的访问的功能。
Accel Platform 提供了用 “允许”“禁止” 判定 “谁”、“做什么”、“如何做” 的通用认可功能的机制。
../../../_images/authz_flow.png

主体

认可中的“主体”是表示“谁” 的部分。
Accel Platform 能够通过“用户”“身份”“公司、组织”“职位”“公共组别”“公共组别、职责” 的组合,设置赋予权限的对象。
../../../_images/authz_treegrid_subject.png

资源与资源组

认可中的“资源”是表示“做什么”的部分。
例如,页面及Web服务等的服务型、菜单及门户等的数据型。
资源可以用“资源组别”来设置上下层次。
../../../_images/authz_treegrid_resource.png

资源类型及操作

认可中的“操作”表示“如何做”的部分。
操作内容因资源种类(资源类型)而定。
例如,页面中只有一个“执行”操作。
../../../_images/authz_treegrid_action.png

策略

认可中的“策略”表示“认可”“禁止”的部分。
可以针对主体、资源、动作的组合设置相应策略。
../../../_images/authz_treegrid_policy.png
未设置策略时,将继承上层资源组的权限。
未设置最上层资源组的策略时,将作为 “禁止” 处理。

页面访问的认可设置方法

权限设置流程

通过路由可以根据路由表中设置的信息,对认可权限进行查询。
执行检索时,使用作为键分配给各资源的URI。
../../../_images/router_authz_chain.png
设置页面权限时的操作步骤如下所示。
  1. 使路由表与认可关联
  2. 创建认可的资源组、资源
  3. 导入资源
  4. 对资源设置权限

步骤1:使路由表与认可关联

为了与认可关联,在路由表中编写 authz 标签。
<?xml version="1.0" encoding="UTF-8"?>
<routing-jssp-config
  xmlns="http://www.intra-mart.jp/router/routing-jssp-config"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.intra-mart.jp/router/routing-jssp-config routing-jssp-config.xsd">

  <file-mapping path="/app/foo" page="business/foo" />
    <authz uri="service://sample/foo" action="execute" />
  </file-mapping>

</routing-jssp-config>

警告

将字符编码置为UTF-8并保存。
请删除<authz-default mapper=”welcome-all” />。
在页面的 uri 属性中指定以”service://“开头的字符串。
这里的”service”是表示“资源类型”的字符串,”service”表示“页面处理” 。
“service”资源类型中只提供了一个”execute”(执行)操作。
因此,要在 action 属性中指定 “execute” 。

步骤2:创建认可的资源组、资源

为了将示例中创建的页面与认可关联起来,对认可登记资源组和资源。
../../../_images/sample_resource_tree.png
首先登记资源组。
创建空的<authz-resource-group.xml>文件,输入以下代码并保存。
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.intra-mart.jp/authz/imex/resource-group">
  <authz-resource-group id="guide-sample-service">
    <display-name>
      <name locale="zh_CN">编程指南的示例</name>
    </display-name>
    <parent-group id="http-services" />
  </authz-resource-group>
</root>

警告

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

注解

authz-resource-group 标签的 id 属性中可以指定任意 ID 。
请在 parent-group 标签的 id 属性中指定 “http-services” 。
然后,创建空的<authz-resource.xml>文件,输入以下代码并保存。
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.intra-mart.jp/authz/imex/resource">
  <authz-resource id="guide-sample-foo-service" uri="service://sample/foo">
    <display-name>
      <name locale="ja">Hello World</name>
    </display-name>
    <parent-group id="guide-sample-service" />
  </authz-resource>
</root>

警告

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

注解

authz-resource 标签的 id 属性中可以指定任意 ID 。
uri 属性中,指定与路由表中指定的 authz 标签的 uri 属性相同的值。
parent-group 标签的 id 属性中,指定与先前创建的 authz-resource-group 的 id 属性相同的值。

步骤3:导入资源

把刚才创建的 <authz-resource-group.xml> 与 <authz-resource.xml> 配置在 <STORAGE_PATH>/public/storage 目录下。
利用Tenant管理员身份登录 Accel Platform 。
http://<HOST>:<PORT>/<CONTEXT_PATH>/login
依次点击“网站地图”→“Tenant管理”→“作业管理”→“作业网设置”。
../../../_images/sitemap_jobnet.png
通过“作业网一览”,选择“Tenant管理”-“导入”-“导入认可(资源组)” 。
点击页面下方的“编辑此作业网”按钮。
从“触发器设定”下拉列表中选择“重复指定”并点击“新建”按钮。
选择“只执行1次”,点击“确定”按钮。
勾选“有效”复选框,点击“用此内容更新JOB NET”按钮。
在确认消息中点击“确定”按钮。
../../../_images/jobnet_settings_update.png
通过“作业网一览”选择“Tenant管理”-“导入”-“导入认可(资源)” 。
进行同样操作,更新作业网。
依次点击“网站地图”→“Tenant管理”→“作业管理”→“作业网监视器”。
确认一览中显示了“导入认可(资源组)” “导入认可(资源)”2行数据,且状态为“成功” 。
../../../_images/jobnet_monitor_search.png
至此,对认可的资源登记操作结束。
依次点击“网站地图”→“Tenant管理”→“认可”。
点击认可设置页面左上角的“检索”图标。
在“资源(纵轴)限定”文本框中输入“Hello”并点击“检索”按钮。
../../../_images/authz_settings_search.png
可以确认资源列的“页面处理”下方显示了“编程指南的示例”,再下方显示了“Hello World”。
至此,对该示例页面的资源登记操作结束。
在此状态下尝试访问 http://<HOST>:<PORT>/<CONTEXT_PATH>/app/foo 。
确认发生HTTP 403 无法进行访问。

步骤4:对资源设置权限

最后,通过此认可设置页面对“Hello World”进行认可设置。
依次点击“网站地图”→“Tenant管理”→“认可”。
点击认可设置页面左上角的“检索”图标。
在“资源(纵轴)限定”文本框中输入“Hello”并点击“检索”按钮。
../../../_images/authz_settings_search.png
点击“开始设置权限”按钮。
点击“Hello World”行与“Tenant管理者”列交叉的单元格,变为绿色勾选号。
../../../_images/authz_settings_set_policy.png
在此状态下,再次尝试访问 http://<HOST>:<PORT>/<CONTEXT_PATH>/app/foo 。
这次确认能够正常访问。
这时,只有具有“Tenant管理者”身份的用户才能显示该示例页面。

注解

在本教程中确认了以下要点。

  • 为了控制页面访问,使用了认可功能。
  • 为了能够在认可中使用页面的权限设置,在认可中登记了使认可与页面关联的资源与资源组。
  • 管理者打开认可设置页面,对需要控制访问的页面资源设置了权限。

«  路由   ::   Contents   ::   访问上下文  »