Angular2 到 IdentityServer4 到 Azure B2C

Angular2 to IdentityServer4 to Azure B2C

我有一个将使用隐式授权类型的单页应用程序。我想使用 Azure B2C。但是,Azure B2C 不支持隐式授权类型。 (https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-limitations)

是否可以促进与 IdentityServer4 的这种通信?

我想流程可能是这样的:

  1. 用户在 SPA 上单击“登录”。将浏览器定向到 IdentityServer 并启动隐式工作流。

  2. IdentityServer 将浏览器定向到 B2C。 (启动授权码工作流程?)

  3. 用户将其凭据输入 B2C。

  4. B2C 使用令牌将浏览器定向到 IdentityServer。

  5. IdentityServer 创建一个新令牌来标识用户并添加声明信息。

  6. B2C 将浏览器连同令牌一起引导回 SPA。这样就完成了隐式工作流程。

  7. SPA 接受令牌并让用户登录。

是的,这是可能的。我通过使用 OpenIdConnect 中间件成功地使用 IdentityServer3 实现了这一点,作为外部 IdentityProvider,配置了 b2c 发现端点。

使用 aspnet 4.6 的示例:https://github.com/AzureADQuickStarts/B2C-WebApp-WebAPI-OpenIDConnect-DotNet

aspnet 核心示例:https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect-aspnetcore-b2c/tree/master/WebApp-OpenIDConnect-DotNet