> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/fr/api/security.md).

# Sécurité

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`.

```powershell
New-PSUEndpoint -Url '/endpoint' -Method 'GET' -Endpoint {
   "Hello, world!"
} -Authentication
```

Lorsque 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

{% hint style="warning" %}
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.
{% endhint %}

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.

```powershell
Invoke-RestMethod http://localhost:5000/auth -Headers @{ Authorization = "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiQWRtaW4iLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9oYXNoIjoiMWUyY2IzNzAtMmMyNS00ZDU5LTk4YzgtMzc5MTFjMDAyZmI5Iiwic3ViIjoiUG93ZXJTaGVsbFVuaXZlcnNhbCIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd3MvMjAwOC8wNi9pZGVudGl0eS9jbGFpbXMvcm9sZSI6IkFkbWluaXN0cmF0b3IiLCJuYmYiOjE2MDU2NjEyNTUsImV4cCI6MTYzNzM2NzI1OCwiaXNzIjoiSXJvbm1hblNvZnR3YXJlIiwiYXVkIjoiUG" }
```

#### 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.

```
Invoke-RestMethod http://localhost:5000/auth -Headers @{ 
    Authorization = "Bearer msft_xyz_123" 
    'X-PSU-Authorization' = 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiQWRtaW4iLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9oYXNoIjoiMWUyY2IzNzAtMmMyNS00ZDU5LTk4YzgtMzc5MTFjMDAyZmI5Iiwic3ViIjoiUG93ZXJTaGVsbFVuaXZlcnNhbCIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd3MvMjAwOC8wNi9pZGVudGl0eS9jbGFpbXMvcm9sZSI6IkFkbWluaXN0cmF0b3IiLCJuYmYiOjE2MDU2NjEyNTUsImV4cCI6MTYzNzM2NzI1OCwiaXNzIjoiSXJvbm1hblNvZnR3YXJlIiwiYXVkIjoiUG'
}
```

### S'authentifier avec Windows Authentication

Pour vous authentifier avec [Windows Authentication](/powershell-universal/fr/securite/security.md#windows-authentication-in-iis), 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.

```powershell
Invoke-RestMethod http://localhost:5000/auth -UseDefaultCredentials
```

### 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.

```powershell
Invoke-WebRequest http://localhost:5000/api/v1/signin -Body (@{ 
    UserName = "Admin"
    Password = "Any"
} | ConvertTo-Json) -ContentType 'application/json' -SessionVariable mySession -Method POST
```

Une fois authentifié avec succès, vous pouvez utiliser votre variable `$mySession` pour appeler des points de terminaison sécurisés.

```powershell
 Invoke-WebRequest http://localhost:5000/auth -WebSession $mySession
```

## 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

* [New-PSUEndpoint](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/New-PSUEndpoint.txt)
* [Get-PSUEndpoint](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Get-PSUEndpoint.txt)
* [Remove-PSUEndpoint](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Remove-PSUEndpoint.txt)
* [New-PSUApiResponse](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/New-PSUApiResponse.txt)
* [Set-PSUSetting](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Set-PSUSetting.txt)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/fr/api/security.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
