單一登入
讓使用者透過既有的 Microsoft、Google 或 GitHub 帳號,或者組織的身分提供者(OpenID Connect)登入。
設定身分提供者
- 先在控制台 › 一般中設定網站網址。
- 開啟控制台 › 單一登入,選擇身分提供者,複製頁面顯示的重新導向位址。
- 在身分提供者中註冊 ThirtyFile(參閱下方),貼上該位址。
- 將提供者給出的 ID 和 secret 複製到 ThirtyFile,啟用並儲存。
Microsoft Entra ID
Microsoft Entra 管理中心 › App registrations › New registration。選擇「Web」平臺,填寫重新導向位址,再從「Certificates & secrets」新增 client secret。application ID 和 tenant ID 位於「Overview」頁面。
Google Cloud Console › APIs & Services › Credentials › Create credentials › OAuth client ID。選擇「Web application」,在「Authorized redirect URIs」中新增重新導向位址。
GitHub
GitHub › Settings › Developer settings › OAuth Apps › New OAuth App。將重新導向位址填寫為 callback URL,然後產生 client secret。
OpenID Connect(Keycloak、Authentik、Authelia、Zitadel…)
在身分提供者中建立 confidential client(Web 應用程式),設定重新導向位址,並記下 client ID 和 secret。在 ThirtyFile 中填寫 Issuer URL(Keycloak 例如 https://auth.example.com/realms/<realm>)和登入按鈕名稱,例如「公司登入」。儲存時,ThirtyFile 從 <issuer>/.well-known/openid-configuration 讀取設定;issuer 必須使用 https,文件中的 issuer 必須與之相同。
提供者必須回傳使用者的電子郵件地址,並標記為已驗證(email scope 和 claim,以及 email_verified),否則使用者只能自行關聯帳號。允許網域、網域規則、關聯和自動建立帳號與其他提供者相同。
誰可以登入
每個提供者都可以分別設定首次登入規則:
| 規則 | 處理方式 |
|---|---|
| 僅限已關聯帳號 | 只有從帳號選單自行關聯外部帳號的人可登入 |
| 以 email 對應既有使用者 | 電子郵件信箱等於某個無密碼、無兩步驟驗證帳號的使用者名稱時可比對,例如同電子郵件信箱單一登入建立的帳號。具有密碼或兩步驟驗證的帳號(例如管理員建立的帳號)不會自動比對,因為提供者登入會繞過這些驗證;擁有者應先用密碼登入一次,再關聯帳號 |
| 自動建立帳號 | 允許電子郵件網域中的任何使用者都會獲得新帳號 |
使用自動建立帳號時,填寫允許的電子郵件網域,例如 example.com,確保只有組織內的人可以存取。
不同網域採用不同設定
電子郵件網域規則可為新帳號設定不同權限、空間容量和群組。例如來自 partner.example 的合作夥伴可獲得較小空間,並禁止分享。
規則也可以決定新帳號是否擁有個人空間(我的檔案),以及使用哪個儲存位置。保留按照系統設定時,採用控制台 › 一般的設定。位置資料夾不可用時,使用者仍可登入;恢復後會在該位置建立「我的檔案」。
自行關聯帳號
所有人都可在帳號選單 › 登入方式中關聯或取消關聯已設定提供者的帳號(Microsoft、Google、GitHub 或 OpenID Connect)。關聯後的帳號可繞過本機密碼登入,因此關聯前需要目前密碼,兩步驟驗證帳號還需驗證碼;無密碼帳號須在登入後 10 分鐘內關聯。每次關聯(包括按電子郵件比對)都會透過應用程式內通知和郵件告知使用者。
設定了允許網域清單時,只有提供者已驗證的、位於該清單網域中的電子郵件信箱才能關聯。關聯帳號只儲存已驗證的電子郵件位址。
包含來賓的 Microsoft 租戶
設定 tenant ID 後,租戶成員可按電子郵件比對。其他組織的來賓也透過你的租戶登入,但電子郵件信箱由其所屬組織提供,而該組織可填寫任意位址。所以來賓電子郵件信箱不用於比對或建立帳號:來賓應使用密碼登入,自行關聯 Microsoft 帳號。
若也需按電子郵件比對來賓,在 ID token 新增可選 claim xms_edov:應用程式註冊中選擇 Token configuration › Add optional claim › ID › xms_edov。Microsoft 會註明來賓電子郵件網域是否屬於其組織,僅比對這些來賓。