Le service SMB utilise le mappage des identités pour associer des identités Windows et Unix. Lorsque le service SMB authentifie un utilisateur, il utilise le service de mappage des identités pour mapper l'identité Windows de l'utilisateur avec l'identité Unix appropriée. Si aucune identité Unix n'existe pour un utilisateur Windows, le service génère une identité temporaire à l'aide d'un UID et d'un GID éphémère. Grâce à ces mappages, un partage peut être exporté et accessible simultanément par des clients SMB et NFS . En associant les identités Windows et Unix, des clients NFS et SMB peuvent partager la même identité, ce qui permet notamment d'accéder au même ensemble de fichiers.
Dans le système d'exploitation Windows, un jeton d'accès contient les informations de sécurité d'une session de connexion et identifie l'utilisateur, ses groupes et ses privilèges. Les administrateurs définissent des utilisateurs et des groupes Windows dans un groupe de travail ou une base de données SAM gérés sur un contrôleur de domaine Active Directory . Chaque utilisateur et chaque groupe possède un SID. Un SID identifie de manière unique un utilisateur ou un groupe au sein d'un hôte et d'un domaine local, ainsi que dans tous les domaines Windows possibles.
Unix crée des informations d'identification utilisateur basées sur l'authentification utilisateur et les autorisations d'accès aux fichiers. Les administrateurs définissent des utilisateurs et des groupes Unix dans des fichiers de mot de passe et de groupe locaux ou dans un service de noms ou d'annuaire, tel que NIS et LDAP. Chaque utilisateur et chaque groupe Unix possède un UID et un GID. En règle générale, l'UID ou le GID identifie de façon unique un utilisateur ou un groupe au sein d'un seul domaine Unix. Toutefois, ces valeurs ne sont pas uniques dans tous les domaines.
Les noms Windows sont sensibles à la casse, contrairement aux noms Unix. Les noms d'utilisateur JSMITH, JSmith et jsmith sont équivalents dans Windows, mais différents dans Unix. La sensibilité à la casse affecte les correspondances de noms différemment en fonction du sens du mappage.
Pour qu'un mappage Windows vers Unix produise une correspondance, la casse du nom d'utilisateur Windows doit être identique à celle du nom d'utilisateur Unix. Par exemple, seul le nom d'utilisateur "jsmith" de Windows correspond au nom d'utilisateur "jsmith" d'Unix. Le nom d'utilisateur Windows "Jsmith" ne correspond pas.
Une exception existe dans les exigences du mappage Windows vers Unix lorsque le caractère générique "*" est utilisé pour établir une correspondance entre plusieurs noms d'utilisateur. Si le service de mappage des identités rencontre la correspondance d'utilisateur Windows *@some.domain vers l'utilisateur Unix "*", il commence par rechercher un nom Unix correspondant exactement au nom Windows. Si aucune correspondance n'est trouvée, le service convertit le nom Windows entier en minuscule et relance la recherche d'un nom Unix correspondant. Par exemple, le nom d'utilisateur Windows "JSmith@some.domain" correspond au nom d'utilisateur Unix "jsmith". Si, après avoir converti le nom d'utilisateur Windows en minuscule, le service ne trouve aucune correspondance, l'utilisateur n'obtient aucun mappage. Vous pouvez créer une règle pour mettre en correspondance les chaînes dont seule la casse diffère. Vous pouvez, par exemple, créer un mappage spécifique à l'utilisateur pour établir une correspondance entre l'utilisateur Windows "JSmith@sun.com" et l'utilisateur Unix "jSmith". Autrement, le service affecte un ID éphémère à l'utilisateur Windows.
Pour qu'un mappage Unix vers Windows produise une correspondance, il n'est pas nécessaire que la casse soit respectée. Par exemple, le nom d'utilisateur Unix "jsmith" correspond à n'importe quel nom d'utilisateur Windows comprenant les lettres "JSMITH", indépendamment de la casse.
Lorsque le service de mappage des identités établit une correspondance de noms, il stocke le mappage pendant 10 minutes, délai au-delà duquel le mappage expire. Durant ses 10 minutes de validité, un mappage persiste malgré les redémarrages du service de mappage des identités. Si le serveur SMB demande une correspondance pour l'utilisateur après l'expiration du mappage, le service réévalue les mappages.
Les modifications apportées aux mappages ou aux annuaires du service de noms n'ont aucune incidence sur les connexions existantes au cours des 10 minutes de validité d'un mappage. Le service évalue les mappages uniquement lorsque le client tente de se connecter à un partage et qu'aucun mappage non expiré n'existe.
Une règle de mappage au niveau du domaine établit une correspondance entre tout ou partie des noms d'un domaine Windows et des noms Unix. Les noms d'utilisateur des deux côtés doivent être exactement identiques (sauf en matière de casse, ce qui dépend des règles mentionnées plus haut). Vous pouvez par exemple créer une règle bidirectionnelle pour établir une correspondance entre tous les utilisateurs Windows de "myDomain.com" et les utilisateurs Unix portant le même nom (et vice versa). Vous pouvez aussi créer une règle pour établir une correspondance entre tous les utilisateurs Windows de "myDomain.com" du groupe "Engineering" et les utilisateurs Unix portant le même nom. Il est impossible de créer des mappages au niveau d'un domaine si ceux-ci sont en conflit avec d'autres mappages.
Si aucune règle de mappage basé sur un nom ne s'applique à un utilisateur spécifique, celui-ci reçoit des informations d'identification temporaires via un mappage éphémère (à moins qu'un mappage de refus ne l'interdise). Lorsqu'un utilisateur Windows portant un nom UNIX éphémère crée un fichier sur le système, les clients Windows qui accèdent au fichier par le biais de SMB voient que le fichier appartient à cette identité Windows. En revanche, pour les clients NFS, le fichier ne présente aucun propriétaire.