如何使用 SAML 将 Okta 作为 IDP 与 Azure AD B2C 集成?

How to integrate Okta as IDP using SAML with Azure AD B2C?

我有我的 Azure AD B2C 租户,我有一个使用 OpenIdConnect 与我的 AD 连接的应用程序。

我一直在阅读 MS 文档,了解如何添加一个可以通过 SAML 与我的 Azure AD B2C 租户通信的 IDP,为此我一直在使用 Okta 进行测试,所以

  1. 用户可以登录其 okta 帐户
  2. 使用 okta 的仪表板用户可以单击我的应用程序(我的 Azure 租户中的一个设置)

但在内部我需要做的是:

  1. Okta 将 SAML 包发送到我的 Azure AD B2C 租户(SAML Idp 已启动)
  2. 我的 Azure AD B2C 可以读取内容并获取用户标识符(电子邮件)
  3. 我的 Azure AD B2C 读取从 SAML 包获取的电子邮件,并检查我的已注册用户中是否已经存在,如果是,则用户有权登录
  4. 在 Azure AD B2C 确认用户可以继续后,它使用 OpenIdConnect 将用户重定向到我的应用程序(我想说这个集成已经到位)

但是我在尝试将 okta 添加为我的 Azure AD B2C 中的 IdentityProvider 时遇到了一些困难,作为真相的来源,我确实尝试过使用 direct federation, it didn't work, so continued trying to accomplish it using custom policies but I can't still get my mind around how it works. Found this repo with samples, while in my research found this link,其中基本上提到我做不到那:

非常非常新,所以想寻求任何帮助。如果可能的话有什么想法,或者我如何使用 SAML 集成它?找到的样本主要使用 OpenIdConnect,如果用户不存在,大多数样本都会注册,这也不是我想要的。有帮助吗?

Azure AD 不是 Azure AD B2C。两个独立的服务,不同的目的,不同的功能。

在 AAD B2C 中添加 SAML IdP 在此处有一个端到端的演练:

https://docs.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-generic-saml?tabs=windows&pivots=b2c-custom-policy

有一些 SAML IdP 的工作示例 https://docs.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-salesforce-saml?tabs=windows&pivots=b2c-custom-policy

然后将 SAML 应用程序与 AAD B2C 连接 https://docs.microsoft.com/en-us/azure/active-directory-b2c/saml-service-provider?tabs=windows&pivots=b2c-custom-policy

如果 IdP 是联合 IdP(在您的情况下没关系),AAD B2C 不支持 IdP 启动的登录 SAML 应用程序,只有当 IdP 是 AAD B2C(本地帐户)时才支持。

您不能执行 IdP 启动的登录,然后让 AAD B2C 向应用程序发出 OIDC 响应。您应该使用 OIDC 联合到 Okta。它更简单,并且实现了相同的用户体验。

https://docs.microsoft.com/en-us/azure/active-directory-b2c/saml-service-provider?tabs=windows&pivots=b2c-custom-policy#supported-and-unsupported-saml-modalities

您可以将 Okta 仪表板图块指向应用程序的 SP 启动登录端点。

现在也可以使用 AAD,您可以使用 SAML 联合到 Okta。 https://help.okta.com/en/prod/Content/Topics/Apps/Office365-Deployment/configure-sso.htm

此方法将允许使用 Okta 身份登录您的业务线应用程序。但是不会有任何注册经验。它更适合员工访问您的应用程序。注册类型体验需要 AAD B2C。