如何将用户映射到OpenStack联合中的联合以外的域?
问题描述:
我想了解OpenStack上的直接映射。我想将用户映射到除Federated
域以外的域。但我总是将用户映射到联合域。这里如下,我使用的链接,直接映射:如何将用户映射到OpenStack联合中的联合以外的域?
https://specs.openstack.org/openstack/keystone-specs/specs/kilo/federated-direct-user-mapping.html
这里如下,我使用映射规则:
[
{
"local": [
{
"user": {
"name": "{0}",
"domain": {"name": "Default"}
}
},
{
"group": {
"id": "GROUP_ID"
}
}
],
"remote": [
{
"type": "HTTP_OIDC_SUB"
}
]
}
]
我已经配置OpenID
连接Idp
的联盟。
有人能帮助我如何做直接映射将联合用户映射到联合以外的域?
答
我已经能够让它不在'Federate'域中的唯一方法是强制用户是local类型的,但是他们需要存在于后端(SQL/LDAP)中, 。
[
{
"local": [
{
"user": {
"name": "{0}",
"type": "local",
"domain": {"name": "Default"}
}
},
{
"group": {
"id": "GROUP_ID"
}
}
],
"remote": [
{
"type": "HTTP_OIDC_SUB"
}
]
}
]
的基石以下代码位是这样做的罪魁祸首:
if user_type is None:
user_type = user['type'] = UserType.EPHEMERAL
if user_type == UserType.EPHEMERAL:
user['domain'] = {
'id': CONF.federation.federated_domain_name
}
它基本上覆盖域预配置的域,如果您的用户没有一个类型,或是短暂的。