pgreco / rpms / ipa

Forked from forks/areguera/rpms/ipa 4 years ago
Clone

Blame SOURCES/0012-ldap2-use-LDAP-whoami-operation-to-retrieve-bind-DN-.patch

483b06
From 1288763da61ba9e0c9bd345487a3e645c58284df Mon Sep 17 00:00:00 2001
483b06
From: Alexander Bokovoy <abokovoy@redhat.com>
483b06
Date: Wed, 22 Mar 2017 13:00:22 +0200
483b06
Subject: [PATCH] ldap2: use LDAP whoami operation to retrieve bind DN for
483b06
 current connection
483b06
483b06
For external users which are mapped to some DN in LDAP server, we
483b06
wouldn't neccesary be able to find a kerberos data in their LDAP entry.
483b06
Instead of searching for Kerberos principal use actual DN we are bound
483b06
to because for get_effective_rights LDAP control we only need the DN
483b06
itself.
483b06
483b06
Fixes https://pagure.io/freeipa/issue/6797
483b06
483b06
Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
483b06
Reviewed-By: Pavel Vomacka <pvomacka@redhat.com>
483b06
---
483b06
 ipaserver/plugins/ldap2.py | 7 +++----
483b06
 1 file changed, 3 insertions(+), 4 deletions(-)
483b06
483b06
diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py
483b06
index def124530cc863e6924c7b6f1f48c236323019a9..3b1e4da57a8e16e3d9b27eea24025de2caa53216 100644
483b06
--- a/ipaserver/plugins/ldap2.py
483b06
+++ b/ipaserver/plugins/ldap2.py
483b06
@@ -286,12 +286,11 @@ class ldap2(CrudBackend, LDAPClient):
483b06
 
483b06
         assert isinstance(dn, DN)
483b06
 
483b06
-        principal = getattr(context, 'principal')
483b06
-        entry = self.find_entry_by_attr("krbprincipalname", principal,
483b06
-            "krbPrincipalAux", base_dn=self.api.env.basedn)
483b06
+        bind_dn = self.conn.whoami_s()[4:]
483b06
+
483b06
         sctrl = [
483b06
             GetEffectiveRightsControl(
483b06
-                True, "dn: {0}".format(entry.dn).encode('utf-8'))
483b06
+                True, "dn: {0}".format(bind_dn).encode('utf-8'))
483b06
         ]
483b06
         self.conn.set_option(_ldap.OPT_SERVER_CONTROLS, sctrl)
483b06
         try:
483b06
-- 
483b06
2.12.1
483b06