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:
-
IAM Identity Center wird in der Regel über die IAM Identity Center-Konsole
konfiguriert, und ein SSO-Benutzer wird zur Teilnahme eingeladen. -
Die gemeinsam genutzte AWS
config
Datei auf dem Computer des Benutzers wird mit SSO-Informationen aktualisiert. -
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.
-
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.
-
Gehen Sie zur IAM Identity Center-Konsole
und öffnen Sie die AWS-KontenSeite. -
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.
-
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 AWSCredentials
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
SSOAWSCredentials
Objekt 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 themy-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:
Anmerkung
Die Textzeichenfolge, die Sie angeben, SSOAWSCredentials.Options.ClientName
darf keine Leerzeichen enthalten. Wenn die Zeichenfolge Leerzeichen enthält, wird eine Laufzeitausnahme ausgelöst.
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 zur SSO Verwendung von AWS CLI und. NETAnwendungen.
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 AWSCredentials
Objekt 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 themy-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();
“.
Weitere Ressourcen
Weitere Hilfe finden Sie in den folgenden Ressourcen.