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

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.
Unsere Ideen
Weitere Blogs
Contact



