Fabric Apps 內建認證服務,能登入使用者、管理會話,並將身份附加到應用程式的每一次資料與儲存呼叫中。 本文說明在為專案設定認證前,你需要了解的概念。
如需實作詳細數據,請參閱:
- 為您的Fabric應用程式設定Fabric SSO 認證 – 已部署應用程式的登入與註冊碼。
- 定義資料權限 ——使用已登入使用者的身份來控制資料存取。
認證模式
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 會建立一個代表已登入使用者的 會話 。 會話是不透明的——你的應用程式不應該檢查底層的代幣。 相反地,你的應用程式會讀取一組少量的高階屬性:
- 會話是否目前已驗證。
- 使用者的
id和email。 - 你在
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 up 當 services.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 認證。