On Аўт, 01 кра 2025, Jostein Fossheim wrote:

On 2025-04-01 12:25, Alexander Bokovoy wrote:
On Аўт, 01 кра 2025, Jostein Fossheim wrote:

I was not completely able to let this rest, so I dived deeper into the mystical name-resolving that occurred via powershell.

It turns out that the SID in question has been added to the Foreign Security Principials subtree in LDAP, but only visible through an ldap search or ldap browser other than "Active Directory Users and Computers" ADSI Edit for example. And it turns out that I can actually create an Domain Local Group, and ad the Foreign Security Principial to that group via its DN.

And now I have an AD group which contain my IPA-NAS-LDAP\admin user (and it do actually resolve in the "Active Directory Users and Computers"-view as well. And this group I can assign other Rights in my Active Directory. I have only tested with file-services so far though and I can indeed regulate access control for my IPA-users, so I am quite satisfied so far

Good, thanks for the investigation.

As you can see on the attached picture, I am actually also able to log into windows with my IPA-user, when I add my "group" to the "Allow logon localy" GPO, for domain controllers. I willl dig some more into the exact reason my user is was added to the "Foreign Security Principials"-container.

I'm sure most of things will work once you added the SID to corresponding
ACLs. That's expected. Most of problems I've encountered are related to
how Windows UI is unable to discover the user/group names in those
tools to be able to convert those names (later) to SIDs. So once you
added the SID to an ACL, SID will be used correctly.

For users actual issue is that Windows UI cannot look those users up
properly. And fixing all edge cases is not always possible.



As assumed, it seems that triggering some powershell activity like this (adding and removing them via a local group):

PS C:\Users\Administrator> Add-LocalGroupMember -Group "Cert Publishers" -Member 'S-1-5-21-355267255-715991334-1594671509-1005' PS C:\Users\Administrator> Remove-LocalGroupMember -Group "Cert Publishers" -Member 'S-1-5-21-355267255-715991334-1594671509-1005'

PS C:\Users\Administrator> Add-LocalGroupMember -Group "Cert Publishers" -Member 'S-1-5-21-355267255-715991334-1594671509-1006' PS C:\Users\Administrator> Remove-LocalGroupMember -Group "Cert Publishers" -Member 'S-1-5-21-355267255-715991334-1594671509-1006'

Indeed adds the users to the ForeignSecurityPrinicipials-container.


But.. This are the ForeignSecurityPrinicipials for two users ipauser1 and ipauser2 and they resolve nicely everywhere (se attached pictures).

From ipa:

ldapsearch -LLLQ uid=ipauser* ipaNTSecurityIdentifier

dn: uid=ipauser2,cn=users,cn=accounts,dc=ipa-nas,dc=lab,dc=skyfritt,dc=net
ipaNTSecurityIdentifier: S-1-5-21-355267255-715991334-1594671509-1005

dn: uid=ipauser1,cn=users,cn=accounts,dc=ipa-nas,dc=lab,dc=skyfritt,dc=net
ipaNTSecurityIdentifier: S-1-5-21-355267255-715991334-1594671509-1006


When I search the relevant AD-tree:

ldapsearch -Y GSS-SPNEGO -LLLQ -H "ldap://mad-nas.mad-nas.lab.skyfritt.net"; -b CN=ForeignSecurityPrincipals,DC=mad-nas,DC=lab,DC=skyfritt,DC=net

dn: CN=S-1-5-21-355267255-715991334-1594671509-1005,CN=ForeignSecurityPrincipa
 ls,DC=mad-nas,DC=lab,DC=skyfritt,DC=net
objectClass: top
objectClass: foreignSecurityPrincipal
cn: S-1-5-21-355267255-715991334-1594671509-1005
distinguishedName: CN=S-1-5-21-355267255-715991334-1594671509-1005,CN=ForeignS
 ecurityPrincipals,DC=mad-nas,DC=lab,DC=skyfritt,DC=net
instanceType: 4
whenCreated: 20250401115637.0Z
whenChanged: 20250401115637.0Z
uSNCreated: 73769
memberOf: CN=TestGroup,CN=Users,DC=mad-nas,DC=lab,DC=skyfritt,DC=net
uSNChanged: 73769
showInAdvancedViewOnly: TRUE
name: S-1-5-21-355267255-715991334-1594671509-1005
objectGUID:: yzIrE30EUEiqjZwGr6vBcg==
objectSid:: AQUAAAAAAAUVAAAAt/IsFSYprSqVwQxf7QMAAA==
objectCategory: CN=Foreign-Security-Principal,CN=Schema,CN=Configuration,DC=ma
 d-nas,DC=lab,DC=skyfritt,DC=net
dSCorePropagationData: 16010101000000.0Z

dn: CN=S-1-5-21-355267255-715991334-1594671509-1006,CN=ForeignSecurityPrincipa
 ls,DC=mad-nas,DC=lab,DC=skyfritt,DC=net
objectClass: top
objectClass: foreignSecurityPrincipal
cn: S-1-5-21-355267255-715991334-1594671509-1006
distinguishedName: CN=S-1-5-21-355267255-715991334-1594671509-1006,CN=ForeignS
 ecurityPrincipals,DC=mad-nas,DC=lab,DC=skyfritt,DC=net
instanceType: 4
whenCreated: 20250401120047.0Z
whenChanged: 20250401120047.0Z
uSNCreated: 73781
uSNChanged: 73781
showInAdvancedViewOnly: TRUE
name: S-1-5-21-355267255-715991334-1594671509-1006
objectGUID:: mKBqKgpDY0q1CcjgKI7DtA==
objectSid:: AQUAAAAAAAUVAAAAt/IsFSYprSqVwQxf7gMAAA==
objectCategory: CN=Foreign-Security-Principal,CN=Schema,CN=Configuration,DC=ma
 d-nas,DC=lab,DC=skyfritt,DC=net
dSCorePropagationData: 16010101000000.0Z

Since both resolves after they are added to the the ForeignSecurityPrincipals-Container, and the entry does not have any usernames, etc, they have to lookup via some other channel. You wrote that "LSA RPC command lsa_LookupSids to do SID to name transformation which would work for users and groups.", is this done via the samba-instance running on IPA, after IPA-AD-Trust-controller is installed?

I played with the rpclient decribed in this article:

https://www.hackingarticles.in/active-directory-enumeration-rpcclient/

rpcclient -k ipa-nas.ipa-nas.lab.skyfritt.net

rpcclient $> queryuser ipauser1
        User Name   :   ipauser1
        Full Name   :   ipa1 user2
        Home Drive  :
        [...]

Somewhat wiser at least.

There are two 'reverse' command sets:

- lookupnames* to lookup users/groups
- lookupsids* to lookup SIDs

They have certain requirements towards security of the connection
between DCs/domain members, so you might not get it working from
rpcclient in a straight-forward way, especially cross-domain trust.

Does samba query the local-ldap tree on IPA for this to work then? Or do samba have it's own mystery database (or cache) as well?

FreeIPA uses own database driver (passdb module in Samba language) to
provide a backend that looks up proper data in LDAP.

I'd recommend you to read through FreeIPA design pages. A corresponding
one is this:
https://freeipa.readthedocs.io/en/latest/designs/adtrust/samba-domain-controller.html

--
/ Alexander Bokovoy
Sr. Principal Software Engineer
Security / Identity Management Engineering
Red Hat Limited, Finland

--
_______________________________________________
FreeIPA-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to