使用 SAML 和 OIDC/OAuth 的 Microsoft 身分識別平台權杖交換案例

SAML 和 OpenID Connect (OIDC) / OAuth 是常用於執行單一登入 (SSO) 的通訊協定。 有些應用程式可能只會執行 SAML,而其他應用程式則可能只會執行 OIDC/OAuth。 這兩種通訊協定都使用權杖來溝通秘密。 如需深入了解 SAML,請參閱單一登入 SAML 通訊協定。 若要深入了解 OIDC/oauth,請參閱 Microsoft 身分識別平台上的 OAuth 2.0 和 OpenID Connect 通訊協定

本文舉一個常見的案例,概要說明應用程式會執行 SAML,但卻呼叫使用 OIDC/OAuth 的圖形 API。 將會為要處理此案例的人員,提供基本的指導方針。

案例:您擁有 SAML 權杖,而且想要呼叫圖形 API

許多應用程式都已實作 SAML。 但是,圖形 API 使用的是 OIDC/OAuth 通訊協定。 將 OIDC/OAuth 功能新增至 SAML 應用程式是一件可行卻複雜的事。 一旦應用程式具備了 OAuth 功能後,即可使用圖形 API。

一般的做法是將 OIDC/OAuth 堆疊新增至應用程式中。 當應用程式可以實作這兩個標準時,就可以使用工作階段 Cookie。 您不會以明確的方式交換權杖。 而是會以 SAML 登入使用者,藉以產生工作階段 Cookie。 當圖形 API 叫用 OAuth 流程時,可以使用工作階段 Cookie 來進行驗證。 這個策略是假設條件式存取檢查有通過,且使用者也有授權。

注意

新增 OIDC/OAuth 行為時,建議使用的程式庫是 Microsoft 驗證程式庫 (MSAL)。 如需深入了解 MSAL,請參閱 Microsoft 驗證程式庫 (MSAL) 概觀。 原先的程式庫名稱為「Active Directory 驗證程式庫」(ADAL),但因為現在已由 MSAL 所取代,所以不建議繼續使用。

後續步驟