Autenticación por formularios
El script de autenticación de formularios solo se invoca cuando los usuarios inician sesión a través de la página de inicio de sesión. Si utiliza cualquier otro método de autenticación, este script no se invoca. Los scripts de políticas de roles se invocan para todos los tipos de autenticación.
De forma predeterminada, el script de autenticación de formularios está configurado para aceptar el usuario Admin y cualquier contraseña. Puede configurar esta política de autenticación para interactuar con el sistema que desee. El script recibirá un objeto PSCredential que contiene el nombre de usuario y la contraseña introducidos por el usuario en la página de inicio de sesión.
Para actualizar la autenticación de formularios, puede hacer clic en Configuración Seguridad y luego hacer clic en el botón Editar código de la autenticación de formularios.
Puede actualizar el script de PowerShell que se encuentra en la configuración para configurar cómo se autentica al usuario. Deberá devolver un New-PSUAuthenticationResult desde el script para indicar si el usuario se autenticó correctamente.
param(
[PSCredential]$Credential
)
#
# You can call whatever cmdlets you like to conduct authentication here.
# Just make sure to return the $Result with the Success property set to $true
#
if ($Credential.UserName -eq 'Admin')
{
New-PSUAuthenticationResult -Success -UserName 'Admin'
}
else
{
New-PSUAuthenticationResult -ErrorMessage 'Bad username or password'
}Establecer una contraseña
Puede comprobar la contraseña de la credencial utilizando el método GetNetworkCredential() de PSCredential.
Establecer claims
Durante la autenticación de formularios, puede establecer claims que estarán disponibles en las políticas de roles. Esto puede aportar una mejora de rendimiento al interactuar con sistemas remotos, ya que puede realizar una única búsqueda de claims y luego evaluarlos localmente en lugar de tener que hacer llamadas adicionales al sistema remoto.
Este ejemplo utiliza Active Directory para buscar la pertenencia a grupos y asignarla como claims que estarán disponibles en los scripts de roles.
En su fichero roles.ps1, podrá utilizar estos claims para validar la pertenencia a grupos.
Este ejemplo comprueba si el usuario forma parte del grupo SOC_Admins.
Variables
Estas son las variables definidas en los scripts de seguridad.
$Cookies
Cookies proporcionadas en la solicitud HTTP del cliente.
hashtable
$Headers
Encabezados proporcionados en la solicitud HTTP del cliente.
hashtable
$LocalIpAddress
La dirección IP local de la solicitud.
string
$LocalPort
El puerto local de la solicitud.
string
$RemoteIpAddress
La dirección IP remota de la solicitud.
string
$RemotePort
El puerto remoto de la solicitud.
string
Autenticación básica
Al llamar a endpoints de API o a la API de gestión de PowerShell, puede utilizar la autenticación básica para pasar un nombre de usuario y una contraseña. Esto invocará los scripts de autenticación y autorización de formularios para validar el inicio de sesión. El nombre de usuario y la contraseña deben codificarse en Base64 con el formato username:password y enviarse en el encabezado Authorization con el prefijo Basic.
También puede utilizar el parámetro integrado -Credential en Invoke-RestMethod para evitar tener que codificar usted mismo las credenciales básicas. El $AdminCredential que aparece a continuación debe ser un PSCredential.
Inicio de sesión de Windows
Si activa el inicio de sesión nativo en el método de autenticación de formularios, PowerShell Universal intentará iniciar sesión en la máquina o el dominio actual utilizando las credenciales especificadas. Una vez iniciada la sesión, se recopilarán los grupos del usuario y se proporcionarán al sistema de autorización.
Puede configurar un dominio no predeterminado especificando el dominio de inicio de sesión nativo. Si no especifica este dominio, se utilizará el dominio predeterminado de la máquina o el dominio especificado por el usuario.
Registro en vivo
Puede utilizar la vista de registro en vivo en la página de autenticación para ver información sobre la ejecución del script. La vista de registro en vivo mostrará los flujos de PowerShell.
Última actualización
¿Te fue útil?