> 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/de/api/security.md).

# Sicherheit

Nach der Aktivierung können Sie Authentifizierung und Autorisierung für Ihre Endpunkte erzwingen.

## Sichere Endpunkte definieren

Sie können sichere Endpunkte in der Benutzeroberfläche definieren, indem Sie die Authentifizierung aktivieren. Sie finden die Endpunkt-Authentifizierung und -Autorisierung unter der Registerkarte Sicherheit in den Eigenschaften eines Endpunkts.

Sie können sichere Endpunkte auch über die Datei `.universal/endpoints.ps1` oder die Management-API mit `New-PSUEndpoint` definieren.

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

Wenn die Authentifizierung aktiviert ist, wird die Verwendung einer der konfigurierten Authentifizierungsmethoden erzwungen. APIs unterstützen die folgenden Methoden.

* JWT-App-Token
* Windows-Authentifizierung
* Cookie-Authentifizierung
* Basic-Authentifizierung

## Zugriff auf sichere Endpunkte

Sobald Sie einen sicheren Endpunkt definiert haben, müssen Sie Authentifizierung und Autorisierung bereitstellen, um auf den Endpunkt zuzugreifen.

### Authentifizierung mit Token

{% hint style="warning" %}
Beachten Sie, dass Sie keine App-Token an den PowerShell Universal-Server übergeben können, wenn Sie in IIS hosten und die anonyme Authentifizierung nicht aktiviert ist.
{% endhint %}

Um sich mit Token zu authentifizieren, müssen Sie zunächst ein neues App-Token zur Verwendung generieren. Sie können dazu das Cmdlet `Grant-PSUAppToken` remote verwenden oder ein App-Token in der Benutzeroberfläche über die Registerkarte Einstellungen Sicherheit AppTokens erstellen.

Bewegen Sie den Mauszeiger oben rechts in der Admin-Konsole über Ihren Benutzernamen, klicken Sie auf Token und dann auf Anwendungstoken erstellen.

Sobald Sie Ihr App-Token erstellt haben, können Sie es verwenden, um sich gegenüber dem sicheren Endpunkt zu authentifizieren. Übergeben Sie dazu den Authorization-Header zusammen mit der Anfrage.

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

#### Benutzerdefinierter Authorization-Header

PowerShell Universal stellt einen benutzerdefinierten Authorization-Header bereit, um Szenarien mit Reverse-Proxys zu unterstützen, die möglicherweise ihren eigenen Authorization-Header benötigen. Wenn der Header `X-PSU-Authorization` angegeben ist, ignoriert PSU den Header `Authorization` und verwendet stattdessen diesen Header.

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

### Authentifizierung mit Windows-Authentifizierung

Um sich mit [Windows-Authentifizierung](/powershell-universal/de/sicherheit/security.md#windows-authentication-in-iis) zu authentifizieren, können Sie den Parameter `-UseDefaultCredentials` von `Invoke-RestMethod` und `Invoke-WebRequest` verwenden. Dies führt eine Negotiate-Authentifizierung durch, unabhängig davon, ob Sie innerhalb von IIS oder als Dienst ausgeführt werden.

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

### Authentifizierung mit Cookies

Um sich mit Cookies zu authentifizieren, müssen Sie zunächst die Login-API aufrufen, um ein gültiges Cookie vom System zu erhalten. Sie können dazu `Invoke-WebRequest` verwenden. Übergeben Sie den Benutzernamen und das Passwort als Body. Geben Sie den Parameter `-SessionVariable` an, um eine Sitzung zu etablieren.

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

Sobald Sie sich erfolgreich authentifiziert haben, können Sie Ihre Variable `$mySession` verwenden, um sichere Endpunkte aufzurufen.

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

## Rollen erzwingen

Zusätzlich zum Erstellen von Endpunkten, die eine Authentifizierung erfordern, können Sie auch Rollen erzwingen, indem Sie eine Rolle im Cmdlet `New-PSUEndpoint` definieren oder eine in der Benutzeroberfläche auswählen. Wenn eine Rolle ausgewählt ist, besitzt sie die Rolle.

Windows- und Cookie-Authentifizierung weisen Rollen basierend auf der Identität des Benutzers und den angewendeten Rollenrichtlinien zu.

JWT-App-Token verwenden die Rolle, die bei ihrer Generierung definiert wurde.

## Ausführungsrollen

Mit der Eigenschaft Ausführungsrollen können Sie festlegen, welche Rollen bei der Ausführung des API-Endpunkts zugewiesen werden. Standardmäßig wird der Endpunkt basierend auf den Rollen des Aufrufers ausgeführt. In einigen Szenarien, zum Beispiel bei der Verwendung von Secrets mit Rollen, möchten Sie möglicherweise zusätzliche Rollen bereitstellen, die der Aufrufer nicht besitzt. Ausführungsrollen erfordern nicht, dass die API-Authentifizierung aktiviert ist.

## API

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


---

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