如何将Keycloak SSO与Duo 2FA集成到vCloud?

2021年11月27日22:32:31 发表评论 978 次浏览

本Keycloak SSO与Duo 2FA集成到vCloud教程是基于实验室的测试的第一手资料,用于将带有 Duo 2FA 的 Keycloak SSO 配置到 VMware 的 vCloud Director 中。所有测试和文档均由 phoenixNAP 自己的 Joe Benga 完成。Joe 是我们值得信赖的云、基础设施和网络技术企业架构师。

我越来越喜欢 Keycloak 作为一种产品。我发现它是一个强大的源身份和访问管理解决方案 (AMS)。

我希望能够在我的实验室中将 Keycloak 用于 VMware 的 vCloud Director (vCD),并测试 Active Directory (AD) 与双因素身份验证 (2FA) 支持的集成。

如何将Keycloak SSO与Duo 2FA集成到vCloud?

如何将Keycloak SSO与Duo 2FA集成到vCloud?在这个第一手资料中,我列出了我在实验室环境中采取的步骤,以在组织级别提供与 Keycloak 的安全断言标记语言 (SAML) 集成。此外,我还解释了我如何为前端门户提供 Duo Security 2FA。

与往常一样,这些只是基本步骤。请牢记贵公司的安全和最佳实践。

Keycloak

对于这个实验,我们很幸运,Keycloak 有一个预先构建的 docker 包来快速启动一切。

通过一些简单的命令,我能够在 Centos 7 虚拟机 (VM) 上启动并运行核心产品。在这一点上,我决定不是独立运行所有内容,而是使用 Postgres 容器支持它。对于你的实验,你可以决定自己的实验室需要什么,下面的信息链接中提供了不同的选项。我添加了颜色编码来显示命令是如何相互关联的。

完整信息:https://hub.docker.com/r/jboss/keycloak/

先决条件:Docker CE、防火墙设置(如果需要)

  1. 为 Database 和 Keycloak 容器创建共享用户网络
    docker network create keycloak-network
  2. 启动 DB Container(可选,我使用 Postgres)
    docker run -d --name postgres --net keycloak-network -e POSTGRES_DB=keycloak -e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=password postgres
  3. 启动钥匙斗篷
    docker run -p 8080:8080 --name keycloak --net keycloak-network -e KEYCLOAK_USER=username -e KEYCLOAK_PASSWORD=password jboss/keycloak
  4. 完成这些步骤后,你应该能够登录 Keycloak(用户名和密码是你在绿色文本中定义的内容)
    http://ip_addr:8080/auth/admin/

注意:对于生产用途,你需要考虑使用安全的秘密存储服务来处理传递给容器的凭据。

Keycloak SSO与Duo 2FA集成到vCloud教程:Keycloak vCloud Director 配置

  1. 根据 vCloud Org 的名称创建新领域
    选择  Master 旁边的下拉箭头,然后选择 Add Realm。 注意:如果你在创建领域后不打算使用 SSL,请导航到登录选项卡并将需要 SSL设置  为无
  2. 在 Keycloak 中,创建一个本地用户以用作测试。(稍后,我们将利用 Active Directory 用户。)在左侧窗格中的 Realm 下导航到 Manage > Users。在右侧窗格中选择 添加用户
  3. 输入用户的信息。确保包含电子邮件地址,因为我们将在此日志中指定电子邮件作为名称 ID 格式。然后选择保存
如何将Keycloak SSO与Duo 2FA集成到vCloud?
  1. 为用户创建密码。导航到凭据选项卡。输入并确认新密码并取消选择 Temporary。然后点击 重置密码
  2. 现在我们有了你的领域和用户,我们将需要获取你组织的元数据。登录你的组织。导航到左窗格中设置 > 联合下的管理,  然后选择元数据链接。下载 spring_saml_metadata.xml 文件。该文件将为我们提供可以轻松导入 Keycloak 客户端设置的证书和配置文件
如何将Keycloak SSO与Duo 2FA集成到vCloud?
  1. 在 Keycloak 中,导航到配置 > 客户端下的左侧窗格,然后  在右侧窗格中 选择 创建
  2. 单击“ 选择文件” 并导入 spring_saml_metadata.xml 刚刚下载的文件。选择 保存
  3. 导航到 安装选项卡 和 格式选项:选择 SAML 元数据 IDPSSODescriptor,然后复制或下载对话框中显示的文本
如何将Keycloak SSO与Duo 2FA集成到vCloud?
  1. 在 vCD 中,在“管理”下导航  然后在左窗格 设置 > 联合中 选择使用 SAML 身份提供者,然后 从上面复制或上传 SAML 元数据 IDPSSODescriptor信息。然后点击应用。 注意:根据你的网络和设置方式,你可能需要手动调整元数据 XML 中的 IP 信息
  2. 导入 Keycloak 用户。在右侧窗格中的 成员 > 用户下。选择 导入用户图标。然后输入我们上面创建的用户的电子邮件地址并选择所需的 vCD 角色。 注意:在此步骤中,我还将包含稍后将使用的 Active Directory 用户电子邮件。
如何将Keycloak SSO与Duo 2FA集成到vCloud?
  1. 登录 vCloud Director 组织,我们将被重定向到 Keycloak Realm 登录屏幕。
如何将Keycloak SSO与Duo 2FA集成到vCloud?

如何将Keycloak SSO与Duo 2FA集成到vCloud?现在,我们的 Identity Manager 应用程序为我们的 vCloud Director 门户提供身份验证。接下来,我们将通过 Duo 代理与此设置下的 Active Directory 同步,并展示如何利用 2FA。我还将展示如何向任何用户添加 OTP 以快速利用 Google 身份验证。

将 Duo 集成到 Keycloak 中

先决条件:

  • Active Directory 已在运行
  • Duo Auth 代理正在运行 (https://duo.com/docs/authproxy-overview) 并连接到 Active Directory

注意:我的 Duo 代理配置

如何将Keycloak SSO与Duo 2FA集成到vCloud?
  1. 在左侧窗格中的 Realm 下,导航到 Configure > User Federation。在右侧窗格中添加一个 LDAP 提供程序。
  2. 设置你的 编辑模式: 供应商:Active Directory(这是由于我的 Duo 代理连接到 Win2012 AD)、 连接 URL、 用户 DN、 身份验证类型、 绑定 DN、 绑定凭据、 连接搜索范围:子树(除非你在相同的级别),缓存策略:无缓存(我们希望请求每次请求都命中代理)
如何将Keycloak SSO与Duo 2FA集成到vCloud?
  1. 选择保存,然后选择同步:所有用户
  2. 如果你没有预先添加 Duo 用户,请立即添加;重复步骤 14。
  3. 在 vCD 登录屏幕中,使用利用 Duo 的后备 AD 帐户的电子邮件。请注意,登录屏幕不会显示任何等待 2FA 批准的提示。在你批准 2FA 硬件设备之前,屏幕只会出现卡住状态。

Keycloak SSO与Duo 2FA集成到vCloud教程:添加一次性密码 (OTP)

使用此过程可快速添加 OTP。

  1. 在左侧窗格中的 Realm 下,导航到 Configure > Authentication。选择 OTP 策略并配置你的设置。 注意:你可能需要调整前瞻窗口以适应服务器上不匹配的时间设置。
如何将Keycloak SSO与Duo 2FA集成到vCloud?
  1. 在左窗格中,导航到 管理 > 用户 并选择我们在步骤 6 中创建的用户 。
  2. 在 Detail 选项卡下,在 Required User Actions 配置中选择 Configure OTP,然后选择 Save
如何将Keycloak SSO与Duo 2FA集成到vCloud?
  1. 如何将Keycloak SSO与Duo 2FA集成到vCloud?使用此用户登录到 vCD。在我们可以访问 vCloud Director 之前,我们需要设置一个 2FA 身份验证器。这可以从下面显示的屏幕中完成。
如何将Keycloak SSO与Duo 2FA集成到vCloud?
Keycloak SSO与Duo 2FA集成到vCloud教程
  1. 你可以利用任何 OTP 应用程序,例如 Duo 或 Google Authenticator。验证后,你将被定向到你的 VCD 组织。

下次登录时,你将看到以下提示:

如何将Keycloak SSO与Duo 2FA集成到vCloud?
如何将Keycloak SSO与Duo 2FA集成到vCloud?

从应用程序输入你的代码,你就可以开始了。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: