Azure active directory 通过SSO(SAML)登录互联网上的任何用户(不仅仅是公司用户)

Azure active directory 通过SSO(SAML)登录互联网上的任何用户(不仅仅是公司用户),azure-active-directory,single-sign-on,openid,saml,okta,Azure Active Directory,Single Sign On,Openid,Saml,Okta,我已在现有应用程序中包括SSO(SAML)授权。但对于我来说,发现只有两种类型的用户可以通过我添加的提供商(Okta、Azure AD)使用登录是一个令人不快的惊喜: 位于提供商的公司目录中的用户(例如,我在我的帐户上创建了一个应用程序,没有更多 用户。这意味着任何其他用户将无法使用 登录表单,因为他不是我的租户的成员) 公司的第三方用户,其管理员已添加 我的应用程序模板从常规列表中删除并连接 用户可以使用它 我期待其他结果,我需要任何用户能够通过这些提供商登录(无论他是在公司目录中还是拥有

我已在现有应用程序中包括SSO(SAML)授权。但对于我来说,发现只有两种类型的用户可以通过我添加的提供商(Okta、Azure AD)使用登录是一个令人不快的惊喜:

  • 位于提供商的公司目录中的用户(例如,我在我的帐户上创建了一个应用程序,没有更多 用户。这意味着任何其他用户将无法使用 登录表单,因为他不是我的租户的成员)
  • 公司的第三方用户,其管理员已添加 我的应用程序模板从常规列表中删除并连接 用户可以使用它
我期待其他结果,我需要任何用户能够通过这些提供商登录(无论他是在公司目录中还是拥有自己的未集成到我的应用程序中的单独帐户) 我曾考虑将SAML协议更改为OIDC(OpenID Connect),但在我看来,一切都将以相同的方式工作(至少是Azure AD,因为除了公司发行版之外,似乎没有其他选项可以使用它)

谁有类似的经验,你能告诉我我应该在技术和协议中使用什么,这样任何用户都可以通过Okta/Azure AD/Google登录我的应用程序吗?谢谢


您可以使用Azure AD OAuth2流和具有MSA(个人帐户)支持的多租户应用程序,允许来自任何域和个人帐户的任何用户登录到您的应用程序。或者,您可以切换到Azure AD B2C(也依赖于OAuth2)来连接不同的身份提供商(本地Azure B2C、Azure AD、Facebook、Google、Amazon、Github、Linked in、Twitter、generics等),并允许其所有用户登录到您的应用程序。

如果您不知道目标用户的位置,您需要提供一个选择,像“使用Okta的SSO”、“使用Azure AD的SSO”…SAML和OIDC都需要一个“身份提供者”,可以对用户进行身份验证的人。此外,它们都要求您作为服务提供商使用您作为服务提供商必须在您和身份提供商之间配置的信任机制来验证这些用户。因此,我认为这两种机制都不是你想要的。。。最接近你的是通过OIDC登录Facebook/Google。