Skip to Content
0
Former Member
May 28, 2008 at 03:36 PM

LDAP Integration without samaccountname

183 Views

Hi everybody,

first let me quickly explain the situation: The customer has different usernames in LDAP and R/3. This SAP-Usernames are stored in the DS in the attribute u201CextensionAttribute2u201D and used for the SAP-Referencesystem (works fine). The problem is, that we also need to use Federated Portal Network and this cannot work with different usernames (at least not for a double stack which is included in this scenario).

Our idea was to u201Crecurveu201D the ldap-connection to the ADS and use extensionAttribute2 instead of samaccountname. We got it working, so that the user can log in to the portal using his sap-username and his current windows password (Donu2019t bother irritation on the users side, because we are also working with Kerberos 😊 ).

The problem is however, that we get an error within the usermanagement, because the mandatory-field u201Clogon-idu201D is not filled, although it is returned by the ads-server.

Has anybody ever tried this?

Imo it should be possible, because when your working with a non-Microsoft-Ldap, there is no samaccountnameu2026

-

-


My datasourceConfiguration-File:

<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: //shared_tc/com.sapall.security/630_SP_COR/src/_deploy/dist/configuration/shared/dataSourceConfiguration_ads_deep_readonly_db.xml#6
$ from $DateTime: 2004/08/20 09:55:24 $ ($Change: 17140 $) -->
<dataSources>
    <dataSource id="PRIVATE_DATASOURCE"
                className="com.sap.security.core.persistence.datasource.imp.DataBasePersistence"
                isReadonly="false"
                isPrimary="true">

        <homeFor>
            <principals>
            	<principal type="group"></principal>
            	<principal type="user"></principal>
            	<principal type="account"></principal>
                <principal type="team"></principal>
                <principal type="ROOT"></principal>
                <principal type="OOOO"></principal>
            </principals>
        </homeFor>
        <notHomeFor></notHomeFor>

        <responsibleFor>
            <principals>
            	<principal type="group"></principal>
            	<principal type="user"></principal>
            	<principal type="account"></principal>
                <principal type="team"></principal>
                <principal type="ROOT"></principal>
                <principal type="OOOO"></principal>
            </principals>
        </responsibleFor>

        <privateSection>
        </privateSection>
    </dataSource>

	<dataSource id="CORP_LDAP"
			className="com.sap.security.core.persistence.datasource.imp.LDAPPersistence"
			isReadonly="true"
			isPrimary="true">

		<homeFor></homeFor>

		<responsibleFor>
    		<principal type="account">
    			<nameSpace name="com.sap.security.core.usermanagement">
    				<attribute name="j_user"></attribute>
					<attribute name="j_password"></attribute>
					<attribute name="userid"></attribute>
					<attribute name="logonalias"></attribute>
				</nameSpace>
    			<nameSpace name="com.sap.security.core.authentication">
    				<attribute name="principal"></attribute>
    				<attribute name="realm"></attribute>
    				<attribute name="domain"></attribute>
    			</nameSpace>
			</principal>
			<principal type="user">
				<nameSpace name="com.sap.security.core.usermanagement">
					<attribute name="firstname" populateInitially="true"></attribute>
					<attribute name="displayname" populateInitially="true"></attribute>
					<attribute name="lastname" populateInitially="true"></attribute>
					<attribute name="fax"></attribute>
					<attribute name="email"></attribute>
					<attribute name="title"></attribute>
					<attribute name="department"></attribute>
					<attribute name="description"></attribute>
					<attribute name="mobile"></attribute>
					<attribute name="telephone"></attribute>
					<attribute name="streetaddress"></attribute>
					<attribute name="uniquename" populateInitially="true"></attribute>
				</nameSpace>
    			<nameSpace name="com.sap.security.core.usermanagement.relation">
    					<attribute name="PRINCIPAL_RELATION_PARENT_ATTRIBUTE"></attribute>
    			</nameSpace>
    			<nameSpace name="$usermapping$">
    					<attribute name="REFERENCE_SYSTEM_USER"></attribute>
    			</nameSpace>
    		</principal>
    		<principal type="group">
	    		<nameSpace name="com.sap.security.core.usermanagement">
		    		<attribute name="displayname" populateInitially="true"></attribute>
			    	<attribute name="description" populateInitially="true"></attribute>
				    <attribute name="uniquename"></attribute>
	 			</nameSpace>
 				<nameSpace name="com.sap.security.core.usermanagement.relation">
					<attribute name="PRINCIPAL_RELATION_MEMBER_ATTRIBUTE"></attribute>
					<attribute name="PRINCIPAL_RELATION_PARENT_ATTRIBUTE"></attribute>
				</nameSpace>
				<nameSpace name="com.sap.security.core.bridge">
					<attribute name="dn"></attribute>
				</nameSpace>
			</principal>
		</responsibleFor>

		<attributeMapping>
			<principal type="account">
				<nameSpace name="com.sap.security.core.usermanagement">
					<attribute name="j_user">
						<physicalAttribute name="extensionAttribute2"></physicalAttribute>
					</attribute>
					<attribute name="logonalias">
						<physicalAttribute name="extensionAttribute2"></physicalAttribute>
					</attribute>
					<attribute name="j_password">
						<physicalAttribute name="unicodepwd"></physicalAttribute>
					</attribute>
					<attribute name="userid">
						<physicalAttribute name="*null*"></physicalAttribute>
					</attribute>
				</nameSpace>
    			<nameSpace name="com.sap.security.core.authentication">
    				<attribute name="principal">
    					<physicalAttribute name="extensionAttribute2"></physicalAttribute>
    				</attribute>
    				<attribute name="realm">
    					<physicalAttribute name="*null*"></physicalAttribute>
    				</attribute>
    				<attribute name="domain">
    					<physicalAttribute name="*null*"></physicalAttribute>
    				</attribute>
    			</nameSpace>				
			</principal>

			<principal type="user">
				<nameSpace name="com.sap.security.core.usermanagement">
					<attribute name="firstname">
						<physicalAttribute name="givenname"></physicalAttribute>
					</attribute>
					<attribute name="displayname">
						<physicalAttribute name="displayname"></physicalAttribute>
					</attribute>
					<attribute name="lastname">
						<physicalAttribute name="sn"></physicalAttribute>
					</attribute>
					<attribute name="fax">
						<physicalAttribute name="facsimiletelephonenumber"></physicalAttribute>
					</attribute>
					<attribute name="uniquename">
						<physicalAttribute name="extensionAttribute2"></physicalAttribute>
					</attribute>
					<attribute name="loginid">
						<physicalAttribute name="*null*"></physicalAttribute>
					</attribute>
					<attribute name="email">
						<physicalAttribute name="mail"></physicalAttribute>
					</attribute>
					<attribute name="mobile">
						<physicalAttribute name="mobile"></physicalAttribute>
					</attribute>
					<attribute name="telephone">
						<physicalAttribute name="telephonenumber"></physicalAttribute>
					</attribute>
					<attribute name="department">
						<physicalAttribute name="ou"></physicalAttribute>
					</attribute>
					<attribute name="description">
						<physicalAttribute name="description"></physicalAttribute>
					</attribute>
					<attribute name="streetaddress">
						<physicalAttribute name="postaladdress"></physicalAttribute>
					</attribute>
					<attribute name="pobox">
						<physicalAttribute name="postofficebox"></physicalAttribute>
					</attribute>
				</nameSpace>
				<nameSpace name="com.sap.security.core.usermanagement.relation">
					<attribute name="PRINCIPAL_RELATION_PARENT_ATTRIBUTE">
						<physicalAttribute name="*null*"></physicalAttribute>
					</attribute>
				</nameSpace>
				<nameSpace name="$usermapping$">
					<attribute name="REFERENCE_SYSTEM_USER">
						<physicalAttribute name="sapusername"></physicalAttribute>
					</attribute>
				</nameSpace>
			</principal>
			<principal type="group">
				<nameSpace name="com.sap.security.core.usermanagement">
					<attribute name="displayname">
						<physicalAttribute name="displayname"></physicalAttribute>
					</attribute>
					<attribute name="description">
						<physicalAttribute name="description"></physicalAttribute>
					</attribute>
					<attribute name="uniquename" populateInitially="true">
						<physicalAttribute name="ou"></physicalAttribute>
					</attribute>
				</nameSpace>
				<nameSpace name="com.sap.security.core.usermanagement.relation">
					<attribute name="PRINCIPAL_RELATION_MEMBER_ATTRIBUTE">
						<physicalAttribute name="*null*"></physicalAttribute>
					</attribute>
					<attribute name="PRINCIPAL_RELATION_PARENT_ATTRIBUTE">
						<physicalAttribute name="*null*"></physicalAttribute>
					</attribute>
				</nameSpace>
				<nameSpace name="com.sap.security.core.bridge">
					<attribute name="dn">
						<physicalAttribute name="*null*"></physicalAttribute>
					</attribute>
				</nameSpace>
			</principal>
		</attributeMapping>
		<privateSection>
			<ume.ldap.access.server_type>MSADS</ume.ldap.access.server_type>
			<ume.ldap.access.context_factory>com.sun.jndi.ldap.LdapCtxFactory</ume.ldap.access.context_factory>
			<ume.ldap.access.authentication>simple</ume.ldap.access.authentication>
			<ume.ldap.access.flat_group_hierachy>false</ume.ldap.access.flat_group_hierachy>
			<ume.ldap.access.user_as_account>true</ume.ldap.access.user_as_account>
			<ume.ldap.access.dynamic_groups>false</ume.ldap.access.dynamic_groups>
			<ume.ldap.access.ssl_socket_factory>com.sap.security.core.server.https.SecureConnectionFactory</ume.ldap.access.ssl_socket_factory>
			<ume.ldap.access.objectclass.user>User</ume.ldap.access.objectclass.user>
			<ume.ldap.access.objectclass.uacc>User</ume.ldap.access.objectclass.uacc>
			<ume.ldap.access.objectclass.grup>organizationalUnit</ume.ldap.access.objectclass.grup>
			<ume.ldap.access.naming_attribute.user>cn</ume.ldap.access.naming_attribute.user>
			<ume.ldap.access.auxiliary_naming_attribute.user>extensionAttribute2</ume.ldap.access.auxiliary_naming_attribute.user>
			<ume.ldap.access.naming_attribute.uacc>cn</ume.ldap.access.naming_attribute.uacc>
			<ume.ldap.access.auxiliary_naming_attribute.uacc>extensionAttribute2</ume.ldap.access.auxiliary_naming_attribute.uacc>
			<ume.ldap.access.naming_attribute.grup>ou</ume.ldap.access.naming_attribute.grup>
		</privateSection>
	</dataSource>
</dataSources>

-

-


The Output of u201CTest component for UME objectsu201D from u201CTest component for UME objectsu201D:

Get user object by logonId took: 0ms

...

UME User toString

Transient data: No transient data set. Persistent data: *************************************************************************** * com.sap.security.core.persistence.imp.PrincipalDatabag Wed May 28 17:26:39 CEST 2008 * UniqueID: USER.CORP_LDAP.cn=fpn-user,ou=special-users,ou=bae-users,dc=customer,dc=de * Type: USER * Home data source: CORP_LDAP * Private id part: cn=fpn-user,ou=special-users,ou=bae-users,dc=customer,dc=de * * Principal exists. * * Direct parents: * GRUP: GRUP.SUPER_GROUPS_DATASOURCE.EVERYONE * GRUP.SUPER_GROUPS_DATASOURCE.AUTHENTICATED_USERS * ROLE: * "com.sap.portal.dsm"|->"DebugControlFlag" (no time limit)= * "com.sap.security.core.usermanagement"|->"accessibilitylevel" (no time limit)= * "com.sap.security.core.usermanagement"|->"unlockdate" (no time limit)= * "com.sap.security.core.usermanagement"|->"uniquename" (no time limit)="fpn-user2" * "com.sap.security.core.usermanagement"|->"ps_link" (no time limit)= * "com.sap.security.core.usermanagement"|->"lockmessage" (no time limit)= * "com.sap.security.core.usermanagement"|->"lockperson" (no time limit)= * "com.sap.security.core.usermanagement"|->"salutation" (no time limit)= * "com.sap.security.core.usermanagement"|->"displayname" (no time limit)="FPN-User" * "com.sap.security.core.usermanagement"|->"APPROVAL_REQUEST_COMPANYID" (no time limit)= * "com.sap.security.core.usermanagement"|->"company" (no time limit)= * "com.sap.security.core.usermanagement"|->"lastname" (no time limit)="User" * "com.sap.security.core.usermanagement"|->"locale" (no time limit)= * "com.sap.security.core.usermanagement"|->"unlockperson" (no time limit)= * "com.sap.security.core.usermanagement"|->"ps_timestamp" (no time limit)= * "com.sap.security.core.usermanagement"|->"unlockmessage" (no time limit)= * "com.sap.security.core.usermanagement"|->"firstname" (no time limit)="FPN" * "com.sap.security.core.usermanagement"|->"email" (no time limit)="fpn-useru2019AT-Signu2019customer.de" * "com.sap.security.core.usermanagement"|->"ps_version" (no time limit)= * "com.sap.security.core.usermanagement"|->"lockReason" (no time limit)= * "$serviceUser$"|->"SERVICEUSER_ATTRIBUTE" (no time limit)= * "com.sapportals.portal.navigation"|->"uipmode" (no time limit)= ***************************************************************************

-

-


Any help or hint will be appreciated and of course points will be given 😊

Thanks and greets,

Jörg Schröder