【DevOps工具篇】Keycloak中设置与OpenLDAP认证集成

2019-02-10T13:11:33+08:00 | 3分钟阅读 | 更新于 2019-02-10T13:11:33+08:00

Macro Zhao

【DevOps工具篇】Keycloak中设置与OpenLDAP认证集成

@TOC

推荐超级课程:

Keycloak 允许用户与 AD/LDAP 联合。本教程将引导您完成使用 OpenLDAP 服务的用户联合。了解更多信息, 请参考 User Federation

Keycloak 支持多种 LDAP 服务,包括 Microsoft AD 和 OpenLDAP。本教程将在同一个 VPC 中运行一个 OpenLDAP 服务,并在此演示中使用 Keycloak 服务。

步骤 1. 启动一个用于安装 OpenLDAP 的 EC2 实例

您需要在您的 Keycloak 服务所在的 VPC 中启动 EC2 实例,然后执行以下操作配置此 EC2 实例的安全组,并确保来自 VPC CIDR 的所有流量都可以访问其 LDAP 端口(TCP 389)。

  1. 打开 Amazon EC2 控制台。

  2. 在左侧的导航窗中选择 Security Groups

  3. 在过滤框中输入 KeyCloakKeyCloakContainer 后按回车键,复制 Security group ID,例如 sg-0121f1140bbfd72c6

  4. 进入 EC2 实例所在的安全组,添加 Inbound rules,允许 ECS 所在的安全组访问 OpenLDAP 的端口。

  5. 点击 Save rules

步骤 2. 安装 OpenLDAP

在您的 EC2 实例中使用 Docker 安装 OpenLDAP。

  1. 连接终端到您的 EC2 实例上。

  2. 执行以下操作:

    `# 安装 docker,并启动 docker服务 yum install -y docker systemctl start docker

    启动 docker 容器

    docker run -p 389:1389 public.ecr.aws/bitnami/openldap:latest`

  3. 打开另一个终端并安装OpenLDAP客户端

    `# 安装LDAP客户端 yum install -y openldap-clients

    查看所有用户信息

    ldapsearch -x -b “ou=users,dc=example,dc=org” -H ldap://<EC2_PRIVATE_IP>`

    示例:

    `[root@xxxx ~]# ldapsearch -x -b “ou=users,dc=example,dc=org” -H ldap://<EC2_PRIVATE_IP>

    extended LDIF

    LDAPv3

    base <ou=users,dc=example,dc=org> with scope subtree

    filter: (objectclass=*)

    requesting: ALL

    users, example.org

    dn: ou=users,dc=example,dc=org objectClass: organizationalUnit ou: users

    user01, users, example.org

    dn: cn=user01,ou=users,dc=example,dc=org cn: User1 cn: user01 sn: Bar1 objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount userPassword:: Yml0bmFtaTE= uid: user01 uidNumber: 1000 gidNumber: 1000 homeDirectory: /home/user01

    user02, users, example.org

    dn: cn=user02,ou=users,dc=example,dc=org cn: User2 cn: user02 sn: Bar2 objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount userPassword:: Yml0bmFtaTI= uid: user02 uidNumber: 1001 gidNumber: 1001 homeDirectory: /home/user02

    readers, users, example.org

    dn: cn=readers,ou=users,dc=example,dc=org cn: readers objectClass: groupOfNames member: cn=user01,ou=users,dc=example,dc=org member: cn=user02,ou=users,dc=example,dc=org

    search result

    search: 2 result: 0 Success

    numResponses: 5

    numEntries: 4`

现在您的默认 LDAP 服务已准备就绪。

步骤 3. 在 Keycloak 上创建 User Federation

  1. Keycloak 管理员用户身份登录到 Keycloak 仪表板。

  2. 在左侧的导航窗中,选择 User Federation

  3. Add provider 下拉菜单中选择 ldap

  4. 在新打开的页面中输入以下信息:

    1. Edit Mode: 修改为 WRITABLE
    2. Vendor: 修改为 Other
    3. Username LDAP attribute: 输入您的 LDAP attribute name for username,在本教程中使用 cn
    4. RDN LDAP attribute: 输入您的 LDAP attribute name for user RDN,在本教程中使用 cn
    5. UUID LDAP attribute: 输入您的 LDAP attribute name for UUID,在本教程中使用 uid
    6. User Object Classes: 输入您的 LDAP User Object Classes,在本教程中使用 inetOrgPerson, posixAccount, shadowAccount
    7. Connection URL: 输入您的 LDAP connection URL,在本教程中使用 ldap://<EC2_PRIVATE_IP>,点击 Test connection 后提示"Success! LDAP connection successful."信息说明LDAP连接正常。
    8. Users DN: 输入您的 LDAP Users DN,在本教程中使用 ou=users,dc=example,dc=org
    9. Bind Type: 修改为 simple
    10. Bind DN: 输入您的 LDAP bind DN,在本教程中使用 cn=admin,dc=example,dc=org
    11. Bind Credential: 输入您的 LDAP Bind Credentials,在本教程中使用 adminpassword,点击 Test authentication后提示"Success! LDAP authentication successful."信息说明LDAP认证成功。
  5. 选择 Save

  6. 选择 Synchronize all users。页面提示"Success! Sync of users finished successfully. 2 imported users, 0 updated users"。

  7. 在左侧的导航窗中选择 Users

  8. 点击 View all users,查看到 user1user2 用户说明导入成功。

步骤 4. 验证 User Federation

使用 account-console 登录验证 User Federation。

  1. Keycloak 管理员用户身份登录到 Keycloak 仪表板。

  2. 在左侧的导航窗中,选择 Clients

  3. 选择 account-consoleBase URL

  4. 您将被重定向到 Keycloak 帐户控制台,单击右上角的 Sign In 按钮。

    06-en-keycloak-account-console-signin-01

  5. 在 Username or email 中输入 user1 to Username or email,在 Password中输入 bitnami1

  6. 选择 Sign In。您已经成功登录到控制台。

常见问题解答

1. Keycloak 是否支持 LDAPS 协议?

是的。Keycloak 同时支持 ldap:// 和 ldaps://。要启用 ldaps://,请确保您的 AD/LDAP 使用 LDAPS 运行并且已正确导入证书。

2. 如果我正在运行 Microsoft AD 服务器,我应该选择哪种供应商类型?

在Vendor参数中选择 Active Directory。

07-en-keycloak-user-federation-provider

© 2011 - 2025 Macro Zhao的分享站

关于我

如遇到加载502错误,请尝试刷新😄

Hi,欢迎访问 Macro Zhao 的博客。Macro Zhao(或 Macro)是我在互联网上经常使用的名字。

我是一个热衷于技术探索和分享的IT工程师,在这里我会记录分享一些关于技术、工作和生活上的事情。

我的CSDN博客:
https://macro-zhao.blog.csdn.net/

欢迎你通过评论或者邮件与我交流。
Mail Me

推荐好玩(You'll Like)
  • AI 动·画
    • 这是一款有趣·免费的能让您画的画中的角色动起来的AI工具。
    • 支持几十种动作生成。
我的项目(My Projects)
  • 爱学习网

  • 小乙日语App

    • 这是一个帮助日语学习者学习日语的App。
      (当然初衷也是为了自用😄)
    • 界面干净,简洁,漂亮!
    • 其中包含 N1 + N2 的全部单词和语法。
    • 不需注册,更不需要订阅!完全免费!
  • 小乙日文阅读器

    • 词汇不够?照样能读日语名著!
    • 越读积累越多,积跬步致千里!
    • 哪里不会点哪里!妈妈再也不担心我读不了原版读物了!
赞助我(Sponsor Me)

如果你喜欢我的作品或者发现它们对你有所帮助,可以考虑给我买一杯咖啡 ☕️。这将激励我在未来创作和分享更多的项目和技术。🦾

👉 请我喝一杯咖啡

If you like my works or find them helpful, please consider buying me a cup of coffee ☕️. It inspires me to create and share more projects in the future. 🦾

👉 Buy me a coffee