QuestDB 上的 Active Directory 组

问题描述 投票:0回答:1

我在将 QuestDB Enterprise 与 Azure EntraId/Active Directory 集成时遇到一些问题。我相信我已经一切就绪,但我被困住了。这就是我到目前为止所做的:

  • 创建了 SPA 并配置了指向 QuestDB 将启动 SSO 的端点的重定向 URI
  • 我启用了公共客户端流,因此我可以拥有资源所有者密码凭证流并使用 psql 等工具,而不仅仅是基于浏览器的工具
  • 我创建了一个 API,其中包含管理员和用户同意的范围
  • 我为电子邮件、offline_access、openid、个人资料和 User.Read 添加了“委托”类型的 API 权限
  • 我创建了一个客户ID
  • 自定义令牌以包含 AD 组,为令牌类型为“ID、Access、SAML”的组添加声明

我还用这些参数更改了我的

server.conf

acl.oidc.enabled=true
acl.oidc.ropc.flow.enabled=true
acl.oidc.groups.claim=groups

# Microsoft EntraID (Azure AD)
acl.oidc.configuration.url=https://login.microsoftonline.com/XXXXXXXX-6cec-4b6c-ba03-XXXXXXX/v2.0/.well-known/openid-configuration
acl.oidc.sub.claim=name
acl.oidc.groups.encoded.in.token=true
acl.oidc.client.id=XXXXXXX-246e-4dd1-960b-XXXXXX
acl.oidc.redirect.uri=https://myquestdb:9000
acl.oidc.scope=openid profile offline_access api://XXXXXXX-246e-4dd1-960b-XXXXXX/User.Groups

当我导航到 QuestDB 时,我可以选择 SSO,它会将我重定向到 Azure 进行身份验证。一切都好。问题是登录用户没有 QuestDB 的权限,我不知道如何授予它们。我期望登录时我的 AD 中的用户或组可以在 QuestDB 上使用,但是如果我执行

SHOW USERS
,我只能看到我的管理员用户,并且
SHOW GROUPS
没有显示任何内容

database time-series microsoft-entra-id questdb
1个回答
0
投票

当 QuestDB Enterprise 使用 SSO 时,它不会存储来自远程服务器的用户或组。我们需要在 QuestDB 中创建一个本地组作为 AD 上外部组的代理,然后向该组授予权限。当用户通过身份验证时,QuestDB 将知道它属于哪些组,并根据该组授予权限。

上述配置中剩下的就是在 QuestDB 中创建一个与 Entra ID 组连接的组。

create group group_entraid with external alias 'XXXXX-64e4-435a-8f2b-XXX';

别名是 AD 上组的 ObjectID。

组匹配后,我们就可以向组成员授予使用 Web 控制台和 PGWIRE 协议的权限以及我们需要的任何其他数据库/表权限。

grant HTTP, PGWIRE TO group_entraid;
grant SELECT on table1 to group_entraid;
© www.soinside.com 2019 - 2024. All rights reserved.