Reviewed:  https://review.openstack.org/549723
Committed: 
https://git.openstack.org/cgit/openstack/keystone/commit/?id=475ea454ee06d4b3cf4d423aa26b2432e5928767
Submitter: Zuul
Branch:    master

commit 475ea454ee06d4b3cf4d423aa26b2432e5928767
Author: yangweiwei <[email protected]>
Date:   Thu Mar 22 19:26:08 2018 +0800

    Fix user email in federated shadow users
    
    When the federated rule contains 'email' in user and we should set
    email for the federated user. Also, if the federated user changes the
    email info, it should be chenged too.
    
    Change-Id: Ib17172c34bd65d5236cbfc192b3a3f2b221411ef
    Closes-Bug: #1746599


** Changed in: keystone
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Identity (keystone).
https://bugs.launchpad.net/bugs/1746599

Title:
  User email not being set for federated shadow users

Status in OpenStack Identity (keystone):
  Fix Released

Bug description:
  keystone version: openstack-keystone-12.0.0-1.el7.noarch (RPM
  installed in a kolla container)

  We are using OpenID Connect federation with the following mapping rules:
  $ openstack mapping show map_rules -f json
  {
    "rules": [
      {
        "local": [
          {
            "user": {
              "name": "{0}", 
              "email": "{4}"
            }
          }, 
          {
            "projects": [
              {
                "name": "{1}", 
                "roles": [
                  {
                    "name": "_member_"
                  }
                ]
              }
            ]
          }
        ], 
        "remote": [
          {
            "type": "OIDC-upn"
          }, 
          {
            "type": "OIDC-name"
          }, 
          {
            "type": "OIDC-given_name"
          }, 
          {
            "type": "OIDC-family_name"
          }, 
          {
            "type": "OIDC-unique_name"
          }
        ]
      }
    ], 
    "id": "map_rules"
  }

  Identity provider:
  $ openstack identity provider show openid-lab
  
+-------------+---------------------------------------------------------------+
  | Field       | Value                                                         
|
  
+-------------+---------------------------------------------------------------+
  | description | None                                                          
|
  | domain_id   | 98401b16aa754830aa7e3eab92e7603b                              
|
  | enabled     | True                                                          
|
  | id          | openid-lab                                                    
|
  | remote_ids  | https://sts.windows.net/xxx-xxx-xxx-xxx/                      
|
  
+-------------+---------------------------------------------------------------+

  Federation protocol:
  $ openstack federation protocol show --identity-provider openid-lab openid
  +---------+-----------+
  | Field   | Value     |
  +---------+-----------+
  | id      | openid    |
  | mapping | map_rules |
  +---------+-----------+

  What should happen:

  I would expect the user to get created with the email set like this:

  $ openstack user show dbe5470baecb47fa95f3e0512b0f5744
  +---------------------+----------------------------------+
  | Field               | Value                            |
  +---------------------+----------------------------------+
  | domain_id           | 98401b16aa754830aa7e3eab92e7603b |
  | email               | [email protected]       |
  | enabled             | True                             |
  | id                  | dbe5470baecb47fa95f3e0512b0f5744 |
  | name                | [email protected]       |
  | options             | {}                               |
  | password_expires_at | None                             |
  +---------------------+----------------------------------+

  
  What happens:

  The user email doesn't get added to the user:

  $ openstack user show dbe5470baecb47fa95f3e0512b0f5744
  +---------------------+----------------------------------+
  | Field               | Value                            |
  +---------------------+----------------------------------+
  | domain_id           | 98401b16aa754830aa7e3eab92e7603b |
  | enabled             | True                             |
  | id                  | dbe5470baecb47fa95f3e0512b0f5744 |
  | name                | [email protected]       |
  | options             | {}                               |
  | password_expires_at | None                             |
  +---------------------+----------------------------------+

  
  I can see the email property getting mapped correctly in the logs:
  2018-01-31 20:51:05.118 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] rules: [{u'remote': 
[{u'type': u'OIDC-upn'}, {u'type': u'OIDC-name'}, {u'type': 
u'OIDC-given_name'}, {u'type': u'OIDC-family_n
  ame'}, {u'type': u'OIDC-unique_name'}], u'local': [{u'user': {u'name': 
u'{0}', u'email': u'{4}'}}, {u'projects': [{u'name': u'{1}', u'roles': 
[{u'name': u'_member_'}]}]}]}] process 
/usr/lib/python2.7/site-packages/keystone/federation/util
  s.py:518
  2018-01-31 20:51:05.118 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] updating a direct mapping: 
[u'[email protected]'] _verify_all_requirements 
/usr/lib/python2.7/site-packages/keystone
  /federation/utils.py:816
  2018-01-31 20:51:05.119 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] updating a direct mapping: 
[u'Martin Chlumsky'] _verify_all_requirements 
/usr/lib/python2.7/site-packages/keystone/federation/
  utils.py:816
  2018-01-31 20:51:05.119 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] updating a direct mapping: 
[u'Martin'] _verify_all_requirements 
/usr/lib/python2.7/site-packages/keystone/federation/utils.py:
  816
  2018-01-31 20:51:05.120 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] updating a direct mapping: 
[u'Chlumsky'] _verify_all_requirements 
/usr/lib/python2.7/site-packages/keystone/federation/utils.p
  y:816
  2018-01-31 20:51:05.120 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] updating a direct mapping: 
[u'[email protected]'] _verify_all_requirements 
/usr/lib/python2.7/site-packages/keystone
  /federation/utils.py:816
  2018-01-31 20:51:05.121 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] direct_maps: 
<keystone.federation.utils.DirectMaps object at 0x7f88a4546e50> 
_update_local_mapping /usr/lib/python2.7/site-pac
  kages/keystone/federation/utils.py:698
  2018-01-31 20:51:05.121 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] local: {u'user': {u'name': 
u'{0}', u'email': u'{4}'}} _update_local_mapping 
/usr/lib/python2.7/site-packages/keystone/federati
  on/utils.py:699
  2018-01-31 20:51:05.121 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] direct_maps: 
<keystone.federation.utils.DirectMaps object at 0x7f88a4546e50> 
_update_local_mapping /usr/lib/python2.7/site-pac
  kages/keystone/federation/utils.py:698
  2018-01-31 20:51:05.122 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] local: {u'name': u'{0}', 
u'email': u'{4}'} _update_local_mapping 
/usr/lib/python2.7/site-packages/keystone/federation/utils.py
  :699
  2018-01-31 20:51:05.122 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] direct_maps: 
<keystone.federation.utils.DirectMaps object at 0x7f88a4546e50> 
_update_local_mapping /usr/lib/python2.7/site-pac
  kages/keystone/federation/utils.py:698
  2018-01-31 20:51:05.123 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] local: {u'projects': 
[{u'name': u'{1}', u'roles': [{u'name': u'_member_'}]}]} _update_local_mapping 
/usr/lib/python2.7/site-pa
  ckages/keystone/federation/utils.py:699
  2018-01-31 20:51:05.123 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] direct_maps: 
<keystone.federation.utils.DirectMaps object at 0x7f88a4546e50> 
_update_local_mapping /usr/lib/python2.7/site-pac
  kages/keystone/federation/utils.py:698
  2018-01-31 20:51:05.124 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] local: {u'name': u'{1}', 
u'roles': [{u'name': u'_member_'}]} _update_local_mapping 
/usr/lib/python2.7/site-packages/keystone/f
  ederation/utils.py:699
  2018-01-31 20:51:05.124 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] direct_maps: 
<keystone.federation.utils.DirectMaps object at 0x7f88a4546e50> 
_update_local_mapping /usr/lib/python2.7/site-pac
  kages/keystone/federation/utils.py:698
  2018-01-31 20:51:05.125 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] local: {u'name': 
u'_member_'} _update_local_mapping 
/usr/lib/python2.7/site-packages/keystone/federation/utils.py:699
  2018-01-31 20:51:05.125 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] identity_values: 
[{u'user': {u'name': u'[email protected]', u'email': 
u'[email protected]'}}, {u'projects'
  : [{u'name': u'Martin Chlumsky', u'roles': [{u'name': u'_member_'}]}]}] 
process /usr/lib/python2.7/site-packages/keystone/federation/utils.py:538
  2018-01-31 20:51:05.126 19 DEBUG keystone.federation.utils 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] mapped_properties: 
{'group_ids': [], 'user': {'domain': {'id': 'Federated'}, 'type': 'ephemeral', 
u'name': u'[email protected]', u'email': 
u'[email protected]'}, 'projects': [{u'name': u'Martin Chlumsky', 
u'roles': [{u'name': u'_member_'}]}], 'group_names': []} process 
/usr/lib/python2.7/site-packages/keystone/federation/utils.py:540
  2018-01-31 20:51:05.126 19 INFO keystone.auth.plugins.mapped 
[req-13328b62-d2c7-43eb-926f-510443d8917f - - - - -] bifbaz: {'group_ids': [], 
'user': {'domain': {'id': 'Federated'}, 'type': 'ephemeral', u'name': 
u'[email protected]', u'email': u'[email protected]'}, 
'projects': [{u'name': u'Martin Chlumsky', u'roles': [{u'name': 
u'_member_'}]}], 'group_names': []}

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1746599/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to