This post is more than 5 years old
4 Posts
2
13481
June 7th, 2015 05:00
Multi-protocol issue UID/GID not matching
Hi Fellow Isiloners,
Need urgent assistance!
I have copied over Mixed security shares from Netapp to Isilon. These directories are now Shared as SMB as well Exported to Linux client.
Client creates a file on the share and accesses it over the linux system but it's noticed that his GID/UID are not maintained. Seems it's taking isilon default UID and that's a problem .
Can anyone assist how I can re-mediate this ?
Utkarsh
No Events found!



crklosterman
450 Posts
0
June 9th, 2015 08:00
Adam,
While what you've described is correct, there is one inherent misconception. Yes an auto-generated UID/GID will be created for a user upon first connection if they have no matching account in LDAP/NIS/File Provider, etc. However if you were to add an LDAP account for them later, even though the output of isi auth mapping dump | grep will show you the auto-created mapping, that is the last resort we use. So if a valid UID/GID suddenly becomes available, it will now be used, and the auto-created one is merely an artifact that does not matter. On a VNX this is a bigger problem, because the on-disk identity is always Unix, since the UXFS filesystem is based on EXT3, it must have a valid UID and GID to write anything to disk. But on Isilon, if a user is SMB-only for 5 years, then all of a sudden gets an LDAP account, the data they've been writing for those 5 years will all have SID as the on-disk Identity, so there is no need to re-permission the data.
You can verify this with a sample user created in AD without a match, write some data, look at the output of isi auth mapping token domain\\username, find the 2 mapping entries for that SID in 'isi auth mapping dump'. Then create an LDAP account for that user. Now re-run the isi auth mapping token domain\\username. See if the UID and GID change. They should assuming the user mapping rules are setup properly. Now run an ls -ln /ifs/
. See if the UID and GID show are in the 1,000,000-2,000,000 range, or are what should be coming from LDAP.
So in that way the platform can be extremely flexible for this type of workflow.
~Chris Klosterman
Senior Solution Architect
EMC Isilon Offer & Enablement Team
chris.klosterman@emc.com
twitter: @croaking
Phil.Lam
3 Apprentice
•
621 Posts
0
June 7th, 2015 23:00
They can't take advantage of enabling RFC 2307 on the cluster I presume. The other resort is mapping AD SID to UNIX UID/GID.
UtkarshEMC
4 Posts
0
June 8th, 2015 06:00
Hi,
How can we map AD SID to Unix UID/GID? Can that be done on Isilon or has to
be done on AD?
Utkarsh
Phil.Lam
3 Apprentice
•
621 Posts
1
June 8th, 2015 09:00
RFC2307 has to be done in AD, ID mapping on Isilon. Check out this white paper:
https://support.emc.com/docu53353_White_Paper:_OneFS_Multiprotocol_Security_Untangled.pdf?language=en_US
On page 8:
ID mapping
Although their names are similar, the ID mapping service differs from the user mapping service. The goal of the ID mapping service is to map Windows SIDs to UNIX UIDs and GIDs and vice versa in order to provide consistent access across protocols.
During authentication, the ID mapping service associates Windows identifiers with UNIX identifiers. When a user connects to an Isilon cluster over SMB, the ID mapping service maps the user’s SIDs to UIDs and GIDs for access to files that were stored over NFS. By default, the ID mapping service matches accounts with the same name.
In contrast to SMB, when a user connects to the cluster over NFS, the ID mapping service does not map the UID and GIDs to SIDs by default, because the default identity stored on disk is already in the form of a UID and GIDs. Thus, with NFS, mapping the UID and GIDs to SIDs is unnecessary.
crklosterman
450 Posts
0
June 8th, 2015 10:00
Utkarsh,
First, there is no industry standard for how to gel together multiprotocol permissions (meaning POSIX & ACLs). NetApp does it one way with mixed Qtrees, VNX a second, and Isilon a third (which of course we believe is superior
). But ultimately keep in mind 2 things.
1. When doing a data migration the goal is the ensure the behavior of the target platform to the end users and applications is consistent with their expectations, or can be made to work with their workflow. User Acceptence testing is key. The permission structure looking the same is a separate item. The goals of such testing are:
a. If a user could get to data before the migration via SMB, then they can do so after, with the same level of access.
b. If a user could get to data before the migration via NFS, then they can do so after, with the same level of access.
c. If a user could not get to data before the migration via SMB, they cannot get to it after.
d. If a user could not get to data before the migration via NFS, they cannot get to it after.
2. The true goal of any multiprotocol implementation is that a given user has the same access, to the same data irregardless of the data access protocol. In our case that's a long list; SMB, NFS, HDFS, FTP, sFTP, FTPs, RAN, Swift, HTTP, etc.
Keeping those two design tenets in mind, multiprotocol data access comes down to 2 things.
1. Authentication
2. Access Control (filesystem permissions)
Where it sounds like you're really having problems is on the Authentications side of the equation. As you've already discovered, if an SMB user connects, and we do not have a valid UID or GID for that user, we'll make one up with an internal usermapping daemon. There's no mystery or secrecy here, everyone does this in some form. Isilon's default range is 1 million to 2 million. VNX uses 32K-64K. NTAP has some options, but will map to a default user as you can read here:
https://library.netapp.com/ecmdocs/ECMP1401220/html/GUID-09C7812F-E6EA-47C6-AB79-EAB803E7A8EB.html
So what does that mean? It means the Isilon cluster needs to know about all your auth providers, so that it can create a unified persona for any individual user. Meaning it needs to be able to understand that mydomain\joe from AD and 'joe' from LDAP are the same person. So how do you do that? User Mapping rules. Read up on them in the OneFS Web or CLI Admin guide for your release of OneFS.
Ultimately the goal should be that any when you map domain\joe to LDAP joe that regardless of how the user connects, the SID, UID, GID, and all supplemental identities (read secondary groups) are the same.
You can test this at the CLI like this: (the double backslash is intentional
isi auth mapping token mydomain\\joe
isi auth mapping token joe
The results should match when you're at your desired state. Look at the usrmap.cfg file on the NetApp for some similar logic. Not that the wildcards require that the CN match between the providers. Otherwise you can do 1 by 1 mappings, like domain\joe is jsmith from LDAP.
The usermapping rules can be a bit difficult to understand at first syntactically, but keep in mind that they are basically SQL concepts, append, insert, join, replace. And that usermapping rules need to be in both directions so not only is mydomain\joe equal to jsmith, but also jsmith is equal to mydomain\\joe
Hope this helps, I know it was a bit long winded, but I wanted to clear up any misconceptions,
~Chris Klosterman
Senior Solution Architect
EMC Isilon Offer & Enablement Team
chris.klosterman@emc.com
twitter: @croaking
dynamox
9 Legend
•
20.4K Posts
0
June 8th, 2015 20:00
Chris,
Thank you for explaining these concepts, i find multi-protocol so confusing. Maybe you can share some sample implementation examples ? Cluster talk episode ?
Adam_M1
1 Rookie
•
16 Posts
0
June 8th, 2015 21:00
We have had this issue on our clusters
AD + Sun Directory Service LDAP
when a new user gets created in our AD they do not automatically get an LDAP account.
The first time they access the cluster from windows, the Isilon checks a matching LDAP account, if it does not find one, it will generate a "unique" UID (starting at 1,000,000 believe).
If the user later gets an LDAP account, the Isilon does not correct the mapping. We need to go into the system and delete the mappings that point to the generated UID. (Speak with support about this)
The issue does not occur if the LDAP account is created before they first access the Cluster.
carlilek
2 Intern
•
205 Posts
0
June 9th, 2015 17:00
Out of curiosity, what on-disk identity are you using?
We run a multi-protocol, but we use a UNIX on disk identity with ACLs basically set up as UNIX, with some changes to make Windows actually function. We have AD and OpenLDAP, with the Isilon being really the only place those two meet up. We actually do not use the mapping rules; the Isilon has been quite good about keeping the two in sync, as long as the names between the two directories match. In the rare instances when they do not, we manually override using the isi auth mapping command.
We even ran with two ADs and an LDAP for a time, although I had to run some custom scripts to edit identities to keep the auth working properly.
The downside (or upside, depending on how much administration you want to do) is that we do not allow Windows ACLs at all; our Windows/Mac users have to deal with the fact that all we provide is POSIX level permissions.
Adam_M1
1 Rookie
•
16 Posts
1
June 9th, 2015 18:00
Thanks Chris,
I don't know about the output of isi auth mapping token, however after the users get their UNIX account the output of isi auth mapping list still shows the Generated UID.
all of our user accounts match between AD and LDAP.
I haven't had this issue with NTFS shares (Though as that is the windows SID I expect it will work as you describe)
We run our UNIX shares explicitly denying ACL's in the SMB share. What we see is the following:
Files that are created by the user in Windows show the Generated UID when viewing from UNIX.
After we delete the mapping for the SID <> Generated UID mappings it shows the correct details in UNIX.
I completely agree.
We Run our cluster With native On-Disk Identity carlilek.
Peter_Sero
4 Operator
•
1.2K Posts
0
June 10th, 2015 02:00
It should also be noted that one has to be very concise about the type of ID mapping rule to use
in a given situation:
Append - Insert - Replace - Remove - Join
which are explained in "the other" white paper on AIMA
https://www.emc.com/collateral/white-papers/h12417-identities-access-tokens-isilon-onefs-user-mapping-service-wp.pdf
hth
-- Peter
UtkarshEMC
4 Posts
0
June 10th, 2015 18:00
Thank you All for your assistence.
I got it working.
AD was getting Isilon default SID and LDAP had a different UID/GID initially.
In Isilon GUI Access Management, AD settings I enabled the option Map user/group info to "Yes" and that fixed the issue.
Thanks and Regards,
Utkarsh