

Version 4 (V4) von AWS SDK für .NET wurde veröffentlicht\$1

Informationen zu wichtigen Änderungen und zur Migration Ihrer Anwendungen finden Sie im [Migrationsthema](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html).

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

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.

# Single Sign-On mit dem AWS SDK für .NET
<a name="sso"></a>

AWS IAM Identity Center ist ein cloudbasierter Single Sign-On-Service (SSO), mit dem Sie den SSO-Zugriff auf all Ihre AWS-Konten und Cloud-Anwendungen einfach zentral verwalten können. Vollständige Informationen finden Sie im [IAM Identity Center-Benutzerhandbuch](https://docs.aws.amazon.com/singlesignon/latest/userguide/).

Wenn Sie nicht wissen, wie ein SDK mit IAM Identity Center interagiert, lesen Sie die folgenden Informationen.

## Interaktionsmuster auf hoher Ebene
<a name="w2aac15b7b7b1"></a>

 SDKs Interagieren Sie auf hoher Ebene mit IAM Identity Center auf eine Weise, die dem folgenden Muster ähnelt:

1. IAM Identity Center wird in der Regel über die [IAM Identity Center-Konsole](https://console.aws.amazon.com/singlesignon) konfiguriert, und ein SSO-Benutzer wird zur Teilnahme eingeladen.

1. Die gemeinsam genutzte AWS `config` Datei auf dem Computer des Benutzers wird mit SSO-Informationen aktualisiert.

1. Der Benutzer meldet sich über IAM Identity Center an und erhält kurzfristige Anmeldeinformationen für die AWS Identity and Access Management (IAM-) Berechtigungen, die für ihn konfiguriert wurden. Diese Anmeldung kann über ein Tool, das kein SDK ist, wie z. B. das AWS CLI, oder programmgesteuert über eine .NET-Anwendung initiiert werden.

1. Der Benutzer setzt seine Arbeit fort. Wenn sie andere Anwendungen ausführen, die SSO verwenden, müssen sie sich nicht erneut anmelden, um die Anwendungen zu öffnen.

Der Rest dieses Themas enthält Referenzinformationen zur Einrichtung und Verwendung AWS IAM Identity Center. Es enthält zusätzliche und umfassendere Informationen als die grundlegende SSO-Einrichtung unter[Authentifizieren mit AWS](creds-idc.md). Wenn Sie SSO noch nicht kennen AWS, sollten Sie sich zunächst dieses Thema ansehen, um grundlegende Informationen zu erhalten, und sich dann die folgenden Tutorials ansehen, um SSO in Aktion zu erleben:
+ [Tutorial: Ausschließlich.NET-Anwendung](sso-tutorial-app-only.md)
+ [Tutorial: AWS CLI und .NET-Anwendung](sso-tutorial-cli-and-app.md)

Dieses Thema enthält die folgenden Abschnitte:
+ [Voraussetzungen](#sso-prereq)
+ [Ein SSO-Profil einrichten](#sso-profiles)
+ [SSO-Token generieren und verwenden](#sso-generate-use-token-overview)
+ [Weitere Ressourcen](#sso-resources)
+ [Tutorials](#sso-tutorial-links)

## Voraussetzungen
<a name="sso-prereq"></a>

Bevor Sie IAM Identity Center verwenden können, müssen Sie bestimmte Aufgaben ausführen, z. B. eine Identitätsquelle auswählen und die entsprechenden AWS-Konten Anwendungen konfigurieren. Weitere Informationen finden Sie unter:
+ Allgemeine Informationen zu diesen Aufgaben finden Sie unter [Erste Schritte](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) im *IAM Identity Center-Benutzerhandbuch*.
+ Konkrete Aufgabenbeispiele finden Sie in der Liste der Tutorials am Ende dieses Themas. Lesen Sie sich jedoch unbedingt die Informationen in diesem Thema durch, bevor Sie die Tutorials ausprobieren.

## Ein SSO-Profil einrichten
<a name="sso-profiles"></a>

Nachdem das IAM Identity Center in der entsprechenden Datei [konfiguriert](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) wurde AWS-Konto, muss der gemeinsam genutzten AWS `config` Datei des Benutzers ein benanntes Profil für SSO hinzugefügt werden. Dieses Profil wird verwendet, um eine Verbindung zum *[AWS Zugriffsportal](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html)* herzustellen, das kurzfristige Anmeldeinformationen für die IAM-Berechtigungen zurückgibt, die für den Benutzer konfiguriert wurden.

Die gemeinsam genutzte `config` Datei wird normalerweise `%USERPROFILE%\.aws\config` in Windows sowie unter Linux und `~/.aws/config` macOS benannt. Sie können Ihren bevorzugten Texteditor verwenden, um ein neues Profil für SSO hinzuzufügen. Alternativ können Sie den `aws configure sso` Befehl verwenden. Weitere Informationen zu diesem Befehl finden Sie unter [Konfiguration der AWS CLI für die Verwendung von IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) im *AWS Command Line Interface Benutzerhandbuch*.

Das neue Profil ähnelt dem folgenden:

```
[profile my-sso-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-west-2
sso_account_id = 123456789012
sso_role_name = SSOReadOnlyRole
```

Die Einstellungen für das neue Profil sind unten definiert. Die ersten beiden Einstellungen definieren das AWS Zugriffsportal. Bei den anderen beiden Einstellungen handelt es sich um ein Paar, das zusammengenommen die Berechtigungen definiert, die für einen Benutzer konfiguriert wurden. Alle vier Einstellungen sind erforderlich.

**`sso_start_url`**  
Die URL, die auf das [AWS Zugriffsportal](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html) der Organisation verweist. Um diesen Wert zu finden, öffnen Sie die [IAM Identity Center-Konsole](https://console.aws.amazon.com/singlesignon), wählen Sie **Einstellungen** und suchen Sie nach der **Portal-URL**.

**`sso_region`**  
Der AWS-Region , der den Access-Portal-Host enthält. Dies ist die Region, die bei der Aktivierung von IAM Identity Center ausgewählt wurde. Sie kann sich von den Regionen unterscheiden, die Sie für andere Aufgaben verwenden.  
Eine vollständige Liste der AWS-Regionen und ihrer Codes finden Sie unter [Regionale Endpunkte](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) in der *Allgemeine Amazon Web Services-Referenz*.

**`sso_account_id`**  
Die ID eines AWS-Konto , das über den AWS Organizations Dienst hinzugefügt wurde. Um die Liste der verfügbaren Konten zu sehen, gehen Sie zur [IAM Identity Center-Konsole](https://console.aws.amazon.com/singlesignon) und öffnen Sie die **AWS-Konten**Seite. Die Konto-ID, die Sie für diese Einstellung auswählen, entspricht dem Wert, den Sie der `sso_role_name` Einstellung geben möchten, der als Nächstes angezeigt wird.

**`sso_role_name`**  
Der Name eines IAM Identity Center-Berechtigungssatzes. Dieser Berechtigungssatz definiert die Berechtigungen, die einem Benutzer über IAM Identity Center erteilt werden.  
Das folgende Verfahren ist eine Möglichkeit, den Wert für diese Einstellung zu ermitteln.  

1. Gehen Sie zur [IAM Identity Center-Konsole](https://console.aws.amazon.com/singlesignon) und öffnen Sie die **AWS-Konten**Seite.

1. Wählen Sie ein Konto aus, um dessen Details anzuzeigen. Das Konto, das Sie auswählen, enthält den SSO-Benutzer oder die SSO-Gruppe, dem Sie SSO-Berechtigungen erteilen möchten.

1. Sehen Sie sich die Liste der Benutzer und Gruppen an, die dem Konto zugewiesen sind, und suchen Sie den Benutzer oder die Gruppe, für die Sie sich interessieren. Der Berechtigungssatz, den Sie in der `sso_role_name` Einstellung angeben, ist einer der Gruppen, die diesem Benutzer oder dieser Gruppe zugeordnet sind.
Wenn Sie dieser Einstellung einen Wert zuweisen, verwenden Sie den Namen des Berechtigungssatzes, nicht den Amazon-Ressourcennamen (ARN).  
Mit den Berechtigungssätzen sind IAM-Richtlinien und Richtlinien für benutzerdefinierte Berechtigungen verknüpft. Weitere Informationen finden Sie unter [Berechtigungssätze](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsets.html) im *IAM Identity Center-Benutzerhandbuch*.

## SSO-Token generieren und verwenden
<a name="sso-generate-use-token-overview"></a>

Um SSO verwenden zu können, muss ein Benutzer zunächst ein temporäres Token generieren und dieses Token dann verwenden, um auf die entsprechenden AWS Anwendungen und Ressourcen zuzugreifen. Für .NET-Anwendungen können Sie die folgenden Methoden verwenden, um diese temporären Token zu generieren und zu verwenden:
+ Erstellen Sie .NET-Anwendungen, die bei Bedarf zuerst ein Token generieren und das Token dann verwenden.
+ Generieren Sie ein Token mit dem AWS CLI und verwenden Sie das Token dann in .NET-Anwendungen.

Diese Methoden werden in den folgenden Abschnitten beschrieben und in den [Tutorials](#sso-tutorial-links) demonstriert.

**Wichtig**  
Ihre Anwendung muss auf die folgenden NuGet Pakete verweisen, damit die SSO-Auflösung funktioniert:  
`AWSSDK.SSO`
`AWSSDK.SSOOIDC`
Wenn diese Pakete nicht referenziert werden, wird eine *Laufzeitausnahme* ausgelöst.

### Ausschließlich.NET-Anwendung
<a name="sso-generate-use-token-app-only-summary"></a>

In diesem Abschnitt erfahren Sie, wie Sie eine .NET-Anwendung erstellen, die bei Bedarf ein temporäres SSO-Token generiert und dieses Token dann verwendet. Eine vollständige Anleitung zu diesem Prozess finden Sie unter[Tutorial für SSO mit ausschließlich.NET-Anwendungen](sso-tutorial-app-only.md).

#### Generieren und verwenden Sie programmgesteuert ein SSO-Token
<a name="sso-generate-token-prog"></a>

Sie können nicht nur das verwenden AWS CLI, sondern auch programmgesteuert ein SSO-Token generieren.

Zu diesem Zweck erstellt Ihre Anwendung ein [https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAWSCredentials.html](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAWSCredentials.html)Objekt für das SSO-Profil, das temporäre Anmeldeinformationen lädt, sofern welche verfügbar sind. Anschließend muss Ihre Anwendung das Objekt in ein `AWSCredentials` [https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html)Objekt umwandeln und einige [Optionseigenschaften](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentialsOptions.html) festlegen, einschließlich einer Callback-Methode, mit der der Benutzer bei Bedarf zur Eingabe von Anmeldeinformationen aufgefordert wird.

Diese Methode wird im folgenden Codeausschnitt gezeigt.

**Wichtig**  
Ihre Anwendung muss auf die folgenden NuGet Pakete verweisen, damit die SSO-Auflösung funktioniert:  
`AWSSDK.SSO`
`AWSSDK.SSOOIDC`
Wenn diese Pakete nicht referenziert werden, wird eine *Laufzeitausnahme* ausgelöst.

```
static AWSCredentials LoadSsoCredentials()
{
    var chain = new CredentialProfileStoreChain();
    if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials))
        throw new Exception("Failed to find the my-sso-profile profile");

    var ssoCredentials = credentials as SSOAWSCredentials;

    ssoCredentials.Options.ClientName = "Example-SSO-App";
    ssoCredentials.Options.SsoVerificationCallback = args =>
    {
        // Launch a browser window that prompts the SSO user to complete an SSO sign-in.
        // This method is only invoked if the session doesn't already have a valid SSO token.
        // NOTE: Process.Start might not support launching a browser on macOS or Linux. If not,
        //       use an appropriate mechanism on those systems instead.
        Process.Start(new ProcessStartInfo
        {
            FileName = args.VerificationUriComplete,
            UseShellExecute = true
        });
    };
    ssoCredentials.Options.SupportsGettingNewToken = true;

    return ssoCredentials;
}
```

Wenn kein geeignetes SSO-Token verfügbar ist, wird das Standardbrowserfenster geöffnet und die entsprechende Anmeldeseite geöffnet. Wenn Sie beispielsweise IAM Identity Center als **Identitätsquelle** verwenden, wird dem Benutzer eine Anmeldeseite angezeigt, die der folgenden ähnelt:

![\[AWS IAM Identity Center Anmeldeseite.\]](http://docs.aws.amazon.com/de_de/sdk-for-net/v4/developer-guide/images/SSO-login.png)


**Anmerkung**  
Die Textzeichenfolge, die Sie angeben, `SSOAWSCredentials.Options.ClientName` darf keine Leerzeichen enthalten. Wenn die Zeichenfolge Leerzeichen enthält, wird eine *Laufzeitausnahme* ausgelöst.

[Tutorial für SSO mit ausschließlich.NET-Anwendungen](sso-tutorial-app-only.md)

### AWS CLI und .NET-Anwendung
<a name="sso-generate-use-token-cli-and-app-summary"></a>

In diesem Abschnitt erfahren Sie, wie Sie mithilfe von ein temporäres SSO-Token generieren und wie Sie dieses Token in einer Anwendung verwenden. AWS CLI Eine vollständige Anleitung zu diesem Vorgang finden Sie unter[Tutorial für SSO mit den AWS CLI und .NET-Anwendungen](sso-tutorial-cli-and-app.md).

#### Generieren Sie ein SSO-Token mit dem AWS CLI
<a name="sso-generate-token-cli"></a>

Zusätzlich zur programmgesteuerten Generierung eines temporären SSO-Tokens verwenden Sie den, AWS CLI um das Token zu generieren. Die folgenden Informationen zeigen Ihnen, wie das geht.

Nachdem der Benutzer ein SSO-fähiges Profil erstellt hat, wie in einem [vorherigen Abschnitt](#sso-profiles) gezeigt, führt er den `aws sso login` Befehl vom aus aus. AWS CLI Sie müssen sicherstellen, dass der `--profile` Parameter zusammen mit dem Namen des SSO-aktivierten Profils angegeben wird. Das wird im folgenden Beispiel veranschaulicht:

```
aws sso login --profile my-sso-profile
```

Wenn der Benutzer nach Ablauf des aktuellen Tokens ein neues temporäres Token generieren möchte, kann er denselben Befehl erneut ausführen.

#### Verwenden Sie das generierte SSO-Token in einer .NET-Anwendung
<a name="sso-use-profile-dotnet"></a>

Die folgenden Informationen zeigen Ihnen, wie Sie ein temporäres Token verwenden, das bereits generiert wurde.

**Wichtig**  
Ihre Anwendung muss auf die folgenden NuGet Pakete verweisen, damit die SSO-Auflösung funktioniert:  
`AWSSDK.SSO`
`AWSSDK.SSOOIDC`
Wenn diese Pakete nicht referenziert werden, wird eine *Laufzeitausnahme* ausgelöst.

Ihre Anwendung erstellt ein [https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAWSCredentials.html](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAWSCredentials.html)Objekt für das SSO-Profil, das die temporären Anmeldeinformationen lädt, die zuvor von der generiert wurden AWS CLI. Dies ähnelt den unter gezeigten Methoden [Zugreifen auf Anmeldeinformationen und Profile in einer Anwendung](creds-locate.md) und hat die folgende Form:

```
static AWSCredentials LoadSsoCredentials()
{
    var chain = new CredentialProfileStoreChain();
    if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials))
        throw new Exception("Failed to find the my-sso-profile profile");

    return credentials;
}
```

Das `AWSCredentials` Objekt wird dann an den Konstruktor für einen Service-Client übergeben. Zum Beispiel:

```
var S3Client_SSO = new AmazonS3Client(LoadSsoCredentials());
```

**Anmerkung**  
Die Verwendung `AWSCredentials` zum Laden temporärer Anmeldeinformationen ist nicht erforderlich, wenn Ihre Anwendung für die Verwendung des `[default]` Profils für SSO erstellt wurde. In diesem Fall kann die Anwendung AWS Dienstclients ohne Parameter erstellen, ähnlich wie "`var client = new AmazonS3Client();`“.

[Tutorial für SSO mit den AWS CLI und .NET-Anwendungen](sso-tutorial-cli-and-app.md)

## Weitere Ressourcen
<a name="sso-resources"></a>

Weitere Hilfe finden Sie in den folgenden Ressourcen.
+ [Was ist IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
+ [Konfiguration des AWS CLI für die Verwendung von IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html#sso-configure-profile)
+ [Verwenden von IAM Identity Center-Anmeldeinformationen im AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/sso-credentials.html)

## Tutorials
<a name="sso-tutorial-links"></a>

**Topics**
+ [Voraussetzungen](#sso-prereq)
+ [Ein SSO-Profil einrichten](#sso-profiles)
+ [SSO-Token generieren und verwenden](#sso-generate-use-token-overview)
+ [Weitere Ressourcen](#sso-resources)
+ [Tutorials](#sso-tutorial-links)
+ [Tutorial: Ausschließlich.NET-Anwendung](sso-tutorial-app-only.md)
+ [Tutorial: AWS CLI und .NET-Anwendung](sso-tutorial-cli-and-app.md)