Keystone doesn't handle user_attribute_id mapping
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Identity (keystone) |
Fix Released
|
High
|
Guang Yee | ||
Icehouse |
Won't Fix
|
High
|
Guang Yee |
Bug Description
By default keystone gets the id from first field of DN. It doesn't use user_id_attibute mapping from keystone.conf
In the following code, "id" attribute is always 1 element in DN
---Relevent code---
@staticmethod
def _dn_to_id(dn):
return utf8_decode(
def _ldap_res_
obj = self.model(
# LDAP attribute names may be returned in a different case than
# they are defined in the mapping, so we need to check for keys
# in a case-insensitive way. We use the case specified in the
# mapping for the model to ensure we have a predictable way of
# retrieving values later.
lower_res = dict((k.lower(), v) for k, v in six.iteritems(
for k in obj.known_keys:
if k in self.attribute_
try:
v = lower_res[
except KeyError:
else:
return obj
summary: |
- Keysttone doesn't handle user_attribute_id mapping + Keystone doesn't handle user_attribute_id mapping |
tags: | added: ldap |
description: | updated |
Changed in keystone: | |
assignee: | nobody → Guang Yee (guang-yee) |
Changed in keystone: | |
status: | New → Confirmed |
importance: | Undecided → High |
Changed in keystone: | |
status: | Fix Committed → Fix Released |
Changed in keystone: | |
milestone: | juno-rc1 → 2014.2 |
Adding query_mode=sub doesn't help. There is a possibility that mapped attribute can't be in DN too