FastComments.com

SAML

FastComments 支援 SAML 2.0 驗證,適用於 Flex 與 Pro 方案的客戶。SAML 啟用安全的單一登入 (SSO) 驗證,透過您組織的身份提供者,允許使用者使用其現有的公司憑證存取 FastComments。 本指南涵蓋 SAML 驗證的設定、組態與疑難排解。

什麼是 SAML? Internal Link

SAML (Security Assertion Markup Language) 是一種基於 XML 的開放標準,用於在各方之間交換身份驗證和授權資料,特別是在身份提供者 (IdP) 與服務提供者 (SP) 之間。

How SAML Works

SAML 透過允許使用者在其身份提供者上只進行一次驗證,然後存取多個應用程式而無需重複輸入憑證,來實現單一登入 (SSO)。當使用者嘗試存取 FastComments 時:

  1. Authentication Request: FastComments 將使用者重新導向到您的身份提供者
  2. User Authentication: 使用者在您的 IdP(例如 Active Directory、Okta、Azure AD)進行驗證
  3. SAML Response: IdP 向 FastComments 發送已簽署的 SAML 聲明
  4. User Access: FastComments 驗證該聲明並授予已驗證使用者存取權限

Benefits of SAML

  • Enhanced Security: 集中式驗證可降低與密碼相關的安全風險
  • Improved User Experience: 使用者只需登入一次即可無縫存取多個應用程式
  • Compliance: 有助於滿足存取控制與稽核軌跡的法規要求
  • Administrative Control: IT 管理員可維持集中式的使用者管理

SAML 2.0 Support

FastComments 實作了 SAML 2.0,此為 SAML 標準中被廣泛採用的版本。我們的實作支援:

  • HTTP-POST 與 HTTP-Redirect 綁定
  • 已簽署的 SAML 回應與聲明
  • 加密聲明(可選)
  • 多種簽章與摘要演算法
  • 各種名稱識別符格式

SAML 與 SSO 的比較 Internal Link

FastComments 提供 SSO 和 SAML 認證。了解差異有助於您為組織選擇合適的方法。

Simple/Secure SSO 流程

FastComments 提供兩種不同的 SSO 流程,用於透過您的網站在評論元件中進行驗證。這與 SAML 不同,且不需要 SAML。Simple SSO 僅需將一個物件傳給評論元件,而 Secure SSO 則在此基礎上使用 API 金鑰對有效載荷進行雜湊。

SAML 則會對整個產品進行使用者驗證(基於其權限)以及評論元件的驗證(如果使用者為我們的網域啟用了第三方 Cookie)。

SAML Authentication

SAML 是一種企業級的驗證協議,提供更完整的安全性與整合能力:

  • Implementation: 需要設定身分提供者 (IdP) 並進行憑證交換
  • Security: 使用已簽署的 XML 斷言並支援加密
  • Use Case: 適合已有 SAML 基礎設施(Active Directory、Okta 等)的企業
  • Setup Complexity: 較為複雜 - 需要 IdP 設定與憑證管理
  • Enterprise Features: 進階的角色對應、集中式用戶管理、稽核紀錄

When to Choose SAML

若您的組織符合下列情況,請考慮使用 SAML 認證:

  • 已在使用相容 SAML 的身分提供者(Okta、Azure AD、ADFS 等)
  • 需要企業級的安全與合規性
  • 需要集中式的用戶管理與存取控制
  • 有多個應用程式使用 SAML 進行驗證
  • 需要詳細的稽核紀錄與安全報告

When to Choose Simple or Secure SSO

如果您符合下列情況,我們以元件為中心的 SSO 解決方案可能就足夠:

  • 擁有自訂的驗證系統
  • 需要快速實作且設定最少
  • 不需要整合企業的身分提供者
  • 希望直接從您的應用控制使用者資料
  • 只有較簡單的安全性需求

Simple 和 Secure SSO 常用於線上入口網站、部落格等情境,使用者已經有透過您的網站或應用程式的帳號,但不一定使用 SAML。

使用者角色與權限 Internal Link

FastComments 將 SAML 使用者角色對應到內部權限,為您的組織啟用基於角色的存取控制。

FastComments 角色系統

FastComments 使用基於角色的權限系統,使用者可擁有一個或多個角色以決定其存取等級與權限。

可用的 FastComments 角色

管理角色

fc-account-owner

  • Permissions: 完整的管理存取權限
  • Capabilities: 所有功能、帳務管理、使用者管理
  • Use Case: 主要的帳戶管理員與擁有者

fc-admin-admin

  • Permissions: 大部分功能的管理存取權限
  • Capabilities: 使用者管理、設定、審核。可管理其他管理員。
  • Use Case: 次要管理員與 IT 人員

fc-billing-admin

  • Permissions: 帳務與訂閱管理
  • Capabilities: 付款方式、發票、訂閱變更
  • Use Case: 財務團隊成員與帳務聯絡人

專門角色

fc-analytics-admin

  • Permissions: 存取分析與報告
  • Capabilities: 檢視網站統計、使用者互動資料
  • Use Case: 行銷團隊與資料分析師

fc-api-admin

  • Permissions: API 存取與管理
  • Capabilities: API 憑證、Webhook 設定
  • Use Case: 開發人員與技術整合者

fc-moderator

  • Permissions: 留言審核權限
  • Capabilities: 核准/拒絕留言、管理垃圾留言
  • Use Case: 社群版主與內容管理人員

角色映射設定

SAML 屬性來源

FastComments 可接受來自不同 SAML 屬性名稱的角色資訊,以確保與不同身分提供者相容:

標準屬性名稱:

  • roles
  • groups
  • memberOf
  • role
  • group

Microsoft/ADFS 屬性:

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/role
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role

支援的角色格式

陣列格式 (首選):

<saml:Attribute Name="roles">
    <saml:AttributeValue>fc-admin-admin</saml:AttributeValue>
    <saml:AttributeValue>fc-moderator</saml:AttributeValue>
</saml:Attribute>

逗號分隔格式:

<saml:Attribute Name="roles">
    <saml:AttributeValue>fc-admin-admin,fc-moderator</saml:AttributeValue>
</saml:Attribute>

單一角色格式:

<saml:Attribute Name="roles">
    <saml:AttributeValue>fc-admin-admin</saml:AttributeValue>
</saml:Attribute>

身分提供者角色設定

Microsoft Azure AD

  1. 應用程式角色設定:

    • 在您的 Azure AD 應用中定義 FastComments 角色
    • 將使用者指派到適當的應用角色
    • 設定 claim 以包含已指派的角色
  2. 屬性對應:

    Attribute Name: roles
    Source Attribute: user.assignedroles

Okta

  1. 群組指派:

    • 建立與 FastComments 角色名稱相符的群組
    • 將使用者指派到適當的群組
    • 設定屬性聲明
  2. 屬性聲明:

    Name: roles
    Value: user.groups
    Filter: Starts with "fc-"

Google Workspace

  1. 群組對應:

    • 建立組織單位或群組
    • 使用 FastComments 角色前綴命名群組
    • 設定屬性對應
  2. 自訂屬性:

    Attribute Name: roles
    Value: Groups or custom schema attribute

使用者的預設行為

沒有角色的使用者

當 SAML 使用者沒有角色或角色無法辨識時:

  • 使用者會被建立為一般留言者
  • 不會授予任何管理存取權
  • 可以發佈並管理自己的留言
  • 無法存取管理後台功能

角色繼承

  • 使用者可以同時擁有多個角色
  • 權限為累加(採用最高權限層級)
  • IdP 中的角色變更會在下一次登入時反映

管理 SAML 使用者

使用者建立

當使用者第一次透過 SAML 登入時:

  1. 使用者帳戶: 以電子郵件為識別自動建立
  2. 角色指派: 根據 SAML 屬性套用角色
  3. 個人資料資訊: 若提供則填入名字/姓氏
  4. 權限啟用: 角色會立即生效

角色更新

既有的 SAML 使用者會接收角色更新:

  1. 登入觸發: 角色更新在每次 SAML 登入時發生
  2. 立即生效: 新權限會立即套用
  3. 角色移除: 被移除的角色會自動撤銷
  4. 稽核追蹤: 角色變更會記錄在稽核日誌中

自訂角色對應

企業自訂化

針對有特定需求的企業客戶:

  • 可將自訂角色名稱對應到 FastComments 權限
  • 可實作複雜的角色層級
  • 可設定部門專屬的存取控制

如需自訂角色對應設定,請聯絡 FastComments 支援。

角色驗證

FastComments 會驗證進入的角色:

  • 無法辨識的角色會被忽略(不會被拒絕)
  • 格式錯誤的角色屬性會記錄以供故障排除
  • 若 SAML 聲明缺少角色資訊,使用者會保留現有角色

最佳實務

角色管理

  1. 最小權限原則: 指派最少必要的權限
  2. 定期稽核: 定期檢視使用者角色與存取權
  3. 清晰命名: 在您的 IdP 中使用具描述性的群組名稱
  4. 文件化: 維護角色指派的文件

安全考量

  1. 角色屬性: 確保 SAML 回應中的角色屬性已妥善保護
  2. 屬性驗證: 驗證只有授權系統能指派角色
  3. 存取檢閱: 定期檢查管理角色的指派
  4. 監控: 監控角色變更與管理操作

疑難排解角色問題

常見問題

角色未套用:

  • 檢查 SAML 屬性名稱是否符合支援格式
  • 驗證 IdP 是否發送角色資訊
  • 確認角色值與 FastComments 角色名稱完全相符

存取被拒:

  • 驗證使用者在 IdP 中是否有適當的角色指派
  • 檢查角色拼寫與大小寫敏感性
  • 確認角色在 SAML 回應中格式正確

權限遺失:

  • 檢視角色定義與所需權限
  • 檢查是否有衝突的角色指派
  • 驗證使用者在角色變更後是否已登入過

安全最佳實務 Internal Link

SAML 實作安全對於保護貴組織的驗證基礎設施與使用者資料至關重要。

SAML 安全基礎

數位簽章

SAML 回應簽署

  • 所有 SAML 回應必須由 IdP 以數位方式簽署
  • FastComments 使用 IdP 的公鑰憑證驗證簽章
  • 防止驗證斷言被竄改
  • 確保回應來自受信任的 IdP

憑證驗證

  • 憑證會根據已設定的 IdP 憑證進行驗證
  • 憑證鏈驗證確保信任層級
  • 已過期或無效的憑證會被拒絕
  • 憑證輪換應事先規劃與協調

斷言安全

受眾限制

  • SAML 斷言包含受眾限制(SP 實體 ID)
  • 防止斷言在其他服務提供者上重放攻擊
  • FastComments 驗證受眾是否符合租戶設定
  • 拒絕針對其他應用程式的斷言

基於時間的驗證

  • 斷言包含基於時間的有效窗口
  • 強制執行 NotBeforeNotOnOrAfter 條件
  • 防止舊斷言被重放
  • 時鐘偏差容忍度可設定

通訊安全

傳輸層安全

HTTPS 要求

  • 所有 SAML 通訊皆透過 HTTPS 進行
  • 必須使用 TLS 1.2 或更高版本
  • 憑證驗證可防止中間人攻擊
  • 安全的通訊可保護敏感的驗證資料

端點安全

  • SAML 端點使用安全且已驗證的連線
  • IdP 與 SP 端點必須支援現代 TLS
  • 弱加密套件會被拒絕
  • 可實作憑證釘選以提升安全性

資料保護

敏感資料處理

  • SAML 斷言可能包含敏感的使用者資訊
  • 資料在傳輸過程中加密,且以安全方式處理
  • 臨時儲存會被最小化且受到保護
  • 使用者資料保留遵循隱私需求

斷言加密 (可選)

  • SAML 斷言可加密以提升安全性
  • 在斷言經過不受信任的網路時特別有用
  • 需要在 FastComments 中配置私鑰
  • 大多數部署改以 TLS 加密為主

驗證安全

單一登入的好處

集中式驗證

  • 降低與密碼相關的安全風險
  • 使安全政策保持一致
  • 提供單一的存取控制點
  • 促進符合安全標準

會話管理

  • SAML 可建立安全的會話
  • 會話逾時可集中管理
  • 單點登出功能(若 IdP 支援)
  • 減少憑證在各應用程式間的暴露

多因素驗證

IdP 多因素驗證整合

  • 多因素驗證需求由身分提供者強制執行
  • FastComments 繼承 IdP 的安全政策
  • 支援多種 MFA 方法(簡訊、驗證器應用程式、硬體令牌)
  • 集中式 MFA 政策管理

存取控制安全

基於角色的存取控制

最小權限原則

  • 為使用者分配最低必要的權限
  • 使用具體角色而非過於寬泛的權限
  • 定期檢視角色分配
  • 當不再需要時移除存取權

角色驗證

  • SAML 角色屬性會被驗證與清理
  • 未知角色會被忽略(不會被拒絕)
  • 角色變更會在登入時立即套用
    • 會保留角色變更的稽核紀錄

管理員存取

管理員角色保護

  • 管理員角色需明確指派
  • 監控管理員的存取與活動
  • 為敏感角色指派實作批准工作流程
  • 定期稽核管理員帳號

身分提供者安全

IdP 設定安全

憑證管理

  • 使用強度高的憑證(RSA-2048 或更高)
  • 實作適當的憑證輪換程序
  • 在 IdP 端安全儲存私鑰
  • 監控憑證到期日

存取控制

  • 限制誰能修改 SAML 應用程式設定
  • 為設定變更實作批准流程
  • 監控設定變更與存取
  • 定期進行 IdP 設定的安全檢查

屬性安全

敏感屬性保護

  • 在 SAML 屬性中盡量減少敏感資料
  • 使用角色識別碼而非敏感的群組名稱
  • 加密包含敏感資訊的斷言
  • 遵循資料最小化原則

屬性驗證

  • 驗證所有傳入的 SAML 屬性
  • 清理屬性值以防止注入攻擊
  • 在適當情況下實作屬性值限制
  • 記錄可疑或格式錯誤的屬性

監控與稽核

驗證監控

失敗驗證追蹤

  • 監控失敗的 SAML 驗證嘗試
  • 異常驗證模式時發出警報
  • 追蹤憑證驗證失敗
  • 記錄與設定相關的錯誤

成功監控

  • 監控成功驗證的比例
  • 追蹤使用者角色分配與變更
  • 驗證正常驗證流程的時間
  • 監控意外的使用者建立

安全事件記錄

稽核紀錄維護

  • 記錄所有 SAML 驗證事件
  • 保留設定變更的紀錄
  • 追蹤管理員操作與存取
  • 以防篡改的方式安全儲存日誌

警報設定

  • 為安全相關事件設定警報
  • 監控憑證到期
  • 重複驗證失敗時發出警報
  • 通知異常的管理員活動

合規性考量

資料隱私

使用者資料保護

  • 遵循 GDPR、CCPA 及相關隱私法規
  • 最小化個人資料的收集與處理
  • 提供使用者對個人資訊的控制權
  • 實作資料保留與刪除政策

跨境資料傳輸

  • 考慮資料所在地的要求
  • 為國際傳輸實作適當的防護措施
  • 記錄 IdP 與 FastComments 之間的資料流
  • 確保符合當地隱私法規

安全標準

產業標準合規

  • 遵循 SAML 2.0 安全最佳實踐
  • 實作 NIST 驗證指南
  • 考慮 SOC 2 與 ISO 27001 的要求
  • 定期進行安全評估與滲透測試

事件回應

安全事件程序

違規回應

  • 立即遏止安全事件
  • 通知受影響的各方
  • 進行調查與根本原因分析
  • 實施矯正措施

憑證洩漏

  • 立即撤銷受洩漏的憑證
  • 緊急憑證輪換程序
  • 通知使用者並要求重新驗證
  • 進行安全檢討與加強措施

業務持續性

備援驗證方法

  • 保持備用的驗證方法
  • 記錄緊急存取程序
  • 定期測試備援驗證
  • 停機期間提供清晰的溝通

災難復原

  • 記錄 SAML 設定以供災難復原使用
  • 保留憑證與設定的副本
  • 定期測試復原程序
  • 與 IdP 的災難復原計畫協調

安全最佳實踐摘要

實作安全

  1. 使用強度憑證:RSA-2048 或更高,並進行適當驗證
  2. 強制使用 HTTPS:所有通訊皆透過安全、加密的通道
  3. 驗證所有輸入:清理並驗證所有 SAML 屬性
  4. 持續監控:實作完整的監控與警報機制
  5. 定期檢討:執行定期的安全檢查與更新

作業安全

  1. 最小權限原則:分配最低必要的權限
  2. 定期稽核:定期檢視存取、角色與設定
  3. 文件化:維持最新的安全文件
  4. 訓練:確保員工了解 SAML 安全需求
  5. 事件準備:備妥事件回應程序

組織安全

  1. 變更管理:實作受控的變更流程
  2. 職責分離:分割管理職責
  3. 定期更新:保持所有系統與憑證為最新
  4. 供應商管理:監控 IdP 與相關服務的安全性
  5. 合規監控:確保持續符合規範

SAML 認證為 FastComments 用戶提供企業級的安全性和無縫的使用者體驗。透過適當的設定 與測試,SAML 可啟用安全的單一登入,整合您現有的身分識別基礎設施,同時維持 強健的安全控管與完整的稽核能力。