Atributos SamAccountName y UserPrincipalName – 2xsoftware

Las cuentas de usuario en Active Directory tienen varios atributos, entre los cuales hay dos atributos interesantes y críticos: samCuentaNombre y UserPrincipalName (generalmente se llama UPN), cuyas diferencias no son comprendidas por muchos administradores de Windows. Este artículo examinará las diferencias entre los atributos AD samAccountName y UserPrincipalName.

Los atributos userPrincipalName y sAMAccountName pueden iniciar sesión en los equipos del dominio AD.

El atributo samAccountName se usaba en el entorno anterior a Windows 2000 y definía el nombre de usuario para autorizar usuarios en el dominio o estaciones de trabajo independientes. Pero, en Windows 2000, apareció el nuevo atributo UserPrincipalName, que también se puede utilizar para iniciar sesión en las estaciones de trabajo AD. Entonces, ahora puede autorizar en una computadora en el dominio de AD usando samAccountName y UserPrincipalName.

El atributo samAccountName

El atributo samAccountName tiene el siguiente formato:

NETBIOSUSERNAME

Por ejemplo, si el dominio es org870.ga, el nombre de dominio NetBIOS sería ORG870B. Por lo tanto, la aten.stig El nombre de usuario en el formato samAccountName debería verse como ORG870B.stig.

Detalles del atributo samAccountName:

  • La longitud de samAccountName está fijada en 20 caracteres únicamente y no puede contener ninguno de estos caracteres: “/ : ; | = , + * ? < >. El campo no aceptará cuando intente escribir más de 20 caracteres en el nombre de inicio de sesión del usuario.
  • El valor de samAccountName debe ser único para todos los objetos de dominio.
  • La variable de entorno en una computadora con Windows %USERNAME% contendría el valor del atributo samAccountName, no UserPrincipalName, incluso si inició sesión en la computadora usando el UPN.
  • El valor de samAccountName en la computadora del usuario se puede obtener utilizando la variable de entorno USERNAME. Se puede visualizar utilizando el **colocar** comando en cmd o entorno gci: en PowerShell.

El atributo UserPrincipalName

El userPrincipalName o UPN se introdujo en Windows 2000. Esto vino con la introducción del Protocolo ligero de acceso a directorios (LDAP). El formato difiere ampliamente de samAccountName. La UPN sigue este formato:

username@domain.tld

El ejemplo anterior muestra que la cuenta pertenece al dominio principal. Para cuentas en subdominios, el formato será el siguiente:

username@subdomain.domain.tld.

Características del atributo UserPrincipalName:

  • El valor del atributo UserPrincipalName puede corresponder al correo electrónico del usuario (extremadamente conveniente durante migraciones, configuraciones de perfil, etc.)
  • El valor del atributo samAccountName debe ser único en todo el bosque de dominio.
  • El formato del identificador se ajusta a RFC 822 estándares
  • A diferencia de samAccountName, el límite de caracteres UPN es de hasta 1024 caracteres, compuesto por el nombre de usuario, el signo @ y el nombre de dominio/subdominio. Por ejemplo, si el dominio es @org870b.ga, solo eso ya tiene 11 caracteres. Así que a ese nombre de usuario le queda un límite de 1013 caracteres.
  • El atributo UserPrincipalName es opcional, pero se recomienda completarlo. Especialmente cuando se integra con Azure AD o se prepara para la migración, se requerirá el UPN.

Al crear un nuevo usuario en AD, especifica el valor del atributo UserPrincipalName en el «Nombre de inicio de sesión del usuario” y el valor samAccountName en el “Nombre de inicio de sesión del usuario (anterior a Windows 2000)» campo.

samaccountname

Puede cambiar los valores de este campo en el futuro utilizando el complemento Usuarios y equipos de Active Directory en las propiedades del usuario en el Cuenta pestaña.

ejemplo de nombre de cuenta sam

UserPrincipalName frente a SamAccountName: manejo en PowerShell

El módulo de Active Directory de PowerShell ya está instalado en un servidor con el rol de Active Directory. Este módulo permite administrar los aspectos de los objetos de Active Directory mediante cmdlets de PowerShell.

Puede instalar las herramientas de administración remota del servidor (RSAT) en las computadoras cliente para permitir que esa computadora administre AD en PowerShell.

Creación de usuarios de Active Directory

Puede crear un usuario de AD en PowerShell mientras especifica los atributos UserPrincipalName y SamAccountName. Pero tenga en cuenta las limitaciones, en particular la longitud y los caracteres no permitidos.

Por ejemplo, el siguiente comando fallará porque SamAccountName supera el límite de 20 caracteres.

$newADUser = @{ 
Name="dummy_user" 
DisplayName="Dummy User Account" 
SamAccountName="dummy6789067890678900" 
UserPrincipalName="dummy6789067890678900@org870b.ga" 
}

Pero el error podría ser más específico. La excepción muestra solo “El nombre proporcionado no es un nombre de cuenta correctamente formado”. El error es categóricamente correcto pero vago.

samaccountname longitud máxima

Entonces, si está automatizando el proceso de creación de cuentas, implemente una protección, tal vez trunque automáticamente el valor de SamAccountName dado. He aquí un ejemplo básico:

# truncate the SamAccountName if the current length if > 20 
if (($newADUser['SamAccountName']).Length -gt 20){ 
$newADUser['SamAccountName'] = 
($newADUser['SamAccountName']).Substring(0,20) 
} 

New-ADUser @newADUser

upn longitud máxima

¿Qué pasa con el límite de caracteres UPN?

atributo de nombre de usuario directorio activo

Sería más complicado ya que debe truncar la parte del nombre de usuario sin afectar la parte del dominio. Hay un ejemplo de mantener el UPN dentro del límite de 1024 caracteres:

# truncate the UserPrincipalName if the current length if > 1024 
if (($newADUser['UserPrincipalName']).Length -gt 20){ 
# split the username and domain part. 
$username = ($newADUser['UserPrincipalName']).Split('@')[0] 
$domain = "@$(($newADUser['UserPrincipalName']).Split('@')[-1])" 
$newADUser['UserPrincipalName'] = "$(($username).Substring(0,$(1024 -1 -($domain.Length-1))))$domain" 
} 

New-ADUser @newADUser

Visualización, eliminación y actualización de usuarios de Active Directory

Los cmdlets para ver, eliminar y actualizar usuarios de Active Directory son Get-ADUser, Remove-ADuser y Set-ADUser, respectivamente.

Todos estos cmdlets tienen un parámetro llamado Identidad, que acepta los siguientes valores de identificador:

  • Un nombre distinguido
  • UN GUID (objetoGUID)
  • Un identificador de seguridad (objectSid)
  • Un nombre de cuenta SAM (sAMAccountName)

Entonces, para obtener un usuario de AD, puede ejecutar:

Get-ADUser -Identity <SamAccountName>

nombre de cuenta sam

Pero como habrás notado, el parámetro Identity no acepta el valor UPN como válido.

Get-ADUser -Identity <UserPrincipalName>

atributo de nombre de usuario del directorio activo

Pero si debe usar UserPrincipalName como identificador al ejecutar estos cmdlets, podría usar el parámetro Filter en su lugar.

Get-ADUser -Filter 'userPrincipalName -eq "<UPN>"'

directorio activo samaccountname

UserPrincipalName frente a SamAccountName: comparación en paralelo

Ahora que hemos cubierto los atributos SamAccountName y UserPrincipalName, aquí está la tabla de resumen para compararlos.

SamAccountName UserPrincipalName
Atributo obligatorio Sí. Requerido. Opcional, pero recomendado. Especialmente al planificar la migración/integración con Azure AD.
Longitud máxima Fijado en 20 caracteres como máximo. 1024 caracteres que consisten en el nombre de usuario y las partes del dominio.
Compatibilidad Compatible con versiones anteriores. Sólo Windows 2000 y posteriores.
Formato NETBIOS NOMBRE DE USUARIO@DOMINIO.TLD NOMBRE DE USUARIO@SUB.DOMINIO.TLD

Sigue el RFC 822 estándares

Se recomienda que sea la misma que la dirección de correo electrónico del usuario cuando corresponda.

Uso de PowerShell Se puede utilizar para consultar el objeto de usuario de AD como un identificador. No se puede usar para consultar el objeto Usuario de AD como un identificador, pero se puede usar como un valor de filtro.
Valora este artculo post

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *