采用 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 进行身份验证。 这种策略假定已通过条件访问检查,并且用户已获得授权。

注意

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

后续步骤