メタデータ駆動型の権限 metadata-driven-permissions
メタデータ駆動型の権限は、フォルダー構造ではなくアセットのメタデータプロパティに基づいて、AEM Assets オーサーに対するアクセス制御の決定を可能にするのに使用される機能です。この機能を使用すると、アセットのステータス、タイプまたは定義したカスタムメタデータプロパティなどの属性を評価するアクセス制御ポリシーを定義できます。
例を見てみましょう。クリエイティブは、自分の作品を AEM Assets のキャンペーン関連フォルダーにアップロードします。これは、使用が承認されていない処理中のアセットである可能性があります。マーケターには、このキャンペーンで承認されたアセットのみが表示されていることを確認します。メタデータプロパティを利用すると、アセットが承認され、マーケターが使用できることを示すことができます。
仕組み
メタデータ駆動型の権限を有効にするには、「ステータス」や「ブランド」など、アクセス制限を推進するアセットメタデータプロパティを定義する必要があります。これらのプロパティを使用すると、特定のプロパティ値を持つアセットにアクセスできるユーザーグループを指定するアクセス制御エントリを作成できます。
前提条件
メタデータ駆動型の権限を設定するには、最新バージョンに更新された AEM as a Cloud Service 環境へのアクセスが必要です。
OSGi 設定 configure-permissionable-properties
メタデータ駆動権限を実装するには、開発者は OSGi 設定をAEM as a Cloud Serviceにデプロイする必要があります。これにより、特定のアセットメタデータプロパティで、メタデータ駆動権限を強化できます。
-
アクセス制御に使用するアセットメタデータプロパティを決定します。プロパティ名は、アセットの
jcr:content/metadata
リソース上の JCR プロパティ名です。 ここでは、status
というプロパティにします。 -
AEM Maven プロジェクトに OSGi 設定
com.adobe.cq.dam.assetmetadatarestrictionprovider.impl.DefaultRestrictionProviderConfiguration.cfg.json
を作成します。 -
作成したファイルに次の JSON を貼り付けます。
code language-json { "restrictionPropertyNames":[ "status", "brand" ], "enabled":true }
-
プロパティ名を必要な値に置き換えます。
基本アセット権限のリセット
制限ベースのアクセス制御エントリを追加する前に、新しいト上位レベルのエントリを追加して、アセットの権限評価の対象となるすべてのグループ(「寄稿者」など)への読み取りアクセスを最初に拒否する必要があります。
- ツール→セキュリティ →権限 画面に移動します
- 投稿者 グループ(またはすべてのユーザーグループが属する他のカスタムグループ)を選択します
- 画面の右上隅にある「ACE を追加」をクリックします。
- パス の
/content/dam
を選択 - 権限 の
jcr:read
を入力 - 権限タイプ の
Deny
を選択 - 「制限」で「
rep:ntNames
」を選択し、「制限値」として「dam:Asset
」と入力します - 「保存」をクリックします。
メタデータによるアセットへのアクセス権の付与
アクセス制御エントリを追加して、 設定されたアセットメタデータプロパティ値に基づいてユーザーグループに読み取りアクセス権を付与できるようになりました。
- ツール→セキュリティ →権限 画面に移動します
- アセットにアクセスできるユーザーグループを選択します
- 画面の右上隅にある「ACE を追加」をクリックします。
- Path の
/content/dam
(またはサブフォルダー)を選択 - 権限 の
jcr:read
を入力 - 権限タイプ の
Allow
を選択 - Restrictions で、OSGi 設定で 設定されたアセットメタデータプロパティ名の 1 つを選択します
- 必須のメタデータプロパティ値を「制限値」フィールドに入力します
- + アイコンをクリックして、アクセス制御エントリに制限を追加します
- 「保存」をクリックします。
有効なメタデータ駆動権限
サンプルフォルダーには、複数のアセットが含まれます。
権限を設定し、それに応じてアセットメタデータプロパティを設定すると、ユーザー(ここでは、マーケターユーザー)には、承認済みアセットのみが表示されます。
メリットと考慮事項
メタデータ駆動権限の利点は次のとおりです。
- 特定の属性に基づいて、アセットへのアクセスをきめ細かく制御します。
- アクセス制御ポリシーをフォルダー構造から切り離すことで、より柔軟なアセット編成が可能になります。
- 複数のメタデータプロパティに基づいて複雑なアクセス制御ルールを定義できます。
- メタデータプロパティは、文字列等価 (
=
)を使用して、制限に照らして評価されます(他のデータ型や演算子は、より大きい(>
)プロパティや日付プロパティではサポートされていません) - 1 つの制限プロパティに対して複数の値を許可するには、「タイプを選択」ドロップダウンから同じプロパティを選択し、新しい制限値(例:
status=approved
、status=wip
)を入力し、「+」をクリックして制限をエントリに追加することで、アクセス制御エントリに追加の制限を追加できます。
- AND 制限 は、異なるプロパティ名(例:
status=approved
、brand=Adobe
)の 1 つのアクセス制御エントリ内の複数の制限を介してサポートされます。つまり、選択されたユーザーグループには、status=approved AND brand=Adobe
のアセットに対する読み取りアクセス権が付与され、AND 条件として評価されます
- OR 制限 は、メタデータプロパティ制限を持つ新しいアクセス制御エントリを追加することでサポートされ、エントリに OR 条件を確立します。例えば、制限
status=approved
を持つ単一のエントリと、brand=Adobe
を持つ単一のエントリが、status=approved OR brand=Adobe
として評価されます