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

Sécurisez les terminaux de l'API REST PowerShell Universal avec l'authentification par jeton, Windows et témoin, puis appliquez une autorisation basée sur les rôles pour chaque requête.

Une fois activée, vous pourrez appliquer l'authentification et l'autorisation sur vos terminaux.

## Définir des terminaux sécurisés

Vous pouvez définir des terminaux sécurisés dans l'interface en activant l'authentification. Vous trouverez l'authentification et l'autorisation du terminal sous l'onglet Sécurité des propriétés d'un terminal.

Vous pouvez également définir des terminaux sécurisés à l'aide du fichier `.universal/endpoints.ps1` ou de l'API de gestion en utilisant `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.

* Jetons d'application JWT
* Authentification Windows
* Authentification par témoin
* Authentification de base

## Accéder aux terminaux sécurisés

Une fois que vous avez défini un terminal sécurisé, vous devrez fournir une authentification et une autorisation pour y accéder.

### Authentification avec des jetons

{% hint style="warning" %}
Notez que si vous hébergez dans IIS et que l'authentification anonyme n'est pas activée, 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 à utiliser. Vous pouvez utiliser l'applet de commande `Grant-PSUAppToken` pour le faire à distance ou accorder un jeton à l'utilisateur actuellement connecté sous **Menu utilisateur > Paramètres utilisateur > Jetons**.

Une fois votre jeton d'application créé, vous pouvez maintenant l'utiliser pour vous authentifier auprès du terminal sécurisé. Pour ce faire, transmettez l'en-tête Authorization avec la requête.

```powershell
Invoke-RestMethod http://localhost:5000/auth -Headers @{ Authorization = "******" }
```

#### 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 cet en-tête à la place.

```
Invoke-RestMethod http://localhost:5000/auth -Headers @{ 
    Authorization = "******" 
    'X-PSU-Authorization' = '******'
}
```

### Authentification avec l'authentification Windows

Pour vous authentifier avec l'[authentification Windows](/powershell-universal/fr/securite/enterprise-security/windows-sso.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 dans un service.

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

### Authentification avec des témoins

Pour vous authentifier avec des témoins, vous devrez d'abord appeler l'API de connexion afin de recevoir un témoin valide du système. Vous pouvez utiliser `Invoke-WebRequest` pour ce faire. 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 que vous êtes authentifié avec succès, vous pouvez utiliser votre variable `$mySession` pour appeler des terminaux sécurisés.

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

## Appliquer des rôles

En plus de créer des terminaux qui nécessitent une authentification, vous pouvez également appliquer des rôles en définissant un rôle dans l'applet de commande `New-PSUEndpoint` ou en en sélectionnant un dans l'interface. Si un rôle est sélectionné, il doit posséder le rôle.

L'authentification Windows et l'authentification par témoin attribueront des rôles en fonction de l'identité de l'utilisateur et des stratégies de rôle telles qu'elles sont appliquées.

Les jetons d'application JWT utiliseront le rôle qui a été défini lors de leur génération.

## Rôles d'exécution

En utilisant la propriété Rôles d'exécution, vous pouvez définir quels rôles sont attribués lors de l'exécution du terminal d'API. Par défaut, le terminal s'exécutera selon les rôles de l'appelant. Dans certains scénarios, par exemple lors de l'utilisation de secrets avec des rôles, vous pouvez vouloir 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 de l'API soit activée.

## API

* [New-PSUEndpoint](/powershell-universal/fr/commandes-powershell/new-psuendpoint.md)
* [Get-PSUEndpoint](/powershell-universal/fr/commandes-powershell/get-psuendpoint.md)
* [Remove-PSUEndpoint](/powershell-universal/fr/commandes-powershell/remove-psuendpoint.md)
* [New-PSUApiResponse](/powershell-universal/fr/commandes-powershell/new-psuapiresponse.md)
* [Set-PSUSetting](/powershell-universal/fr/commandes-powershell/set-psusetting.md)

### Voir aussi

* [Devolutions Academy – Creating a variable endpoint](https://academy.devolutions.net/student/activity/3466016-creating-a-variable-endpoint)
* [Devolutions Academy – Creating a query string endpoint](https://academy.devolutions.net/student/activity/3466018-creating-a-query-string-endpoint)
* [Devolutions Academy – Authentication](https://academy.devolutions.net/student/path/3465905/activity/5612255)


---

# 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
