

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Implementierung der Autorisierung in Amazon Verified Permissions
<a name="authorization"></a>

Nachdem Sie Ihren Richtlinienspeicher, Ihre Richtlinien, Vorlagen, Ihr Schema und Ihr Autorisierungsmodell erstellt haben, können Sie mit der Autorisierung von Anfragen mithilfe von Amazon Verified Permissions beginnen. Um die Autorisierung mit verifizierten Berechtigungen zu implementieren, müssen Sie die Konfiguration der Autorisierungsrichtlinien AWS mit der Integration in eine Anwendung kombinieren. Um Verified Permissions in Ihre Anwendung zu integrieren, fügen Sie ein AWS SDK hinzu und implementieren Sie die Methoden, die die Verified Permissions API aufrufen und Autorisierungsentscheidungen anhand Ihres Richtlinienspeichers generieren.

Die Autorisierung mit verifizierten Berechtigungen ist nützlich für *UX-Berechtigungen* und *API-Berechtigungen* in Ihren Anwendungen.

**UX-Berechtigungen**  
Steuern Sie den Benutzerzugriff auf Ihre Anwendungs-UX. Sie können einem Benutzer erlauben, nur genau die Formulare, Schaltflächen, Grafiken und anderen Ressourcen anzuzeigen, auf die er zugreifen muss. Wenn sich ein Benutzer beispielsweise anmeldet, möchten Sie vielleicht festlegen, ob die Schaltfläche „Geld überweisen“ in seinem Konto sichtbar ist. Sie können auch die Aktionen steuern, die ein Benutzer ausführen kann. Beispielsweise möchten Sie in derselben Banking-App möglicherweise festlegen, ob Ihr Benutzer die Kategorie einer Transaktion ändern darf.

**API-Berechtigungen**  
Steuern Sie den Benutzerzugriff auf Daten. Anwendungen sind häufig Teil eines verteilten Systems und beziehen Informationen von außen ein APIs. Im Beispiel der Banking-App, bei der Verified Permissions die Anzeige einer Schaltfläche „Geld überweisen“ zugelassen hat, muss eine komplexere Autorisierungsentscheidung getroffen werden, wenn Ihr Benutzer eine Überweisung veranlasst. Verified Permissions kann die API-Anfrage autorisieren, in der die Zielkonten aufgeführt sind, die als Übertragungsziele in Frage kommen, und dann die Anfrage, die Übertragung auf das andere Konto zu übertragen.

Die Beispiele, die diesen Inhalt veranschaulichen, stammen aus einem [Beispielrichtlinienspeicher](policy-stores-create.md#policy-stores-create.title). Um dem nachzugehen, erstellen Sie den **DigitalPetStore**Beispiel-Richtlinienspeicher in Ihrer Testumgebung.

Eine durchgängige Beispielanwendung, die UX-Berechtigungen mithilfe der Batch-Autorisierung implementiert, finden Sie im *AWS Security* [Blog unter Verwenden Sie von Amazon verifizierte Berechtigungen für eine detaillierte Autorisierung im großen Maßstab](https://aws.amazon.com/blogs/security/use-amazon-verified-permissions-for-fine-grained-authorization-at-scale/).

**Topics**
+ [

## Verfügbare API-Operationen für die Autorisierung
](#authorization-operations)
+ [

# Testen Sie Ihr Autorisierungsmodell
](authorization-testing.md)
+ [

# Integrieren Sie Ihre Autorisierungsmodelle mit Anwendungen
](authorization-sdk.md)

## Verfügbare API-Operationen für die Autorisierung
<a name="authorization-operations"></a>

Die Verified Permissions API verfügt über die folgenden Autorisierungsvorgänge.

**[IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html)**  
Der `IsAuthorized` API-Vorgang ist der Einstiegspunkt für Autorisierungsanfragen mit verifizierten Berechtigungen. Sie müssen die Elemente „Principal“, „Action“, „Resource“, „Context“ und „Entities“ einreichen. Verified Permissions bewertet Ihre Anfrage anhand aller Richtlinien im angeforderten Richtlinienspeicher, die für die Entitäten in der Anfrage gelten.

**[IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)**  
Der `IsAuthorizedWithToken` Vorgang generiert eine Autorisierungsanfrage anhand von Benutzerdaten in JSON-Webtoken (JWTs). Verified Permissions funktioniert direkt mit OIDC-Anbietern, z. B. Amazon Cognito als Identitätsquelle in Ihrem Richtlinienspeicher. Verified Permissions füllt alle Attribute des Prinzipals in Ihrer Anfrage anhand der Ansprüche in der Benutzer-ID oder in den Zugriffstoken auf. Sie können Aktionen und Ressourcen anhand von Benutzerattributen oder der Gruppenmitgliedschaft in einer Identitätsquelle autorisieren.  
Sie können keine Informationen über Gruppen- oder Benutzerprinzipaltypen in eine `IsAuthorizedWithToken` Anfrage aufnehmen. Sie müssen alle Prinzipaldaten in das von Ihnen bereitgestellte JWT eingeben.

**[BatchIsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorized.html)**  
Der `BatchIsAuthorized` Vorgang verarbeitet mehrere Autorisierungsentscheidungen für einen einzelnen Prinzipal oder eine einzelne Ressource in einer einzigen API-Anforderung. Dieser Vorgang gruppiert Anfragen in einem einzigen Batch-Vorgang, der die [Quotennutzung](quotas.md#quotas-tps.title) minimiert und Autorisierungsentscheidungen für jede der bis zu 30 komplexen verschachtelten Aktionen zurückgibt. Mit der Batch-Autorisierung für eine einzelne Ressource können Sie die Aktionen filtern, die ein Benutzer für eine Ressource ausführen kann. Mit der Batch-Autorisierung für einen einzelnen Prinzipal können Sie nach den Ressourcen filtern, für die ein Benutzer Aktionen ausführen kann.

**[BatchIsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorizedWithToken.html)**  
Der `BatchIsAuthorizedWithToken` Vorgang verarbeitet mehrere Autorisierungsentscheidungen für einen einzelnen Prinzipal in einer API-Anfrage. Der Prinzipal wird von der Identitätsquelle Ihres Richtlinienspeichers in einer ID oder einem Zugriffstoken bereitgestellt. Dieser Vorgang gruppiert Anfragen in einem einzigen Batch-Vorgang, der die [Kontingentnutzung](quotas.md#quotas-tps.title) minimiert und Autorisierungsentscheidungen für jede von bis zu 30 Anfragen nach Aktionen und Ressourcen zurückgibt. In Ihren Richtlinien können Sie ihren Zugriff über ihre Attribute oder ihre Gruppenmitgliedschaft in einem Benutzerverzeichnis autorisieren.  
Wie bei `IsAuthorizedWithToken` können Sie keine Informationen über Gruppen- oder Benutzerprinzipaltypen in eine `BatchIsAuthorizedWithToken` Anfrage aufnehmen. Sie müssen alle Prinzipaldaten in das von Ihnen bereitgestellte JWT eingeben.

# Testen Sie Ihr Autorisierungsmodell
<a name="authorization-testing"></a>

Um zu verstehen, wie sich die Autorisierungsentscheidung von Amazon Verified Permissions bei der Bereitstellung Ihrer Anwendung auswirkt, können Sie Ihre Richtlinien bei der Entwicklung mit den [Verwenden des Amazon Verified Permissions-Testbench](test-bench.md) und mit HTTPS-REST-API-Anfragen an Verified Permissions evaluieren. Der Prüfstand ist ein Tool AWS-Managementkonsole zur Bewertung von Autorisierungsanfragen und Antworten in Ihrem Richtlinienspeicher.

Die REST-API für verifizierte Berechtigungen ist der nächste Schritt in Ihrer Entwicklung, wenn Sie von einem konzeptionellen Verständnis zum Anwendungsdesign übergehen. Die Verified Permissions API akzeptiert Autorisierungsanfragen mit [IsAuthorized[IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html), und [BatchIsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorized.html)als [signierte AWS API-Anfragen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) an regionale [Service-Endpunkte](https://docs.aws.amazon.com/general/latest/gr/verifiedpermissions.html). Um Ihr Autorisierungsmodell zu testen, können Sie Anfragen mit einem beliebigen API-Client generieren und überprüfen, ob Ihre Richtlinien die Autorisierungsentscheidungen erwartungsgemäß zurückgeben.

Mit dem folgenden Verfahren können Sie beispielsweise `IsAuthorized` in einem Beispiel-Richtlinienspeicher testen.

------
#### [ Test bench ]

1. Öffnen Sie die Konsole Verified Permissions unter [Verified Permissions console](https://console.aws.amazon.com/verifiedpermissions/). Erstellen Sie aus dem **Beispielrichtlinienspeicher einen Richtlinienspeicher** mit dem Namen **DigitalPetStore**.

1. Wählen Sie in Ihrem neuen Richtlinienspeicher die Option **Testbench** aus.

1. Füllen Sie Ihre Testbench-Anfrage [IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html#API_IsAuthorized_Examples)in der API-Referenz für verifizierte Berechtigungen aus. Die folgenden Details entsprechen den Bedingungen in **Beispiel 4, das auf das **DigitalPetStore**Beispiel** verweist.

   1. Stellen Sie Alice als Principal ein. Wählen Sie für **Principal taking action** die Option `DigitalPetStore::User` und geben Sie ein`Alice`.

   1. Lege Alices Rolle als Kunde fest. Wählen Sie **Elternteil hinzufügen**`DigitalPetStore::Role`, wählen Sie und geben Sie Kunde ein.

   1. Geben Sie für die Ressource die Bestellung „1234" ein. Wählen Sie unter **Ressource, auf die der Principal reagiert**, die Option aus `DigitalPetStore::Order` und geben Sie ein`1234`.

   1. Die `DigitalPetStore::Order` Ressource benötigt ein `owner` Attribut. Lege Alice als Eigentümerin der Bestellung fest. Wähle `DigitalPetStore::User` und gib ein `Alice`

   1. Alice bat darum, die Bestellung einzusehen. Wählen Sie für **Aktion, die der Schulleiter gerade ergreift**, die Option`DigitalPetStore::Action::"GetOrder"`.

1. Wählen Sie **Autorisierungsanfrage ausführen** aus. In einem unveränderten Richtlinienspeicher führt diese Anfrage zu einer `ALLOW` Entscheidung. Notieren Sie sich die **Richtlinie „Zufrieden“**, die die Entscheidung zurückgegeben hat.

1. Wählen Sie in der linken Navigationsleiste **Richtlinien** aus. Überprüfen Sie die statische Richtlinie mit der Beschreibung **Kundenrolle — Bestellung abrufen**.

1. Beachten Sie, dass Verified Permissions die Anfrage zugelassen hat, weil der Principal eine Kundenrolle innehatte und der Eigentümer der Ressource war.

------
#### [ REST API ]

1. Öffnen Sie die Konsole Verified Permissions unter [Verified Permissions console](https://console.aws.amazon.com/verifiedpermissions/). Erstellen Sie aus dem **Beispielrichtlinienspeicher einen Richtlinienspeicher** mit dem Namen **DigitalPetStore**.

1. Notieren Sie sich die **Policy-Store-ID** Ihres neuen Policy-Speichers.

1. Kopieren Sie aus [IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html#API_IsAuthorized_Examples)der API-Referenz für verifizierte Berechtigungen den Anfragetext von **Beispiel 4**, der auf das **DigitalPetStore**Beispiel verweist.

1. Öffnen Sie Ihren API-Client und erstellen Sie eine Anfrage an den regionalen Service-Endpunkt für Ihren Richtlinienspeicher. [Füllen Sie die Header wie im Beispiel gezeigt aus.](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html#API_IsAuthorized_Examples)

1. Fügen Sie den Text der Beispielanforderung ein und ändern Sie den Wert von in `policyStoreId` die zuvor notierte Policy Store-ID.

1. Reichen Sie die Anfrage ein und überprüfen Sie die Ergebnisse. In einem **DigitalPetStore**Standardrichtlinienspeicher gibt diese Anfrage eine `ALLOW` Entscheidung zurück.

------

Sie können in Ihrer Testumgebung Änderungen an Richtlinien, Schemas und Anforderungen vornehmen, um die Ergebnisse zu ändern und komplexere Entscheidungen zu treffen.

1. Ändern Sie die Anfrage so, dass die Entscheidung unter Verifizierte Berechtigungen geändert wird. Ändern Sie beispielsweise Alices Rolle auf `Employee` oder ändern Sie das `owner` Attribut der Bestellung 1234 auf`Bob`.

1. Ändern Sie Richtlinien so, dass sie sich auf Autorisierungsentscheidungen auswirken. Ändern Sie beispielsweise die Richtlinie mit der Beschreibung **Kundenrolle — Bestellung abrufen**, um die Bedingung zu entfernen, dass der Eigentümer der Anfrage sein `User` muss, `Resource` und ändern Sie die Anfrage so, dass der Kunde die Bestellung einsehen `Bob` möchte.

1. Ändern Sie das Schema, damit Richtlinien komplexere Entscheidungen treffen können. Aktualisieren Sie die Anforderungsentitäten, damit Alice die neuen Anforderungen erfüllen kann. Bearbeiten Sie das Schema beispielsweise so, dass `User` Sie Mitglied von `ActiveUsers` oder sein können`InactiveUsers`. Aktualisieren Sie die Richtlinie, sodass nur aktive Benutzer ihre eigenen Bestellungen einsehen können. Aktualisieren Sie die Anforderungsentitäten, sodass Alice ein aktiver oder inaktiver Benutzer ist.

# Integrieren Sie Ihre Autorisierungsmodelle mit Anwendungen
<a name="authorization-sdk"></a>

Um Amazon Verified Permissions in Ihrer Anwendung zu implementieren, müssen Sie die Richtlinien und das Schema definieren, die Ihre App durchsetzen soll. Nachdem Ihr Autorisierungsmodell eingerichtet und getestet wurde, besteht Ihr nächster Schritt darin, API-Anfragen vom Punkt der Durchsetzung aus zu generieren. Dazu müssen Sie eine Anwendungslogik einrichten, um Benutzerdaten zu sammeln und diese für Autorisierungsanfragen zu verwenden.

**Wie eine App Anfragen mit verifizierten Berechtigungen autorisiert**

1. Sammeln Sie Informationen über den aktuellen Benutzer. In der Regel werden die Details eines Benutzers in den Details einer authentifizierten Sitzung bereitgestellt, z. B. in einem JWT- oder Websitzungs-Cookie. Diese Benutzerdaten können aus einer Amazon Cognito [Identitätsquelle](identity-sources.md#identity-sources.title) stammen, die mit Ihrem Richtlinienspeicher verknüpft ist, oder von einem anderen [OpenID Connect (OIDC](cognito-validation.md#identity-sources-other-idp.title)) -Anbieter.

1. Sammeln Sie Informationen über die Ressource, auf die ein Benutzer zugreifen möchte. In der Regel erhält Ihre Anwendung Informationen über die Ressource, wenn ein Benutzer eine Auswahl trifft, sodass Ihre App ein neues Asset laden muss.

1. Bestimmen Sie die Aktion, die Ihr Benutzer ergreifen möchte.

1. Generieren Sie eine Autorisierungsanfrage an Verified Permissions mit dem Principal, der Aktion, der Ressource und den Entitäten für den versuchten Vorgang Ihres Benutzers. Verified Permissions bewertet die Anfrage anhand der Richtlinien in Ihrem Richtlinienspeicher und gibt eine Autorisierungsentscheidung zurück.

1. Ihre Anwendung liest die Antwort „Zulassen“ oder „Verweigern“ von Verified Permissions und erzwingt die Entscheidung in Bezug auf die Anfrage des Benutzers.

API-Operationen für verifizierte Berechtigungen sind integriert AWS SDKs. Um verifizierte Berechtigungen in eine App aufzunehmen, integrieren Sie das AWS SDK für die von Ihnen gewählte Sprache in das App-Paket.

Weitere Informationen und Downloads AWS SDKs finden Sie unter [Tools für Amazon Web Services](https://aws.amazon.com/tools/).

Im Folgenden finden Sie Links zur Dokumentation für Ressourcen zu verifizierten Berechtigungen in verschiedenen Bereichen AWS SDKs.
+ [AWS SDK für .NET](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/VerifiedPermissions/NVerifiedPermissions.html)
+ [AWS SDK für C\$1\$1](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-verifiedpermissions/html/class_aws_1_1_verified_permissions_1_1_verified_permissions_client.html)
+ [AWS SDK für Go](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/verifiedpermissions)
+ [AWS SDK für Java](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/verifiedpermissions/package-summary.html)
+ [AWS SDK für JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/verifiedpermissions/)
+ [AWS SDK für PHP](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-verifiedpermissions-2021-12-01.html)
+ [AWS SDK für Python (Boto)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/verifiedpermissions.html)
+ [AWS SDK für Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/VerifiedPermissions/Client.html)
+ [AWS SDK für Rust](https://docs.rs/aws-sdk-verifiedpermissions/latest/aws_sdk_verifiedpermissions/)

Das folgende AWS SDK für JavaScript Beispiel für `IsAuthorized` stammt aus der detaillierten [Autorisierung von Simplify mit Amazon Verified Permissions und Amazon Cognito](https://aws.amazon.com/blogs/security/simplify-fine-grained-authorization-with-amazon-verified-permissions-and-amazon-cognito/).

```
const authResult = await avp.isAuthorized({
    principal: 'User::"alice"',
    action: 'Action::"view"',
    resource: 'Photo::"VacationPhoto94.jpg"',
    // whenever our policy references attributes of the entity,
    // isAuthorized needs an entity argument that provides    
    // those attributes
    entities: {
       entityList: [
         {
            "identifier": {
                "entityType": "User",
                "entityId": "alice"
            },
            "attributes": {
                "location": {
                    "String": "USA"
                }
            }
         }
       ]
    }
});
```

**Weitere Ressourcen für Entwickler**
+ [Workshop „Von Amazon verifizierte Berechtigungen“](https://catalog.workshops.aws/verified-permissions-in-action)
+ [Von Amazon verifizierte Berechtigungen — Ressourcen](https://aws.amazon.com/verified-permissions/resources/)
+ [Implementieren Sie einen benutzerdefinierten Autorisierungsrichtlinienanbieter für ASP.NET Core-Apps mithilfe von Amazon Verified Permissions](https://aws.amazon.com/blogs/dotnet/implement-a-custom-authorization-policy-provider-for-asp-net-core-apps-using-amazon-verified-permissions/)
+ [Erstellen Sie mithilfe von Amazon Verified Permissions einen Berechtigungsservice für Geschäftsanwendungen](https://aws.amazon.com/blogs/security/build-an-entitlement-service-for-business-applications-using-amazon-verified-permissions/)
+ [Vereinfachen Sie die detaillierte Autorisierung mit Amazon Verified Permissions und Amazon Cognito](https://aws.amazon.com/blogs/security/simplify-fine-grained-authorization-with-amazon-verified-permissions-and-amazon-cognito/)