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