Fabric 應用程式的認證

Fabric Apps 內建認證服務,能登入使用者、管理會話,並將身份附加到應用程式的每一次資料與儲存呼叫中。 本文說明在為專案設定認證前,你需要了解的概念。

如需實作詳細數據,請參閱:

認證模式

Fabric Apps 支援兩種認證方法。 你用的方法是根據應用程式執行的地點而定:

環境 受支援的方法 何時使用它
地方發展 電子郵件與密碼 快速迭代,不要依賴 Fabric 入口。
部署至 Fabric Fabric SSO (Microsoft Entra ID) 任何有權限存取 Fabric 工作區的使用者都可以進行生產登入。

關鍵概念:

  • Fabric SSO 透過 Fabric 入口網站使用使用者現有的 Microsoft Entra ID 身份登入。 它只有在從 Fabric 開啟應用程式時才有效,所以你無法在本地開發時使用它。
  • 電子郵件與密碼 僅供本地開發使用。 部署後它就無法運作了。
  • 首次登入功能會讓使用者獲得支援。 使用 Fabric SSO,則沒有獨立的註冊步驟——使用者在首次登入時會自動建立。
  • Fabric 部署需要進行驗證。services.auth.enabled 設定為 false 會導致 npx rayfin up 失敗。

會議與身份認同

使用者登入後,SDK 會建立一個代表已登入使用者的 會話 。 會話是不透明的——你的應用程式不應該檢查底層的代幣。 相反地,你的應用程式會讀取一組少量的高階屬性:

  • 會話是否目前已驗證。
  • 使用者的 idemail
  • 你在 rayfin.yml 中設定的自訂宣告。

用來讓使用者登入的同一個用戶端執行個體,會自動在每次資料和儲存體呼叫中附加其身分資訊。 你不會手動傳遞代幣。

會話也會觸發變更事件,因此使用者登入或登出時,使用者介面可以做出反應,而不必重新載入頁面。

在您的專案中啟用認證

驗證是在 rayfin/rayfin.yml 中設定的。 以下範例同時啟用 Fabric SSO(針對已部署應用程式)及電子郵件/密碼登入(用於本地開發):

services:
  auth:
    enabled: true
    allowedRedirectUris:
      - http://localhost:5173
    fabric:
      enabled: true
    password:
      enabled: true  # Local development only

各設定控制什麼:

  • services.auth.enabled – 開啟認證服務。 任何 Fabric 部署都需要此項。
  • allowedRedirectUris – 登入後允許接收使用者的來源。 請在此加入你在地的開發 URL。 npx rayfin up 會自動新增已部署應用程式的來源。
  • fabric.enabled – 啟用Fabric SSO。 已部署的應用程式所需。
  • password.enabled – 啟用電子郵件與密碼登入以進行本地開發。

Important

Fabric 部署需要啟用認證。 npx rayfin upservices.auth.enabled 設定為 false時 會失敗。

編輯 rayfin.yml後,重新啟動本地後端或執行 npx rayfin up 以套用變更。

海關索賠

自訂聲明允許你為每個會話附加應用程式專屬的元資料——例如租戶名稱、功能標誌或應用程式版本。 它們對於基於角色的存取控制和功能閘門非常有用,且不需要改變你的資料模型。

services:
  auth:
    enabled: true
    customClaims:
      tenant: default
      app_version: 1.0.0

自訂聲明會出現在會話物件中,並可從你的資料權限規則中引用。

SDK 所提供的是什麼

當你使用 RayfinClient 時,認證服務可於 client.auth 使用。 在概念層面,它提供:

  • 在本地開發期間,請以電子郵件和密碼註冊並登入
  • 透過 Fabric SSO 登入與註冊,適用於已部署的應用程式。 同一通電話同時處理新手和回頭用戶。
  • 登出 以結束當前會話。
  • 會話讀取和訂閱 ,讓你的 UI 能與使用者的認證狀態保持同步。

關於將這些設備接入真實應用程式的程式碼,請參見 為你的Fabric應用程式配置 Fabric SSO 認證