使用 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(Graph API)

许多应用都是使用 SAML 实现的。 但是,图形 API 使用 OIDC/OAuth 协议。 向 SAML 应用添加 OIDC/OAuth 功能(虽然并不简单)是可能的。 在应用中提供 OAuth 功能后,可以使用图形 API。

一般策略是将 OIDC/OAuth 堆栈添加到应用。 借助实现这两种标准的应用,可以使用会话 Cookie。 你没有显式地交换令牌。 你正在使用 SAML 登录用户,这会生成会话 Cookie。 当图形 API 调用 OAuth 流时,可以使用会话 Cookie 进行身份验证。 此策略假定条件访问检查通过,并且用户获得授权。

注释

建议将 OIDC/OAuth 行为添加到应用程序的库是Microsoft身份验证库(MSAL)。

后续步骤