如何将用户映射到OpenStack federation中的联盟域以外的域?
我试图理解OpenStack上的直接映射。我想将用户映射到除如何将用户映射到OpenStack federation中的联盟域以外的域?,openstack,federated-identity,keystone,federation,Openstack,Federated Identity,Keystone,Federation,我试图理解OpenStack上的直接映射。我想将用户映射到除联邦域之外的域。但我总是将用户映射到联邦域。下面是我正在使用的直接映射链接: [ { "local": [ { "user": { "name": "{0}", "domain": {"name": "Default"} } }, { "group": { "id": "GROUP_
联邦
域之外的域。但我总是将用户映射到联邦域。下面是我正在使用的直接映射链接:
[
{
"local": [
{
"user": {
"name": "{0}",
"domain": {"name": "Default"}
}
},
{
"group": {
"id": "GROUP_ID"
}
}
],
"remote": [
{
"type": "HTTP_OIDC_SUB"
}
]
}
]
下面是我正在使用的映射规则:
[
{
"local": [
{
"user": {
"name": "{0}",
"domain": {"name": "Default"}
}
},
{
"group": {
"id": "GROUP_ID"
}
}
],
"remote": [
{
"type": "HTTP_OIDC_SUB"
}
]
}
]
我已经为联盟配置了OpenID
connectIdp
有人能帮助我如何进行直接映射以将联邦用户映射到非联邦域吗?我能够使其不在“联邦成员”域中的唯一方法是强制用户为本地类型,但他们需要存在于后端(SQL/LDAP) keystone中的以下代码是进行此操作的罪魁祸首:
if user_type is None:
user_type = user['type'] = UserType.EPHEMERAL
if user_type == UserType.EPHEMERAL:
user['domain'] = {
'id': CONF.federation.federated_domain_name
}
如果您的用户没有类型,或者是临时的,它基本上会将域覆盖到预先配置的域。我能够使其不在“联邦成员”域中的唯一方法是强制用户为本地类型,但他们需要存在于后端(SQL/LDAP) keystone中的以下代码是进行此操作的罪魁祸首:
if user_type is None:
user_type = user['type'] = UserType.EPHEMERAL
if user_type == UserType.EPHEMERAL:
user['domain'] = {
'id': CONF.federation.federated_domain_name
}
如果您的用户没有类型,或者是临时的,它基本上会将域重写为预先配置的域