認可¶
項目
画面にアクセス権限を設定するために¶
ルータの設定により画面へのアクセスが可能になりました。しかし、ルーティングテーブルで welcome-all マッパーを使用すると認可処理が省略されるため、誰でも画面を表示することができます。実際にシステムを運用する際は、アクセス権限を設定して特定のユーザのみに画面を表示させ、アクセスの制限をかける場合がほとんどです。この章では、 Accel Platform で用意されている認可機能を利用して、用意した画面を特定のユーザにのみ表示させる手順を説明します。
画面へアクセスするための認可設定方法¶
ステップ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”(実行)が 1 つのみ用意されています。そのため、 action 属性には “execute” を指定しておきます。
ステップ2:認可のリソースグループ、リソースを作成する¶
サンプルで作成した画面と認可を紐づけるため、認可に対してリソースグループとリソースを登録します。
まずはリソースグループを登録します。空の<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="ja">プログラミングガイドのサンプル</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 直下に配置します。テナント管理者で Accel Platform にログインします。http://<HOST>:<PORT>/<CONTEXT_PATH>/login「サイトマップ」→「テナント管理」→「ジョブ管理」→「ジョブネット設定」の順にクリックします。
「ジョブネット一覧」 から 「テナントマスタ」-「インポート」-「認可(リソースグループ)インポート」 を選択します。画面下にある 「このジョブネットを編集する」 ボタンをクリックします。「トリガ設定」 のプルダウンから 「繰り返し指定」 を選択して 「新規登録」 ボタンをクリックします。「1回だけ実行する」 を選択状態にして 「決定」 ボタンをクリックします。「有効」 のチェックボックスをチェックして、 「この内容でジョブネットを更新する」 ボタンをクリックします。確認メッセージで 「決定」 ボタンをクリックします。
「ジョブネット一覧」 から 「テナントマスタ」-「インポート」-「認可(リソース)インポート」 を選択します。同じ操作を行い、ジョブネットを更新します。「サイトマップ」→「テナント管理」→「ジョブ管理」→「ジョブネットモニタ」の順にクリックします。一覧に 「認可(リソースグループ)インポート」 「認可(リソース)インポート」 の2行が表示され、 「成功」 になっていることを確認します。
これで認可に対してリソースが登録できました。「サイトマップ」→「テナント管理」→「認可」の順にクリックします。グ可設定画面が開きますので、画面左上の 「検索」 アイコンをクリックします。「リソース(縦軸)の絞込」 のテキストボックスに 「Hello」 を入力して 「検索」 ボタンをクリックします。
リソース列の 「画面・処理」 の下に 「プログラミングガイドのサンプル」、さらにその下に 「Hello World」 が表示されていることが確認できます。これでこのサンプル画面に対するリソースの登録が完了しました。この状態で http://<HOST>:<PORT>/<CONTEXT_PATH>/app/foo へアクセスしてみます。HTTP 403 でアクセスできなくなったことが確認できました。
ステップ4:リソースに対して権限を設定する¶
最後にこの認可設定画面から、 「Hello World」 に対して認可設定を行います。「サイトマップ」→「テナント管理」→「認可」の順にクリックします。認可設定画面が開きますので、画面左上の 「検索」 アイコンをクリックします。「リソース(縦軸)の絞込」 のテキストボックスに 「Hello」 を入力して 「検索」 ボタンをクリックします。
「権限設定を開始する」ボタンをクリックします。「Hello World」 の行と 「テナント管理者」 の列が交わるセルをクリックして、緑色のチェックに変更します。
この状態で、もう一度 http://<HOST>:<PORT>/<CONTEXT_PATH>/app/foo へアクセスしてみます。今度はアクセスできることが確認できました。この場合、 「テナント管理者」 ロールを持つユーザのみがこのサンプル画面を表示することができます。コラム
このチュートリアルでは、下記のポイントを確認しました。
画面へのアクセスを制御するために、認可を利用しました。 画面の権限設定を認可で利用できるようにするために、認可と画面を紐づけるリソースとリソースグループを認可に登録しました。 管理者が認可設定画面を開き、アクセスを制御したい画面のリソースに対して権限を設定しました。