Windows Server 中的 Active Directory 同盟服務(AD FS)讓您能為正在開發的應用程式新增 OpenID Connect 及基於 OAuth 2.0 的認證與授權功能。 這些應用程式可以直接對 AD FS 進行使用者驗證。 欲了解更多資訊,請閱讀 AD FS 開發者情境。
通常有兩種方式可以針對 AD FS 進行認證:
- MSAL 連接 Microsoft Entra ID,然後與 AD FS 聯合。
- MSAL 直接連線到 AD FS 授權單位。
MSAL4J 支援這兩種流程。
MSAL 連接 Microsoft Entra ID,然後與 AD FS 聯邦化
MSAL4J 支援連接 Microsoft Entra ID,該 ID 可登入受管理使用者(以 Microsoft Entra ID 管理的使用者)或聯邦使用者(由其他身份提供者如 AD FS 管理的使用者)。 MSAL4J 並不知道使用者是同盟使用者。 至於它,則會與 Microsoft Entra ID 進行通訊。
在這種情況下你使用的權威是通常的權威(權威主機名稱 + 租戶、公共或組織)。
為聯邦用戶互動式取得代幣
當你呼叫 AcquireToken 時,使用 AuthorizationCodeParameters 或 DeviceCodeParameters 時,使用者體驗通常如下:
- 使用者輸入帳號 ID。
- Microsoft Entra ID 會簡短顯示「正帶您前往您組織頁面」的訊息。 使用者會被導向身份提供者的登入頁面。 登入頁面通常會自訂以組織標誌。
- 在此聯邦情境中支援的 AD FS 版本包括 AD FS v2、AD FS v3(Windows Server 2012 R2)及 AD FS v4(AD FS 2016)。
MSAL 直接連線到 AD FS 授權單位
MSAL4J 支援直接與 AD FS 2019 進行認證。 在這種情況下,你可以在初始化用戶端時提供 ADFS 特定權限的 URL 給 MSAL4J。 權威值應該大致為 https://adfs.contoso.com/adfs。
使用 AcquireToken 搭配 IntegratedWindowsAuthenticationParameters 或 UsernamePasswordParameters 取得權杖
當使用 AcquireToken 與 IntegratedWindowsAuthenticationParameters 或 UsernamePasswordParameters 取得權杖時,MSAL4J 會根據使用者名稱判斷應聯絡哪個身分識別提供者。 MSAL4J 在聯絡身份提供者後會收到 SAML 令牌。 MSAL4J 接著將 SAML 令牌提供給 Microsoft Entra ID,作為使用者聲明(類似於代表流程)以取得 JWT。