Oracle Analytics Cloud：カスタムのアプリケーションロールに権限を設定する

# はじめに
Oracle Analtyics Cloud（**OAC**）を多くのユーザーで利用する際に、一部のユーザーの権限を制限したいということがあるかもしれません。
例えば、特定のユーザー・グループにデータのダウンロード（エクスポート）を許可したくないというようなケースです。
そのようなことが可能かどうか検証してみました。

# 1. アプリケーション・ロールによる権限設定
特定のアプリケーション・ロールに対して、ワークブックのエクスポートを禁止したいと思います。

## 1.2 アプリケーション・ロールとは
そもそも、アプリケーション・ロールとはある役割（ロール）を持つユーザーの集合です。
OACで使用するユーザー・グループと思っていただいて間違いではありません。
様々な権限は、ユーザー個人ではなくアプリケーション・ロールに対して実施するのがオススメです。

## 1.3 権限設定
「コンソール」から「ユーザーとロール」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/a877627c-1879-f020-de23-7dc276b20c5c.png)

「権限」タブに移動すると、アプリケーション・ロールに割り当て可能な権限が一覧で表示されます。
例えば「データセットの作成と編集」権限をクリックすると、「DV Content Author」アプリケーション・ロールに割り当てられているのがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/7f7667da-4b37-f675-9a20-697d42f0b130.png)

カスタムのアプリケーション・ロールを作成します。
「アプリケーション・ロール」タブに移動して、「アプリケーション・ロールの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/f19f074e-39d6-d57f-fadf-9674f3c7f49d.png)

任意のアプリケーション・ロール名を入力し（空白を含めることはできません）、「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/644b153a-acb6-e7c5-4440-32f8855258d8.png)

作成したアプリケーション・ロールをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/145fe64d-59fa-9cd2-9243-e2f7f7beb057.png)

「権限」タブに移動し、「権限の追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/f9de4504-e60d-25c1-5f95-e65d9f20d6fd.png)

「ドキュメントのワークブックへのエクスポート」権限を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/f7e0ee25-bbd5-9f29-671e-3518a72f896e.png)

カスタムのアプリケーション・ロールに権限が追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/352b89c6-c7cd-9ecf-3114-2c480454957a.png)

## 1.4 ビルトインのアプリケーション・ロールを複製
ビルトインでいくつかのアプリケーション・ロールが設定されています。
最も基本となる「BI Consumer」に着目します。
ビルトインの各アプリケーション・ロールの関係性については、こちらのドキュメントに記載されています。

https://docs.oracle.com/cd/E83857_01/paas/analytics-cloud/acabi/application-roles.html#GUID-3CEED4DB-F124-45AF-A115-75AF7392974C

通常は「BI Consumer」アプリケーション・ロールを割り当てていないと、OACにログインできません。
ところが、このアプリケーション・ロールにはワークブックをエクスポートする権限があります。また、ビルトインのアプリケーション・ロールに対しては権限を編集することができません。
そこで、BI Consumerアプリケーション・ロールを複製し、複製したアプリケーション・ロールからエクスポート権限を除外します。
ユーザーには、複製したアプリケーション・ロールを割り当て、「BI Consumer」アプリケーション・ロールの割り当てを解除します。

「BI Consumer」アプリケーション・ロールをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/b21b5067-0d95-bfcf-0614-6c5af9126a8b.png)

「権限」タブを見ると、エクスポート権限を保持していることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/69581306-04b5-b51a-d25b-21eeb2f724fa.png)

「BI Consumer」アプリケーション・ロールの権限を新しいアプリケーション・ロールにコピーします。
結果的に「BI Consumer」を複製することになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/afb0f1b7-6830-98a9-b5fa-51edc0c190a0.png)

新規に作成するアプリケーション・ロールの名前を入力し、「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/79a7cbb4-f518-f7a4-426c-eb05fb4ea6df.png)

「BI Consumer2」が作成されました。
このアプリケーション・ロールをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/39f6dd9c-c01c-1bf6-a5c4-4e1b278330ff.png)

「BI Consumer2」はカスタムのアプリケーション・ロールなので、権限を編集できます。
「権限」タブに移動し「ドキュメントへのワークブックのエクスポート」権限を取り消します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/8566fbf9-f4b0-d5c7-9413-5ca915f9d450.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/ff5c95bd-09ae-12b8-883a-513ad78d08a1.png)

Identity Domainのグループをこのアプリケーション・ロールに割り当てました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/399492d0-138b-72a1-3b44-801e34ed941a.png)

ワークブックを表示させたいけど、エクスポートを許可したくないユーザーをこのIdentity Domainグループに所属させておきます。
BI Consumerアプリケーション・ロールを直接的または間接的に割り当てないよう注意してください。

# 2. 動作確認
「BI Consumer2」アプリケーション・ロールに所属するユーザーでログインし、ワークブックを開いてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/5108f321-541c-f82e-7d86-e3ece02983bd.png)
エクスポートアイコンが表示されていないことがわかります。

エクスポートを許可したいユーザーは、最初に作成したエクスポート権限を保持しているアプリケーション・ロールにも所属させます。または、「BI Consumer2」ではなく、「BI Consumer」を割り当てます。
このようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/41e2deb6-4e08-b1eb-f698-797eaf853c81.png)

# 3. クラシックなダッシュボードへのアクセス
「BI Consumer 2」アプリケーション・ロールに所属するユーザーでクラシックホームを開こうとすると、権限不足で開くことができません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/68920f28-7eac-df15-635b-b2fe03b258ce.png)

これは、このユーザーに「BI Consumer」アプリケーション・ロールが割り当てられていないためです。
「BI Consumer」に割り当てられているダッシュボード閲覧に必要な権限が、「BI Consumer2」に割り当てられていないためです。

# 3.1 権限設定の変更
一旦、管理者ユーザーでOACにログインし直してクラシックホームの管理メニューを開き、「権限の管理」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/69b84a74-137f-2591-6ba5-07f364867e07.png)

必要な権限を「BI Consumer2」に割り当てていきます。
※下記は一例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/cef6d1cc-0aa8-4e6d-8f23-6107d51f95ab.png)

# ドキュメント

https://docs.oracle.com/en/cloud/paas/analytics-cloud/acabi/configure-what-users-can-see-and-do.html#GUID-5389085A-04C7-47CD-9C4C-E0176E7E114F