2016-09-30 3 views
1

Я пытаюсь понять прямое отображение на 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 для федерации.

Может ли кто-нибудь помочь мне, как я могу сделать прямое сопоставление для сопоставления федеративного пользователя в другом домене, кроме федеративного?

ответ

0

Единственный способ, которым я смог заставить его не находиться в домене «Федерал», заключается в том, чтобы заставить пользователя иметь тип 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 
     } 

Это в основном перекрывает домен на заранее сконфигурированный домен, если ваш пользователь не имеет тип, или является эфемерным.

Смежные вопросы