FastComments.com

什麼是存取控制? Internal Link

With FastComments SSO Access Control,有時稱為 RBAC,使用者可以被限制只能存取特定的頁面或評論串。此外, 使用者只能 @mention 同群組的其他人。

詳細說明

我們可以將 Users 以及選擇性地將 Pages 放入群組。

Users 被放入群組,且在 Widget Settings 中啟用 Limit Comments by SSO User Groups 時,使用者 將只會看到來自相同群組使用者的評論,且只能 @mention 相同群組的使用者。

此外,Pages 也可以被放入群組,然後使用者只能存取他們有權限存取的頁面的評論。

我們稱之為 "User-Level" 群組與 "Page-Level" 群組。

那麼,哪一種適合您?

使用 User-Level 群組如果...

  • 您想要使用相同的 urlId 值(頁面 URL 或文章 ID),但依群組限制評論。
  • 例如,您希望有「New User」和「Veteran User」群組,且他們在相同頁面上永遠不會看到彼此的評論。

使用 Page-Level 群組如果...

  • 您的群組有特定的頁面。
  • 例如,屬於「Public Pages」群組的使用者不應該查看「Top Secret」的文章。

運作方式 Internal Link

FastComments 的存取控制透過將 PagesUsers 指派到所需的群組來運作。

群組只是字串識別碼,例如 GREENabc-123

UsersPages 並不限於單一群組。它們各自最多可被指派至 1001000 個群組。

存取未授權的頁面

如果使用者嘗試存取其無權限的頁面,會看到如下的錯誤訊息:

授權失敗範例
授權失敗範例

訊息文字可以自訂。


規範 Internal Link


定義多名使用者如何互動並進行測試很複雜。以下是我們用於存取控制的規格,您可以用來測試您的實作:

頁面群組 ids 為 null,使用者群組 ids 為 null - 應該可以存取。
頁面群組 ids 為 null,使用者有群組 ids - 應該可以存取。
頁面有群組 ids,使用者群組 ids 為 null - 應該可以存取。
頁面有群組 ids,使用者的群組為空列表 - 不應該可以存取。
頁面有群組 ids,使用者有群組 ids - 有交集時 - 應該可以存取。
頁面有群組 ids,使用者有群組 ids - 無交集時 - 不應該可以存取。
頁面的群組 ids 為空列表(沒有人有存取權),使用者為 null - 不應該可以存取。

SSO 使用者 A = 未定義群組 ids(null = 完全存取)。
SSO 使用者 B = 未定義群組 ids(null = 完全存取)。
A 可以 @B。

SSO 使用者 A = 未定義群組 ids(null = 完全存取)。
SSO 使用者 B = 定義了群組 ids。
A 可以 @B。

SSO 使用者 A = 定義了群組 ids。
SSO 使用者 B = 未定義群組 ids(null = 完全存取)。
A 可以 @B。

SSO 使用者 A = 群組 ids = [a]。
SSO 使用者 B = 群組 ids = [b]。
A 不可以 @B。

SSO 使用者 A = 群組 ids = [a]。
SSO 使用者 B = 群組 ids = [a, b]。
A 可以 @B

實作 Internal Link

在其他群組中提及使用者

如果兩位使用者分屬兩個互不重疊的群組集合,且沒有交集,他們將無法彼此 @mention

如果使用者手動輸入 @mention 並提交留言,該內容將維持為純文字。另一位使用者不會被標註。

維護群組

Groups 是分別透過 PagesSSOUsers API 資源定義的。

Pages API 可被呼叫來定義允許存取該頁面的群組集合。預設情況下,所有群組,以及 不屬於任何群組的使用者,皆有存取權限。

類似地,SSOUsers API 可被呼叫來定義與每位使用者關聯的群組。

對於這兩個資源,設定或更新群組的時機沒有限制。

如果只想限制使用者彼此 @mention,則無需考慮 Pages

注意!

定義與更新 SSO 使用者群組不需要使用 API,取而代之可以透過在傳遞給留言元件的 SSO 載荷中定義 群組 id 來自動更新。然而,對於大量的群組清單,不建議這麼做,因為使用者 必須在每次頁面載入時提交此載荷。