跳至主要内容
版本:4.0

使用 OAuth2 Proxy 和 Keycloak 作为 OAuth 2.0 服务器

演示如何使用 OAuth 2.0 协议和 OAuth2 Proxy 作为授权服务器进行身份验证,使用以下流程

让我们测试以下流程

  • 通过 OAuth2 Proxy 使用浏览器访问 RabbitMQ 管理 UI
                    [ Keycloak ] 3. authenticate
/|\ |
| | 4. token
2.redirect | \|/ [ RabbitMQ ]
[ Oauth2-Proxy ] ----5. forward with token--> [ http ]
/|\
|
1. rabbit_admin from a browser

使用 OAuth 2 Proxy 和 Keycloak 的先决条件

  • Docker
  • make
  • 本地克隆的 GitHub 存储库,其中包含本示例中使用的所有配置文件和脚本

部署 Keycloak

通过运行以下命令部署 Keycloak

make start-keycloak

注意:Keycloak 预先配置了所需的范围、用户和客户端。它使用自己的签名密钥进行配置,并且 rabbitmq.conf 文件也使用相同的签名密钥进行配置。

要访问 Keycloak 管理 UI,请访问 https://0.0.0.0:8080/,并输入 admin 作为用户名和密码。

有一个专门的 Keycloak realm 称为 Test,配置如下

启动 RabbitMQ

要启动 RabbitMQ,请运行以下两个命令。第一个命令告诉 RabbitMQ 从 conf/oauth2-proxy/rabbitmq.conf 中找到的 rabbitmq.conf 加载配置。

export MODE=oauth2-proxy
make start-rabbitmq

注意:Oauth2 Proxy 要求 aud 声明与客户端 ID 相匹配。但是,RabbitMQ 要求 aud 字段与 rabbitmq 相匹配,这是指定的 resource_server_id。鉴于无法使用这两个值配置 keycloak,rabbitmq.conf 包含以下设置,禁用对受众声明的验证。

auth_oauth2.verify_aud = false

启动 OAuth2 Proxy

要启动 OAuth2 Proxy,请运行以下命令

make start-oauth2-proxy

Oauth2 Proxy 使用 Alpha 配置 进行配置。这种类型的配置将访问令牌插入 HTTP Authorization 标头。

访问 管理 UI

访问 https://0.0.0.0:4180/,单击 使用 Keycloak OIDC 登录 链接,并输入凭据 rabbit_admin 作为用户名和 rabbit_admin 作为密码。您应该被重定向到 RabbitMQ 管理 UI。

© 2024 RabbitMQ. All rights reserved.