Compartir a través de


Función AuthzInitializeContextFromSid (authz.h)

La función AuthzInitializeContextFromSid crea un contexto de cliente en modo de usuario a partir de un identificador de seguridad de usuario (SID). Los SID de dominio recuperan los atributos del grupo de tokens de Active Directory.

Nota Si es posible, llame a la función AuthzInitializeContextFromToken en lugar de AuthzInitializeContextFromSid. Para obtener más información, vea la sección Comentarios.

 

Sintaxis

AUTHZAPI BOOL AuthzInitializeContextFromSid(
  [in]           DWORD                         Flags,
  [in]           PSID                          UserSid,
  [in, optional] AUTHZ_RESOURCE_MANAGER_HANDLE hAuthzResourceManager,
  [in]           PLARGE_INTEGER                pExpirationTime,
  [in]           LUID                          Identifier,
  [in, optional] PVOID                         DynamicGroupArgs,
  [out]          PAUTHZ_CLIENT_CONTEXT_HANDLE  phAuthzClientContext
);

Parámetros

[in] Flags

Se definen las marcas siguientes.

A partir de Windows 8 y Windows Server 2012, cuando se llama a esta función en un identificador de contexto remoto, los 16 bits superiores deben ser cero.

Valor Significado
0 (0x0)
Valor predeterminado.

AuthzInitializeContextFromSid intenta recuperar la información del grupo de tokens del usuario realizando un inicio de sesión S4U.

Si el dominio del usuario no admite el inicio de sesión S4U o el equipo que realiza la llamada, AuthzInitializeContextFromSid consulta el objeto de cuenta del usuario para obtener información de grupo. Cuando se consulta directamente una cuenta, se omiten algunos grupos que representan características de inicio de sesión, como Network, Interactive, Anonymous, Network Service o Local Service. Las aplicaciones pueden agregar explícitamente estos SID de grupo implementando la función AuthzComputeGroupsCallback o llamando a la función AuthzAddSidsToContext .

AUTHZ_SKIP_TOKEN_GROUPS
2 (0x2)
Hace que AuthzInitializeContextFromSid omita todas las evaluaciones de grupo. Cuando se usa esta marca, el contexto devuelto contiene solo el SID especificado por el parámetro UserSid . El SID especificado puede ser un SID arbitrario o específico de la aplicación. Se pueden agregar otros SID a este contexto implementando la función AuthzComputeGroupsCallback o llamando a la función AuthzAddSidsToContext .
AUTHZ_REQUIRE_S4U_LOGON
4 (0x4)
Hace que AuthzInitializeContextFromSid produzca un error si los servicios de Windows para el usuario no están disponibles para recuperar información del grupo de tokens.

Windows XP: Esta marca no se admite.

AUTHZ_COMPUTE_PRIVILEGES
8 (0x8)
Hace que AuthzInitializeContextFromSid recupere privilegios para el nuevo contexto. Si esta función realiza un inicio de sesión S4U, recupera privilegios del token. De lo contrario, la función recupera privilegios de todos los SID en el contexto.

[in] UserSid

SiD del usuario para el que se creará un contexto de cliente. Debe ser una cuenta de usuario o equipo válida a menos que se use la marca AUTHZ_SKIP_TOKEN_GROUPS.

[in, optional] hAuthzResourceManager

Identificador del administrador de recursos que crea este contexto de cliente. Este identificador se almacena en la estructura de contexto de cliente.

A partir de Windows 8 y Windows Server 2012, el administrador de recursos puede ser local o remoto y se obtiene llamando a la función AuthzInitializeRemoteResourceManager.

[in] pExpirationTime

Fecha y hora de expiración del token. Si no se pasa ningún valor, el token nunca expira. La hora de expiración no se aplica actualmente.

[in] Identifier

Identificador específico del administrador de recursos. Este parámetro no se usa actualmente.

[in, optional] DynamicGroupArgs

Puntero a parámetros que se van a pasar a la función de devolución de llamada que calcula grupos dinámicos. Este parámetro puede ser NULL si no se pasan parámetros dinámicos a la función de devolución de llamada.

A partir de Windows 8 y Windows Server 2012, este parámetro debe ser NULL si el administrador de recursos es remoto. De lo contrario, se establecerá ERROR_NOT_SUPPORTED.

[out] phAuthzClientContext

Puntero al identificador del contexto de cliente que crea la función AuthzInitializeContextFromSid . Cuando haya terminado de usar el identificador, libere mediante una llamada a la función AuthzFreeContext .

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve un valor distinto de cero.

Si se produce un error en la función, devuelve cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Si es posible, llame a la función AuthzInitializeContextFromToken en lugar de AuthzInitializeContextFromSid. AuthzInitializeContextFromSid intenta recuperar la información disponible en un token de inicio de sesión que el cliente realmente ha iniciado sesión. Un token de inicio de sesión real proporciona más información, como el tipo de inicio de sesión y las propiedades de inicio de sesión, y refleja el comportamiento del paquete de autenticación usado para el inicio de sesión. El contexto de cliente creado por AuthzInitializeContextFromToken usa un token de inicio de sesión y el contexto de cliente resultante es más completo y preciso que un contexto de cliente creado por AuthzInitializeContextFromSid.

Esta función resuelve solo los SID de usuario válidos.

Windows XP: Esta función resuelve las pertenencias a grupos para los SID de usuario y grupo válidos (a menos que se use la marca AUTHZ_SKIP_TOKEN_GROUPS). La compatibilidad con la resolución de pertenencias de SID de grupo puede modificarse o no estar disponible en versiones posteriores.

Esta función llama a la función de devolución de llamada AuthzComputeGroupsCallback para agregar SID al contexto recién creado.

Importante Las aplicaciones no deben suponer que el contexto de llamada tiene permiso para usar esta función. La función AuthzInitializeContextFromSid lee el atributo tokenGroupsGlobalAndUniversal del SID especificado en la llamada para determinar las pertenencias a grupos del usuario actual. Si el objeto del usuario está en Active Directory, el contexto de llamada debe tener acceso de lectura al atributo tokenGroupsGlobalAndUniversal en el objeto de usuario. Cuando se crea un nuevo dominio, la selección de compatibilidad de acceso predeterminada es Permisos compatibles con los sistemas operativos Windows 2000 y Windows Server 2003. Cuando se establece esta opción, el grupo Acceso compatible con Versiones anteriores a Windows 2000 incluye solo los identificadores de seguridad integrados usuarios autenticados . Por lo tanto, es posible que las aplicaciones no tengan acceso al atributo tokenGroupsGlobalAndUniversal; en este caso, se produce un error en la función AuthzInitializeContextFromSid con ACCESS_DENIED. Las aplicaciones que usan esta función deben controlar correctamente este error y proporcionar documentación complementaria. Para simplificar la concesión de permisos a las cuentas para consultar la información de grupo de un usuario, agregue cuentas que necesiten la capacidad de buscar información de grupo en el grupo de acceso de autorización de Windows.
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado authz.h
Library Authz.lib
Archivo DLL Authz.dll
Redistribuible Paquete de herramientas de administración de Windows Server 2003 en Windows XP

Consulte también

Permitir el acceso anónimo

AuthzFreeContext

Funciones básicas de Access Control