Single Sign-On mit dem AWS SDK for .NET - AWS SDK for .NET

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 for .NET

AWS IAM Identity Centerist 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.

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

Auf einer übergeordneten Ebene interagieren SDKs mit IAM Identity Center auf ähnliche Weise wie das folgende Muster:

  1. IAM Identity Center wird in der Regel über die IAM Identity Center-Konsole konfiguriert, und ein SSO-Benutzer wird zur Teilnahme eingeladen.

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

  3. 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 wie das, das kein SDK istAWS CLI, oder programmgesteuert über eine .NET-Anwendung initiiert werden.

  4. 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 VerwendungAWS IAM Identity Center. Es enthält zusätzliche und umfassendere Informationen als die grundlegende SSO-Einrichtung unterKonfigurieren Sie die SDK-Authentifizierung. Wenn Sie SSO noch nicht kennenAWS, 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:

Dieses Thema enthält die folgenden Abschnitte:

Voraussetzungen

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

Nachdem das IAM Identity Center in der entsprechenden Datei konfiguriert wurdeAWS-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 AWSZugriffsportal 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 im AWS Command Line InterfaceBenutzerhandbuch.

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 AWSZugriffsportal der Organisation verweist. Um diesen Wert zu finden, öffnen Sie die IAM Identity Center-Konsole, wählen Sie Einstellungen und suchen Sie nach der Portal-URL.

sso_region

DerAWS-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 in der Allgemeine Amazon Web Services-Referenz.

sso_account_id

Die ID einesAWS-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 und öffnen Sie die AWS-KontenSeite. Die Konto-ID, die Sie für diese Einstellung wä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 und öffnen Sie die AWS-KontenSeite.

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

  3. 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 Berechtigungssätzen sind IAM-Richtlinien und Richtlinien für benutzerdefinierte Berechtigungen verknüpft. Weitere Informationen finden Sie unter Berechtigungssätze im IAM Identity Center-Benutzerhandbuch.

SSO-Token generieren und verwenden

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

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 unterTutorial für SSO mit ausschließlich.NET-Anwendungen.

Generieren und verwenden Sie programmgesteuert ein SSO-Token

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

Zu diesem Zweck erstellt Ihre Anwendung ein AWSCredentialsObjekt 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 SSOAWSCredentialsObjekt umwandeln und einige Optionseigenschaften 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 }); }; 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 CenterAnmeldeseite.
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

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 Prozess finden Sie unterTutorial für SSO mit den AWS CLI und .NET-Anwendungen.

Generieren Sie ein SSO-Token mit dem AWS CLI

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 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-fähigen 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

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 AWSCredentialsObjekt für das SSO-Profil, das die temporären Anmeldeinformationen lädt, die zuvor von der generiert wurdenAWS CLI. Dies ähnelt den unter gezeigten Methoden Zugreifen auf Anmeldeinformationen und Profile in einer Anwendung 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. 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

Weitere Ressourcen

Weitere Hilfe finden Sie in den folgenden Ressourcen.