使用本地 Microsoft Active Directory 的 Amazon SSO

Amazon SSO with Microsoft Active Directory on Premises

我需要为组织中的不同应用程序设计 SSO 解决方案。当前的身份提供者是本地 AD。这是我的

  1. 不同的微服务托管在多个 AWS EC2 上
  2. 使用 Angular2 实现的前端应用程序
  3. 身份验证服务:根据身份提供者验证用户凭据并生成 jwt
  4. 授权服务:检查用户权限

这是必需的行为:

  1. 身份验证服务负责检查是否 凭据对 AD 有效,然后发出 JWT。
  2. 授权服务负责检查用户是否具有访问特定资源(另一个微服务或查看页面)所需的权限

如果我使用 Azure,我会执行以下操作:

  1. "Azure AD Connect" 在 AD on Premises 和 "Azure AD"
  2. 之间同步用户
  3. "Azure AD" 将作为身份提供者
  4. 当用户登录其中一个应用程序时,Azure AD 将验证用户身份并向他发送 JWT
  5. JWT 将用于检查用户权限并进行后续对其他微服务的调用

亚马逊应该使用什么类型的服务来生成JWT?

Amazon 的合理选择是 Cognito Federated Identities,它通过 SAML 集成支持 Active Directory,特别是 ADFS,作为身份提供者。身份验证后,Cognito returns 一个 JWT 令牌,然后将其交换为 Amazon 凭据(授权)。

Amazon Cognito Federated Identities