【SAP Fiori】Fiori Launchpadの権限の概要

##はじめに
今回は、Fiori Appをラウンチパッドから実行する際に必要な権限の概要についてまとめます。設定の具体的な方法（ステップ）については他の資料を参照することとし、当記事では割愛します。
Fioriを使う場合、ロールに組み込む対象が従来と比べてかなり増えます。それぞれどのような目的のものなのか理解できるように、この記事を書きました。

##Fiori Launchpadからアプリを実行するときに何が起きているか
ユーザがFiori Launchpadにログインし、何らかのアプリを実行してデータを照会する場合を考えます。このとき、裏では次のようなことが起きていて、それぞれのステップに権限が関係しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/e967d452-393f-be22-eb0d-1b0975b54d5a.png)

図で表すと以下のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/e4780712-d2bc-06cb-507f-a7f7876ed6b5.png)
[UI Content and Authorization Concept](https://help.sap.com/viewer/f3e3a9ffe47f4c039ebd1546747288f2/7.52/en-US/3c49e1a27806488689b2ad7c67e77291.html)の図に加筆

整理すると、フロントエンド、バックエンドそれぞれで以下の権限が必要となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/54808689-e7b5-a1a8-2572-504f7ab19078.png)


参考：[General Authorizations Required for SAP Fiori](https://help.sap.com/viewer/f3e3a9ffe47f4c039ebd1546747288f2/7.52/en-US/cd6e1b6b87dd423ca491f2cd38b7bf4f.html)

##基本の権限
基本の権限設定については以下のドキュメントを参考にしてください。
[Configuring Roles with Launchpad Start Authorizations](https://help.sap.com/viewer/a7b390faab1140c087b8926571e942b7/7.52.3/en-US/85be3fff35604fa09a1668dd97ef4407.html)
[SAP Fiori LL20 – Role and Authorization settings for SAP Fiori launchpad](https://blogs.sap.com/2015/07/09/sap-fiori-ll20-role-and-authorization-settings-for-sap-fiori-launchpad/)

##特定のアプリを使うための権限
特定のアプリをラウンチパッドで使えるようにするために必要な設定について説明します。

###フロントエンド
####タイル表示用の権限
タイルを表示させるためには、カタログとグループというオブジェクトが必要です。カタログとは、あるロールで使えるすべてのアプリの集合です。一方グループは、カタログから特定のアプリ（あるいは全部のアプリ）を抜き出したものです。ラウンチパッドにログインしたときに最初に表示されるのはグループに入っているアプリです。ユーザはカタログから好きなアプリを選択してラウンチパッドに追加することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/31ff919a-a58d-121f-8643-9aeb8dc22308.png)
カタログはタイルとターゲットマッピングから構成されます。
タイルはラウンチパッドから見えるアイコンで、セマンティックオブジェクトとアクションの組を介してターゲットマッピングにつながっています。
セマンティックオブジェクトとは、たとえば"SalesOrder"など、操作対象を表すものです。
ターゲットマッピングにはタイルが選択されたときに起動するFiori Appの情報を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/c4ebf399-3675-82b8-cfee-0eba7bb8b760.png)
「セマンティックオブジェクトとアクションの組」はIntentと呼ばれ、タイルをクリックしたときのURLの一部になります。これによってアプリが一意に識別されます。以下の画面で、Intenthは#以降の部分です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/af4395be-3efe-8ab6-5718-03fc93c480b3.png)

####OData(Model)参照権限
アプリで使うODataのモデルを参照するための権限も必要です。モデルとは、ODataが持っているEntity Setなどの情報（metadata）のことです。ODataの参照権限は、ロールにカタログを割り当てたときに自動的に設定されます。

###バックエンド
####OData(Data)参照権限
バックエンドでもODataサービスの権限が必要になります。
ODataサービスの権限を割り当てる方法は2つあり、一つ目の方法が推奨されています。
①フロントエンドのカタログを参照して割り当て
②マニュアルで割り当て
①の場合、カタログに変更があった場合にレポート(PRGN_COMPARE_ROLE_MENU)を実行すると、更新が必要なロールがわかります。

以下のドキュメントのリンク先に、①の手順について記載されています。
[SAP S/4HANA – How to Create and Generate Backend Security Authorizations for SAP Fiori 2.0](https://blogs.sap.com/2017/03/09/sap-s4hana-1610-how-to-create-and-generate-backend-security-authorizations-for-sap-fiori-2.0/)

####ビジネスオブジェクトに対する権限
上記のドキュメントによれば、カタログを参照してバックエンドのロールを作成すると、ビジネスオブジェクトに対する権限も自動的に割り当たります。
カタログを参照しない場合は、自分で一から必要な権限を割り当てる必要があります。

##参考
ヘルプ
[SAP Fiori: App Implementation](https://help.sap.com/viewer/f3e3a9ffe47f4c039ebd1546747288f2/7.52/en-US/20bc5d521178f55fe10000000a423f68.html)（権限の概要）
[SAP Fiori Launchpad](https://help.sap.com/viewer/a7b390faab1140c087b8926571e942b7/7.52.3/en-US/3198cbbe5d4046c7ba70f3fe007dd56b.html)（権限設定の手順）

ブログ
[SAP Fiori LL20 – Role and Authorization settings for SAP Fiori launchpad](https://blogs.sap.com/2015/07/09/sap-fiori-ll20-role-and-authorization-settings-for-sap-fiori-launchpad/)（基本の権限設定の手順）
[Creating PFCG Role on Back End for Launchpad Catalogs](
https://help.sap.com/viewer/f3e3a9ffe47f4c039ebd1546747288f2/7.52/en-US/6f0e415370107d77e10000000a441470.html)（バックエンドでの権限割当の手順）