單一登入

讓使用者透過既有的 Microsoft、Google 或 GitHub 帳號,或者組織的身分提供者(OpenID Connect)登入。

本頁內容
  1. 設定身分提供者
  2. 誰可以登入
  3. 不同網域採用不同設定
  4. 自行關聯帳號
  5. 包含來賓的 Microsoft 租戶

設定身分提供者

  1. 先在控制台 › 一般中設定網站網址。
  2. 開啟控制台 › 單一登入,選擇身分提供者,複製頁面顯示的重新導向位址。
  3. 在身分提供者中註冊 ThirtyFile(參閱下方),貼上該位址。
  4. 將提供者給出的 ID 和 secret 複製到 ThirtyFile,啟用並儲存。

Microsoft Entra ID

Microsoft Entra 管理中心 › App registrations › New registration。選擇「Web」平臺,填寫重新導向位址,再從「Certificates & secrets」新增 client secret。application ID 和 tenant ID 位於「Overview」頁面。

Google

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 會註明來賓電子郵件網域是否屬於其組織,僅比對這些來賓。