Angular 8-支持多个身份提供者

时间:2020-05-15 06:36:51

标签: angular oauth-2.0 identity

我们当前有一个角度8应用程序,该应用程序已启用身份验证,并且我们使用“自定义登录页面”。身份存储是我们自己的内部数据库。每当用户尝试登录时,我们都有一个Authorize API,该API会检查凭据并生成访问令牌,该令牌将用于访问所需的API资源。

我们需要添加对多个身份验证提供程序(例如Azure AD,OKTA)的支持。要求是要支持当前的登录机制,并再支持一个提供程序(可以是OKTA或Azure AD)。

我们如何设计Angular UI和API来支持此要求?在Angular中是否有支持多个身份提供者的软件包?我们如何生成访问令牌?

1 个答案:

答案 0 :(得分:0)

目前,该架构听起来不适合您所需的支持。

我将针对以下“联合”方法-它需要一些投资,但是一旦完成,您将处于一个好的位置:

  • 为您的应用使用基于标准的授权服务器(AS)-请勿构建自己的令牌发行
  • 登录时,首先重定向到AS
  • AS会显示一个屏幕,其中选择了身份提供者(IDP)
  • AS重定向到IDP,用户登录
  • IDP发行令牌并将其发布到AS
  • AS发行令牌并将其发布到您的UI
  • 您的用户界面可以将令牌发布到您的Web API

这将大大简化您的代码:

  • 用户界面仅需要针对AS进行OAuth重定向
  • API只需要验证一种类型的令牌
  • UI和API中的编码和配置要少得多
  • 添加新的提供程序或功能(例如多因素)仅需要在AS配置中进行取消
  • 轻松添加遵循相同模型的新UI和API