For the complete documentation index, see llms.txt. This page is also available as Markdown.

Autorización

La autorización de usuarios se realiza mediante roles. Los roles se pueden asignar mediante la asignación de notificaciones, un script de directiva o asignando el rol directamente a la identidad.

De forma predeterminada, no se asigna ningún rol automáticamente. Durante la configuración inicial se crea una cuenta de administrador local que se utiliza para configurar las asignaciones de roles.

Asignación de rol a notificación

Puede asignar roles a una notificación (como la pertenencia a un grupo) mediante los parámetros -ClaimType y -ClaimValue de New-PSURole. También hay opciones de configuración disponibles en el cuadro de diálogo de propiedades del rol, en Security \ Roles.

Asignación de rol a notificación

Por ejemplo, con la autenticación de Windows, si quisiera asignar un grupo a un rol, podría configurarlo de forma que el SID del grupo se asigne al rol de administrador.

Asignar roles a notificaciones de esta manera es más rápido que los scripts de directiva, porque no requiere ejecutar PowerShell cuando el usuario inicia sesión.

Ver información de notificaciones

Para ayudarle a desarrollar scripts de directivas o asignar roles a notificaciones, puede ver la información de notificaciones haciendo clic en View Claim Information en Security \ Roles.

Ver información de notificaciones

Ejemplo: Azure Active Directory

Puede asignar un grupo de Azure Active Directory a un rol buscando el Object ID del grupo en Azure. Por ejemplo, dentro del dominio de Ironman Software, tenemos un grupo llamado Dashboard Administrators. Este grupo tiene un identificador de objeto 61849bf2-e44b-4057-b589-6cd1812d7545.

Dentro de PowerShell Universal, puedo asignar los usuarios de este grupo al grupo Administrator configurando la asignación de notificaciones. El Claim Type será groups y el Claim Value será 61849bf2-e44b-4057-b589-6cd1812d7545. Una vez asignada la notificación, los usuarios del grupo Dashboard Administrators formarán parte del grupo Administrators de PowerShell Universal. El archivo roles.ps1 resultante tendrá este aspecto.

Todos los demás roles están deshabilitados.

Asignación de directivas

De forma predeterminada, los roles se asignan mediante directivas. Las directivas se ejecutan cuando el usuario inicia sesión. Puede cambiar los scripts de directivas visitando la página Security / Roles. Haga clic en el botón Edit Code para configurar el script de la directiva.

Botón Edit Policy Code

Los scripts de directivas reciben un objeto ClaimsPrincipal como parámetro y deben devolver true o false. Se asumirá que las directivas que generen errores son false. El objeto ClaimsPrincipal contiene la identidad del usuario y las notificaciones que ha recibido. Estas pueden incluir asignaciones de grupos u otras características de la cuenta de un usuario.

Puede esperar un objeto con esta estructura.

Asignación de roles

Para asignar un rol a un usuario, puede crear su identidad dentro de Universal y, a continuación, seleccionar el rol en la lista desplegable de la página Identities.

De forma predeterminada, las identidades reciben un rol mediante la asignación de notificaciones o una directiva.

Asignación de roles

Importar roles

Cuando la autenticación de Windows está habilitada, puede hacer clic en el botón Import Windows Groups para seleccionar los grupos que desea importar a PowerShell Universal. Tras seleccionar estos grupos, se crearán los roles, con la asignación de rol a notificación, sin tener que configurarlo manualmente.

Botón Import Windows Groups

Roles integrados

Administrator

Acceso completo a toda la plataforma y a la configuración de PowerShell Universal.

Operator

Los operadores tienen acceso para añadir y eliminar recursos como APIs, Scripts y Dashboards. Los operadores no pueden cambiar opciones de configuración como los entornos, los roles o la configuración general.

Execute

El rol Execute concede la capacidad de ejecutar scripts y acceso de lectura para todo lo demás.

Reader

El rol Reader proporciona acceso de solo lectura a PowerShell Universal.

Ruta predeterminada por rol

Puede cambiar la página que ve el usuario al iniciar sesión estableciendo la propiedad Default Route del rol. Por ejemplo, es posible que quiera que los usuarios de RR. HH. vayan al dashboard de Recursos Humanos mientras que los usuarios de TI vayan al Dashboard de TI.

Usuarios con muchos grupos

Si sus usuarios son miembros de más de unos 40 grupos, es posible que experimenten problemas al iniciar sesión. Esto se debe a los límites de tamaño de los encabezados HTTP en IIS y Kestrel. Cuantos más grupos tenga un usuario, más notificaciones de autorización tendrá y mayor será el encabezado.

Puede aumentar el límite de encabezado de Kestrel mediante la configuración de límites en el archivo appsettings.json. Deberá aumentar el tamaño del encabezado. Es un valor en bytes y su valor predeterminado es 32 kb.

Autorización en IIS

La autorización en IIS funciona igual que con cualquier otro método, pero debe tener en cuenta el límite de tamaño del encabezado de las solicitudes. Es posible que reciba errores cuando habilite notificaciones que incluyan muchos grupos. Pueden superar el límite de tamaño del encabezado e IIS devolverá errores. Hemos comprobado que unos 40 grupos de Azure Active Directory provocan este problema en una instalación predeterminada de IIS.

El error que recibirá será un error 400 indicando que la solicitud es demasiado larga.

Si tiene HTTPS habilitado, recibirá un error sobre un error de protocolo HTTP2.

Puede aumentar el tamaño de las solicitudes de IIS estableciendo las siguientes claves del registro. Deberá reiniciar el equipo para que surtan efecto.

Puede encontrar más información en la documentación de Microsoft.

Como alternativa a aumentar el tamaño de las solicitudes, también puede reducir el número de grupos enviados. En Azure Active Directory, puede establecerlo solo en los grupos asignados a la aplicación para evitar que se envíen todos los grupos.

En Azure, vaya a App registrations > (seleccione la aplicación) > Token Configuration y especifique los grupos asignados a la aplicación.

Ahora vaya a Enterprise Application > (seleccione la aplicación) > Users and groups. Asigne el grupo o los grupos que quiera incluir en las notificaciones. (Nota: esto también se puede utilizar como límite de seguridad si establece “User Assignment Required” en Yes en la sección ‘Properties’ de la aplicación).

App Tokens

Los App Tokens se pueden asignar a servicios que no pueden iniciar sesión de forma interactiva. Puede conceder un nuevo app token a su cuenta haciendo clic en el botón Grant App Token dentro de la pestaña Security / App Tokens.

El token tendrá una caducidad de un año y contará con los roles válidos de su cuenta. Para copiar el App Token en su cuenta, haga clic en la acción Copy. Para revocar un App Token, haga clic en la acción Revoke.

Puede utilizar los App Tokens con los cmdlets de Universal o mediante solicitudes web directamente utilizando la autorización Bearer.

Página App Tokens

Entorno

De forma predeterminada, los scripts de autenticación por formularios y de asignación de directivas se ejecutan dentro del proceso de PowerShell Universal. Cuando configura un entorno de seguridad, se inicia un proceso externo de PowerShell y se configura para utilizar la configuración de su entorno.

Para ajustar el entorno utilizado por el proceso de seguridad, establezca -SecurityEnvironment en settings.ps1.

Ejemplo: autenticación por formularios con Active Directory

El siguiente ejemplo muestra cómo realizar un simple "LDAP BIND" para validar las credenciales de Active Directory de un usuario. Si un usuario que intenta acceder a PowerShell Universal no es el Default Admin User, deberá autenticar correctamente sus credenciales con Active Directory mediante un simple enlace LDAP. Esto se puede combinar con una comprobación de pertenencia a un grupo de AD en las directivas de los roles Admin, Operator y Reader para utilizar de manera eficaz la autenticación de Active Directory Y la pertenencia a grupos de Active Directory con el fin de proporcionar acceso basado en roles a PowerShell Universal.

Ejemplo: directiva basada en la pertenencia a grupos de Active Directory (autenticación de Windows)

Este ejemplo requiere un método de autenticación que proporcione información de grupos durante el proceso de autenticación. Métodos como la autenticación de Windows y WS-Federation pueden proporcionar esta información. La autenticación por formularios no funcionará con este tipo de directiva.

Este ejemplo aprovecha las notificaciones que se proporcionan durante la autenticación. Puede comprobar si el usuario tiene un groupsid (pertenencia a un grupo) mediante las asignaciones de notificaciones. Asigne el tipo de notificación groupid al valor al que quiera asignar el rol.

Ejemplo: directiva basada en la pertenencia a grupos de Active Directory

En este ejemplo configuraremos nuestro script de directiva de Administrator para que utilice LDAP y recupere la pertenencia a un grupo de Active Directory. Aquí hemos creado un grupo llamado "PowerShell Universal Admins" cuyos miembros deben recibir acceso de Administrator en PowerShell Universal. Aquí realizamos una simple comprobación de samaccountname del usuario para asegurarnos de que es miembro del grupo. Para entornos más robustos, sería más apropiada una comprobación de SID/DN/ObjectGUID.

Ejemplo: pertenencia a grupos basada en Azure Active Directory

Este ejemplo aprovecha OpenID Connect y Azure Active Directory.

Una vez que haya configurado PowerShell Universal y Azure Active Directory, puede configurar scripts de roles para verificar si los usuarios son miembros de grupos existentes en Azure AD. Puede aprovechar las asignaciones de notificaciones para asignar el ID de grupo de Azure AD a un rol de PowerShell Universal.

En primer lugar, asegúrese de que tiene habilitadas las notificaciones de pertenencia a grupos en el manifiesto de su registro de aplicación. Esto incluirá toda la pertenencia a grupos, de modo que sea accesible en PowerShell Universal.

Una vez configurado, puede actualizar su script de roles para comprobar la pertenencia a un grupo. Primero, tome nota del identificador de objeto del grupo que quiere comprobar en Azure AD.

A continuación, dentro de su script roles.ps1, puede validar que un usuario tiene un rol determinado mediante la asignación de notificaciones.

A medida que los usuarios inicien sesión, su pertenencia a grupos se validará con sus notificaciones y se les asignará un rol.

Última actualización

¿Te fue útil?