2016-08-02 54 views
0

有沒有辦法爲AEM中的資產提供安全和授權?有沒有辦法爲AEM中的資產提供安全和授權

我們將資產放置到頁面,並且所有資產都在登錄後由最終用戶查看。我們希望限制頁面上的資源只應顯示給特定用戶(即使他們可以登錄)。如果用戶擁有資產的URL並且登錄後可以查看該資產。

要求是限制資產只有特定的用戶,即使他們可以登錄到該頁面。

欣賞你的時間。

回答

1

此功能在AEM中支持OOTB。您需要建立正確的羣組,以正確訪問資產。默認情況下,發佈實例的「匿名」用戶對/ content/dam具有讀取權限。你需要做以下 -

  • 刪除匿名用戶訪問,還檢查要禁止訪問,並相應地更新它們的所有其他羣體(你需要做到這一點使用/ useradmin控制檯)
  • 創建不同羣體,您可以指定根據所需的訪問(其更好地管理不是由用戶通過組接入)/大壩
  • 對這些每個組提供下/內容訪問到相關的文件夾
  • 將用戶添加到這些不同的用戶根據需要組

現在,當用戶登錄時,他們將只能訪問僅限於其組的資產。

有關AEM用戶管理的更多詳細信息,請參閱this article

+0

我認爲鏈接文章特定於AEM社區,有關用戶和訪問控制的一般信息位於https://docs.adobe.com/docs/en/aem/6-2/administer/security/security.html –

+0

謝謝,更新了鏈接 –

+0

有沒有辦法以編程方式而不是Useradmin。我們有所有用戶,組設置。但我們應該能夠讓我們的作者選擇屬性。我們不能讓他們進入useradmin。 – Karthik

0

正如您所說的,您希望作者能夠控制哪些組可以查看資產。因此,在組件的作者對話框中填充所有用戶組以使其可配置爲作者。然後在您的代碼中檢查該組是否具有資產路徑權限 -

UserManager userManager = resourceResolver.adaptTo(UserManager.class); 
Authorizable auth = userManager.getAuthorizable(<<group configured by author>>); 
JackrabbitAccessControlManager acm = (JackrabbitAccessControlManager) adminSession.getAccessControlManager(); 
Set<Principal> principals = new HashSet<Principal>(); 
principals.add(auth.getPrincipal()); 
Privilege[] privileges = acm.getPrivileges(<<current assets path>>, principals); 

您可以檢查特權數組的權限。如果組有權限而不是僅呈現資產。

相關問題