Blog

So erhalten Sie AWS-Anmeldeinformationen und Zugriffsschlüssel mit dem SAML-Identitätsanbieter Auth0

Mark van Holsteijn

Aktualisiert Oktober 21, 2025
3 Minuten

Auth0 kann als Identitätsanbieter für AWS konfiguriert werden, so dass sich Ihre Auth0-Benutzer direkt bei der AWS-Konsole anmelden können. Leider ist die Funktion zum Abrufen temporärer Zugangsschlüssel für den Aufruf von AWS APIs und Ressourcen seit dem 8. Juni 2017 veraltet . In diesem Blog stelle ich Ihnen ein Kommandozeilenprogramm vor, mit dem Sie AWS-Zugangsdaten über Auth0 abrufen können.

Damit dieses Dienstprogramm funktioniert, gehe ich davon aus, dass Sie Auth0 bereits in AWS integriert haben, wie in dem Artikel 'Konfigurieren Sie SSO mit der AWS-Konsole' beschrieben. Wenn Sie dies noch nicht getan haben, können Sie die Beispielkonfiguration von Terraform in diesem Projekt verwenden, um sich selbst zu booten.

Fügen Sie die Anwendung zu Auth0 hinzu

Damit das Dienstprogramm funktioniert, fügen Sie die Anwendung auth0-login als Single Page Application zu Auth0 hinzu und aktivieren das SAML2 Web App Addon. Setzen Sie auf der Registerkarte Einstellungen die Application Callback URL auf http://localhost:12200/saml und fügen Sie den folgenden SAML-Konfigurationscode in die Einstellungsseite ein:

{
  "recipient": "https://signin.aws.amazon.com/saml",
  "audience": "https://signin.aws.amazon.com/saml",
  "mappings": {
    "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
    "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
  },
  "createUpnClaim": false,
  "passthroughClaimsWithNoMapping": false,
  "mapUnknownClaimsAsIs": false,
  "mapIdentities": false,
  "nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
  "nameIdentifierProbes": [
    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
  ]
}

Dies ist identisch mit der Konfiguration der AWS-Konsole, mit Ausnahme der Art der Anwendung und des zusätzlichen Feldes recipient. Damit soll sichergestellt werden, dass die SAML-Assertion AWS als Empfänger hat und nicht den Callback http://localhost:12200/saml.

auth0-anmeldung konfigurieren

Erstellen Sie eine Datei ~/.saml-login mit dem folgenden Inhalt:

[DEFAULT]
idp_url = https://<auth0-tenant>.auth0.com
client_id = <your-newly-added-client-id>

AWS-Konto-Aliase konfigurieren

Erstellen Sie eine Datei ~/.aws-accounts mit dem folgenden Inhalt:

[DEFAULT]
<aws-account-alias> = <aws-account-number>

So können Sie das AWS-Konto per Alias angeben, was die Lesbarkeit erheblich verbessert.

auth0-login installieren

Um das Dienstprogramm zu installieren, geben Sie ein:

$ pip install auth0-login

alle verfügbaren AWS-Rollen anzeigen

Mit dem SAML-Anbieter können Sie mehrere IAM-Rollen in AWS erhalten. Um Ihnen alle verfügbaren AWS-Rollen anzuzeigen, geben Sie ein:

$ saml-login aws-assume-role --show
[OAuthAdministrator@aws-alias]
idp_url = https://my-tenant.auth0.com
client_id = fJxw5Ir5E0eJDqdWkh+7VGI577uObvsFlAM0KZL5fI
aws_account = aws-alias
aws_role = OAuthAdministrator
aws_profile = OAuthAdministrator@aws-alias

[OAuthIdentity@aws-alias]
idp_url = https://my-tenant.auth0.com
client_id = fJxw5Ir5E0eJDqdWkh+7VGI577uObvsFlAM0KZL5fI
aws_account = aws-alias
aws_role = OAuthIdentity
aws_profile = OAuthIdentity@aws-alias

Dadurch wird der Browser für die Authentifizierung gestartet und alle verfügbaren Rollen in Form der einzelnen Abschnitte der Konfigurationsdatei .saml-login ausgegeben. Fügen Sie die gewünschten Rollen zu Ihrer ~/.saml-login hinzu.

Erhalt von AWS-Zugangsschlüsseln

Jetzt können Sie die AWS-Zugriffsschlüssel erhalten, indem Sie eingeben:

$ saml-login -c OAuthAdministrator@aws-alias aws-assume-role
INFO:Found credentials in shared credentials file: ~/.aws/credentials
INFO:credentials saved under AWS profile OAuthAdministrator@aws-alias

Auch hier werden Sie vom Browser zur Authentifizierung aufgefordert: Die Zugangsschlüssel sind unter ~/.aws/credentials gespeichert.

Fazit

Mit dem Befehlszeilendienstprogramm können Sie SSO betreiben und AWS-Anmeldeinformationen mit Auth0 für die Verwendung in Programmen und der AWS-Cli abrufen!

Vielleicht gefällt Ihnen auch Wie Sie den Zugriff auf AWS-Ressourcen anhand von SAML-Attributen mit CloudFormation einschränken und wie Sie einen SAML-Identitätsanbieter konfigurieren, um SSO in AWS CloudFormation zu aktivieren.

Verfasst von

Mark van Holsteijn

Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.

Contact

Let’s discuss how we can support your journey.