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

Authentification par formulaire

Scripts d'authentification par formulaire dans PowerShell Universal.

Par défaut, le script d'authentification par formulaire est configuré pour accepter l'utilisateur Admin avec n'importe quel mot de passe. Vous pouvez configurer cette stratégie d'authentification pour interagir avec n'importe quel système de votre choix. Le script recevra un objet PSCredential contenant le nom d'utilisateur et le mot de passe saisis par l'utilisateur sur la page de connexion.

Les paramètres d'authentification sont également stockés dans authentication.ps1

Pour mettre à jour l'authentification par formulaire, vous pouvez cliquer sur Paramètres > Sécurité, puis cliquer sur le bouton Modifier le code pour l'authentification par formulaire.

Vous pouvez mettre à jour le script PowerShell dans les paramètres pour configurer la façon dont l'utilisateur est authentifié. Vous devez retourner un New-PSUAuthenticationResult depuis le script pour indiquer si l'utilisateur a été authentifié avec succès.

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'
}

Définir un mot de passe

Vous pouvez vérifier le mot de passe des informations d'identification en utilisant la méthode GetNetworkCredential() de PSCredential.

Définir des revendications

Lors de l'authentification par formulaire, vous pouvez définir des revendications qui seront disponibles dans les stratégies de rôle. Cela peut offrir un avantage en termes de performances lors de l'interaction avec des systèmes distants, car vous pouvez effectuer une seule recherche de revendication, puis évaluer les revendications localement plutôt que d'effectuer des appels supplémentaires au système distant.

Cet exemple utilise Active Directory pour rechercher l'appartenance à des groupes et les attribuer en tant que revendications qui seront disponibles dans les scripts de rôles.

Dans votre fichier roles.ps1, vous pourrez utiliser ces revendications pour valider l'appartenance à un groupe.

Cet exemple vérifie si l'utilisateur fait partie du groupe SOC_Admins.

Variables

Voici les variables définies dans les scripts de sécurité.

Nom
Description
Type

$Cookies

Cookies fournis dans la requête HTTP du client.

hashtable

$Headers

En-têtes fournis dans la requête HTTP du client.

hashtable

$LocalIpAddress

L'adresse IP locale de la requête.

string

$LocalPort

Le port local de la requête.

string

$RemoteIpAddress

L'adresse IP distante de la requête.

string

$RemotePort

Le port distant de la requête.

string

Authentification de base

Lors de l'appel aux points de terminaison API ou à l'API de gestion PowerShell, vous pouvez utiliser l'authentification de base pour transmettre un nom d'utilisateur et un mot de passe. Cela invoquera les scripts d'authentification et d'autorisation par formulaire pour valider la connexion. Le nom d'utilisateur et le mot de passe doivent être encodés en Base64 au format username:password et envoyés dans l'en-tête Authorization avec le préfixe Basic.

Vous pouvez également utiliser le paramètre intégré -Credential sur Invoke-RestMethod pour éviter d'avoir à encoder vous-même les informations d'identification de base. Le $AdminCredential ci-dessous doit être un PSCredential.

Connexion Windows

Si vous activez la connexion native sur la méthode d'authentification par formulaire, PowerShell Universal tentera de se connecter à la machine actuelle ou au domaine en utilisant les informations d'identification spécifiées. Une fois connecté, les groupes de l'utilisateur seront collectés et transmis au système d'autorisation.

Vous pouvez configurer un domaine non défini par défaut en spécifiant le domaine de connexion natif. Si vous ne spécifiez pas ce domaine, le domaine de la machine par défaut ou le domaine spécifié par l'utilisateur sera utilisé.

Journal en direct

Vous pouvez utiliser la vue du journal en direct sur la page d'authentification pour afficher des informations sur l'exécution du script. La vue du journal en direct affichera les flux PowerShell.

Mis à jour

Ce contenu vous a-t-il été utile ?