概念
- 每家公司一個連線。你的公司只有一個單一登入連線,採用一種通訊協定:OpenID Connect、Feishu / Lark、DingTalk 或 SAML。在此頁面儲存前三者之一,會取代既有的 SAML 連線(請參閱從 SAML 切換)。
- 已驗證的網域決定登入導向。只有你以 DNS 記錄證明擁有的電子郵件網域,才會把人導向提供者。
- 先邀請再登入。單一登入本身絕不會建立帳號。一個人只能以現有成員的身分進入,或接受貴公司的待處理邀請後進入。
- 已連結的帳號。第一次成功登入時,會把提供者帳號連結到 Alforse 的人員。之後的登入直接使用該連結。
開始之前
- 權限。你需要變更公司設定的權限(
settingsupdate)。沒有這項權限時,頁面會顯示 “Administrators only”(僅限管理員)。 - 可用性。若你的訂閱不包含單一登入,頁面會顯示 “Single sign-on isn’t in your plan”(你的方案不含單一登入)。
- 提供者存取權。你需要有權在身分提供者中建立應用程式:飛書/Lark 開放平台中的自建應用、釘釘開發者後台中的企業內部應用,或你的 IdP 中的 OIDC 網頁應用程式。
- DNS 存取權。你需要為每個電子郵件網域發布一筆 TXT 記錄。
開啟單一登入頁面
- 登入 https://app.alforse.com 的 ERP。
- 在同一個瀏覽器中開啟 https://api.alforse.com/identity。
身分提供者卡片
選取 Connect(連線;既有連線則為 Save changes)。Alforse 會在儲存前先向提供者檢查這些設定,並以 “Single sign-on saved”(單一登入已儲存)確認。
Redirect URI
每個提供者應用程式都必須使用這同一個重新導向(回呼)URI:設定你的提供者
- Feishu / Lark
- DingTalk
- OpenID Connect
在飛書開放平台(https://open.feishu.cn;Lark 則為 https://open.larksuite.com):
- 建立自建應用(企業自建应用)。
- 在 Credentials & Basic Info(憑證與基本資訊)下,複製 App ID 與 App Secret。
- 在 Security Settings → Redirect URLs(安全設定 → 重新導向 URL)下,加入上方顯示的 Redirect URI。
- 在 Permissions(權限)下,允許:
- 讀取使用者基本資訊(必要);
- 讀取使用者的企業電子郵件,以便依電子郵件比對人員;
- 讀取租戶資訊(若你要在 Alforse 中將 Tenant key 留空)。
- 建立版本,並將應用發布給需要登入的人。
- 只有你的飛書租戶核發的企業電子郵件才算已驗證。使用者自行填入個人資料的地址,絕不會用於比對。
- 沒有企業電子郵件的人,需透過登入連結連結一次。
驗證你的電子郵件網域
連線儲存之後,請在 Email Domains 卡片中加入你的成員用來登入的每個網域:在 Add a domain(新增網域)下輸入(例如example.com),然後選取 Add(新增)。新網域的狀態為待處理(Pending),並會顯示要發布的 TXT 記錄:
請用你的 DNS 供應商發布該記錄,然後選取 Verify(驗證)。成功後網域會顯示已驗證(Verified),頁面並顯示 “Domain verified”(網域已驗證)。規則與 SAML 相同:請參閱驗證網域。
登入如何對應到人員
成員在 ERP 登入頁面輸入工作電子郵件並選取繼續(Continue)。位於已驗證網域的電子郵件會把他們導向你的提供者。他們回來之後,Alforse 只在貴公司範圍內,依下列順序尋找:- 已連結的帳號。該提供者帳號已連結到某位人員:該人員即登入。
- 已驗證的電子郵件。提供者回報了一個位於你已驗證網域的已驗證電子郵件。符合的啟用中成員會登入;符合的待處理邀請會被接受並套用其角色。帳號隨後被連結。
- 登入連結。此人開啟了你核發的一次性登入連結。帳號會連結到該連結所對應的成員或邀請。
登入連結
使用 Sign-in Links 卡片來連結那些提供者無法證明其電子郵件的人:所有釘釘使用者,以及沒有企業電子郵件的飛書使用者。- 選擇一個待處理的邀請(Pending invitation),或輸入 Or an existing member’s email(或現有成員的電子郵件)。
- 選取 Create link(建立連結)。
- 從 Sign-in link created(登入連結已建立)對話方塊複製連結,並自行傳送給該人。
https://api.alforse.com/api/web/auth/v1/sso/oauth/invite?token=…。對方開啟後以提供者登入,帳號就會被連結;此後他們即可正常登入。
- 只顯示一次。連結只會顯示在該對話方塊中。若遺失,請撤銷並建立新的連結。
- 可用一次,有效 7 天。表格會顯示每個連結的 For(對象)、Status(狀態:Open、Used、Revoked 或 Expired)與 Expires(到期)。選取 Revoke(撤銷)可取消尚未使用的連結。
- 需要已驗證的網域。邀請或成員的電子郵件必須位於該連線已驗證的網域。
- 登入連結適用於 OpenID Connect、飛書/Lark 與釘釘連線,不適用於 SAML。
已連結的帳號
Linked Accounts 卡片會列出每個連結,欄位為 Person(人員)、Provider account(提供者帳號)、Linked by(連結方式:Verified email 或 Sign-in link)與 Linked(連結時間)。選取 Revoke 可移除連結。該人員的 Alforse 帳號仍會保留;下次登入時,他們會再次依已驗證的電子郵件比對,或需要新的登入連結。要求單一登入
開啟 Require single sign-on,可讓你的提供者成為已驗證網域上成員唯一的進入方式。屆時對這些成員而言,其他登入方式(例如魔術連結)都會被拒絕。此開關要在至少有一個網域通過驗證後才會生效,因此你可以在強制執行之前先測試登入。從 SAML 切換
若貴公司已在使用 SAML,卡片會顯示 “Your company currently signs in with SAML. Saving another provider here replaces it.”(貴公司目前以 SAML 登入。在此儲存其他提供者會取代它。)- 儲存 OpenID Connect、飛書/Lark 或釘釘連線,會從你的連線中移除 SAML 設定(IdP 中繼資料)。SAML 登入會在那一刻停止。
- 你的電子郵件網域及其驗證會保留,Require single sign-on 也會保留。
- 當非 SAML 連線處於啟用狀態時,設定 → 安全性上的 SAML 卡片無法儲存。請先在此頁面停用該連線。