如何将用户映射到OpenStack federation中的联盟域以外的域?

如何将用户映射到OpenStack federation中的联盟域以外的域?,openstack,federated-identity,keystone,federation,Openstack,Federated Identity,Keystone,Federation,我试图理解OpenStack上的直接映射。我想将用户映射到除联邦域之外的域。但我总是将用户映射到联邦域。下面是我正在使用的直接映射链接: [ { "local": [ { "user": { "name": "{0}", "domain": {"name": "Default"} } }, { "group": { "id": "GROUP_

我试图理解OpenStack上的直接映射。我想将用户映射到除
联邦
域之外的域。但我总是将用户映射到联邦域。下面是我正在使用的直接映射链接:

[
  {
    "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
connect
Idp


有人能帮助我如何进行直接映射以将联邦用户映射到非联邦域吗?

我能够使其不在“联邦成员”域中的唯一方法是强制用户为本地类型,但他们需要存在于后端(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
        }
如果您的用户没有类型,或者是临时的,它基本上会将域重写为预先配置的域