メタデータ駆動型の権限 metadata-driven-permissions

メタデータ駆動型の権限は、フォルダー構造ではなくアセットのコンテンツまたはメタデータプロパティに基づいて、AEM Assets オーサーに対するアクセス制御の決定を可能にするのに使用される機能です。 この機能を使用すると、アセットのステータス、タイプまたは定義したカスタムプロパティなどの属性を評価するアクセス制御ポリシーを定義できます。

例を見てみましょう。 クリエイティブは、自分の作品を AEM Assets のキャンペーン関連フォルダーにアップロードします。これは、使用が承認されていない処理中のアセットである可能性があります。 マーケターには、このキャンペーンで承認されたアセットのみが表示されていることを確認します。 メタデータプロパティを利用すると、アセットが承認され、マーケターが使用できることを示すことができます。

仕組み

メタデータ駆動型の権限を有効にするには、「ステータス」や「ブランド」など、アクセス制限を推進するアセットのコンテンツまたはメタデータプロパティを定義する必要があります。 これらのプロパティを使用すると、特定のプロパティ値を持つアセットにアクセスできるユーザーグループを指定するアクセス制御エントリを作成できます。

前提条件

メタデータ駆動型の権限を設定するには、最新バージョンに更新された AEM as a Cloud Service 環境へのアクセスが必要です。

OSGi 設定 configure-permissionable-properties

メタデータ駆動型の権限を実装するには、開発者は AEM as a Cloud Service に OSGi 設定をデプロイする必要があります。これにより、特定のアセットのコンテンツまたはメタデータプロパティでメタデータ駆動型の権限を強化できます。

  1. アクセス制御に使用するアセットのコンテンツまたはメタデータプロパティを決定します。 プロパティ名は、アセットの jcr:content または jcr:content/metadata リソース上の JCR プロパティ名です。 ここでは、status というプロパティにします。

  2. AEM Maven プロジェクト内に OSGi 設定 com.adobe.cq.dam.assetmetadatarestrictionprovider.impl.DefaultRestrictionProviderConfiguration.cfg.json を作成します。

  3. 次の JSON を作成したファイルに貼り付けます。

    code language-json
    {
      "restrictionPropertyNames":[
        "status",
        "brand"
      ],
      "restrictionContentPropertyNames":[
        "dam:rightsManaged"
      ],
      "enabled":true
    }
    
  4. プロパティ名を必要な値に置き換えます。 restrictionContentPropertyNames 設定プロパティは、jcr:content リソースプロパティに対する権限を有効にする目的で使用され、restrictionPropertyNames 設定プロパティは、アセットの jcr:content/metadata リソースプロパティに対する権限を有効にします。

基本アセット権限のリセット

制限ベースのアクセス制御エントリを追加する前に、新しいト上位レベルのエントリを追加して、アセットの権限評価の対象となるすべてのグループ(「寄稿者」など)への読み取りアクセスを最初に拒否する必要があります。

  1. ツール/セキュリティ/権限​画面に移動します。
  2. 寄稿者​グループ(またはすべてのユーザーグループが属する他のカスタムグループ)を選択します。
  3. 画面の右上隅にある「ACE を追加」をクリックします。
  4. パス​に「/content/dam」を選択します。
  5. 権限​に jcr:read と入力します。
  6. 権限タイプ​に「Deny」を選択します。
  7. 制限で「rep:ntNames」を選択し、制限値​として dam:Asset と入力します。
  8. 保存」をクリックします。

アクセスを拒否

メタデータによるアセットへのアクセス権の付与

アクセス制御エントリを追加して、設定済みのアセットメタデータプロパティ値に基づいてユーザーグループに読み取りアクセス権を付与できるようになりました。

  1. ツール/セキュリティ/権限​画面に移動します。
  2. アセットにアクセス権を付与する必要があるユーザーグループを選択します。
  3. 画面の右上隅にある「ACE を追加」をクリックします。
  4. パス​に「/content/dam」(またはサブフォルダー)を選択します。
  5. 権限​に jcr:read と入力します。
  6. 権限タイプ​に「Allow」を選択します
  7. 制限​で、OSGi 設定で設定済みのアセットメタデータプロパティ名のいずれかを選択します。
  8. 制限値」フィールドに必要なメタデータプロパティ値を入力します。
  9. +」アイコンをクリックして、アクセス制御エントリに制限を追加します。
  10. 保存」をクリックします。

アクセスを許可

有効なメタデータ駆動型の権限

サンプルフォルダーには、複数のアセットが含まれます。

管理者のビュー

権限を設定し、それに応じてアセットメタデータプロパティを設定すると、ユーザー(ここでは、マーケターユーザー)には、承認済みアセットのみが表示されます。

マーケターのビュー

メリットと考慮事項

メタデータ駆動型の権限のメリットは次のとおりです。

  • 特定の属性に基づいて、アセットへのアクセスをきめ細かく制御します。
  • アクセス制御ポリシーをフォルダー構造から切り離すことで、より柔軟なアセット編成が可能になります。
  • 複数のコンテンツまたはメタデータプロパティに基づいて複雑なアクセス制御ルールを定義できます。
NOTE
次に注意することが重要です。
  • プロパティは、文字列の等価性=)(より大きい(>)または日付プロパティの場合、まだサポートされていない他のデータタイプまたは演算子)を使用して制限に照らして評価されます。
  • 1 つの制限プロパティに対して複数の値を許可するには、「タイプを選択」ドロップダウンから同じプロパティを選択し、新しい制限値(例:status=approvedstatus=wip)を入力し、「+」をクリックして制限をエントリに追加することで、アクセス制御エントリに追加の制限を追加できます。> 複数の値を許可
  • AND制限​はサポートされています。異なるプロパティ名を持つ1つのアクセス制御エントリ内の複数の制限(例:status=approvedbrand=Adobe)は、AND条件として評価されます。つまり、選択したユーザーグループには、次のアセットへの読み取りアクセスが付与されます。 status=approved AND brand=Adobe
    複数の制限を許可
  • OR制限​は、メタデータプロパティ制限を持つ新しいアクセス制御エントリを追加することでサポートされます。例えば、制限status=approvedを持つ単一のエントリとbrand=Adobeを持つ単一のエントリは、次のように評価されます status=approved OR brand=Adobe
    複数の制限を許可
recommendation-more-help
a483189e-e5e6-49b5-a6dd-9c16d9dc0519