Sécurité
Authentification et autorisation pour les API REST.
Une fois activée, vous pourrez appliquer l'authentification et l'autorisation à vos points de terminaison.
Définir des points de terminaison sécurisés
Vous pouvez définir des points de terminaison sécurisés dans l'interface utilisateur en activant l'authentification. Vous trouverez les options d'authentification et d'autorisation des points de terminaison sous l'onglet Sécurité des propriétés d'un point de terminaison.
Vous pouvez également définir des points de terminaison sécurisés à l'aide du fichier .universal/endpoints.ps1 ou de l'API de gestion avec New-PSUEndpoint.
New-PSUEndpoint -Url '/endpoint' -Method 'GET' -Endpoint {
"Hello, world!"
} -AuthenticationLorsque l'authentification est activée, elle impose l'utilisation de l'une des méthodes d'authentification configurées. Les API prennent en charge les méthodes suivantes.
JWT App Tokens
Windows Authentication
Cookie Authentication
Basic Authentication
Accéder aux points de terminaison sécurisés
Une fois que vous avez défini un point de terminaison sécurisé, vous devez fournir une authentification et une autorisation pour y accéder.
S'authentifier avec des jetons
Notez que si vous hébergez dans IIS et que vous n'avez pas activé l'authentification anonyme, vous ne pourrez pas transmettre de jetons d'application au serveur PowerShell Universal.
Pour vous authentifier avec des jetons, vous devez d'abord générer un nouveau jeton d'application. Vous pouvez utiliser la cmdlet Grant-PSUAppToken pour le faire à distance, ou créer un jeton d'application dans l'interface utilisateur via l'onglet Paramètres > Sécurité > Jetons d'application.
Survolez votre nom d'utilisateur en haut à droite de la console d'administration, cliquez sur Tokens, puis sur Create Application Token.
Une fois votre jeton d'application créé, vous pouvez l'utiliser pour vous authentifier auprès du point de terminaison sécurisé. Pour ce faire, transmettez l'en-tête Authorization avec la requête.
En-tête d'autorisation personnalisé
PowerShell Universal fournit un en-tête d'autorisation personnalisé pour prendre en charge les scénarios avec des proxys inverses qui peuvent nécessiter leur propre en-tête Authorization. Si l'en-tête X-PSU-Authorization est spécifié, PSU ignorera l'en-tête Authorization et utilisera celui-ci à la place.
S'authentifier avec Windows Authentication
Pour vous authentifier avec Windows Authentication, vous pouvez utiliser le paramètre -UseDefaultCredentials de Invoke-RestMethod et Invoke-WebRequest. Cela effectuera une authentification par négociation, que vous exécutiez dans IIS ou en tant que service.
S'authentifier avec des cookies
Pour vous authentifier avec des cookies, vous devez d'abord appeler l'API de connexion afin de recevoir un cookie valide du système. Vous pouvez utiliser Invoke-WebRequest à cet effet. Transmettez le nom d'utilisateur et le mot de passe dans le corps de la requête. Spécifiez le paramètre -SessionVariable pour établir une session.
Une fois authentifié avec succès, vous pouvez utiliser votre variable $mySession pour appeler des points de terminaison sécurisés.
Appliquer des rôles
En plus de créer des points de terminaison qui nécessitent une authentification, vous pouvez également appliquer des rôles en définissant un rôle dans la cmdlet New-PSUEndpoint ou en en sélectionnant un dans l'interface utilisateur. Si un rôle est sélectionné, l'utilisateur doit posséder ce rôle.
Windows Authentication et Cookie Authentication attribuent des rôles en fonction de l'identité de l'utilisateur et des stratégies de rôles telles qu'elles sont appliquées.
Les jetons d'application JWT utilisent le rôle qui a été défini lors de leur génération.
Rôles d'exécution
En utilisant la propriété Execution Roles, vous pouvez définir les rôles attribués lors de l'exécution du point de terminaison API. Par défaut, le point de terminaison s'exécute en fonction des rôles de l'appelant. Dans certains scénarios, par exemple lors de l'utilisation de secrets avec des rôles, vous pouvez souhaiter fournir des rôles supplémentaires que l'appelant ne possède peut-être pas. Les rôles d'exécution ne nécessitent pas que l'authentification API soit activée.
API
Mis à jour
Ce contenu vous a-t-il été utile ?