Ich versuche authentifizierte API-Gateway-Endpunkt von Rest-Client zu testen. Wie generiere/setze ich die Autorisierungsheader "AWS_IAM", wenn ich die Anfrage mache?API-Gateway, wie AWS-IAM-Autorisierung von Rest-Client übergeben wird
Antwort
Sie müssten API Gateway
AWS v4 request signature
Logik replizieren, um das zu können. Im Idealfall sollten Sie sich das generierte Javascript/Java-SDK für Ihre API ansehen, um eine Vorstellung davon zu bekommen, wie diese Anforderungssignaturen berechnet werden. Ich schlage vor, dass Sie die Authentifizierung für Ihre Testanforderungen deaktivieren.
können Sie Cognito verwenden, um mit einem „öffentlichen“ Pool-ID, dann Rolle der ID Cognito Pool anhängen, die Rolle
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'REGION:YOUR_POOL_ID',
});
Verwenden AWS STS Zugriff auf Ihre API-Gateway sie nur für Berechtigungsnachweise mit eingeschränkten Rechten zu erhalten. Danach können Sie API-Gateway mit AWS_IAM Authentifizierung
Das erzeugte SDK akzeptiert AMI Anmeldeinformationen verwenden, müssen Sie den Client mit den man von STS bekam zu initiieren:
var apigClient = apigClientFactory.newClient({
accessKey: 'ACCESS_KEY',
secretKey: 'SECRET_KEY',
sessionToken: 'SESSION_TOKEN', //OPTIONAL: If you are using temporary credentials you must include the session token
region: 'eu-west-1' // OPTIONAL: The region where the API is deployed, by default this parameter is set to us-east-1
});
NB: auf Ihrem Put streng Mindest Rollen pool, das ist eine öffentlich verfügbare ID, die von jedem Körper verwendet werden kann, um eine temporäre oder eine fixe (um Benutzer über Geräte hinweg zu verfolgen) user_/app_ id zu erhalten.
Update April 2016: Für Christine Kommentare: Documentation zur Verwendung von STS.
TL; DR: Grundsätzlich nach dem Identity-Provider Sie zurück (Google, in meinem Fall) nennt, werden Sie einen Token (OpenID, in meinem Fall) haben, füttern sie nur STS:
AWS.config.credentials = new AWS.WebIdentityCredentials({
RoleArn: 'arn:aws:iam::<AWS_ACCOUNT_ID>:role/<WEB_IDENTITY_ROLE_NAME>',
ProviderId: 'graph.facebook.com|www.amazon.com', // Omit this for Google
WebIdentityToken: ACCESS_TOKEN
});
- 1. CodeIgniter Übergeben von POST-Daten von RestClient an RestServer API
- 2. RestClient :: Request.execute Hashset vorbei
- 3. Aktualisiere apigateway deployment mit cli
- 4. Verwenden von Restclient mit Multipart-Posts
- 5. Restclient wirft ungewöhnliche Ausnahme
- 6. Restclient Anmeldung mit authlogic
- 7. nodejs Restclient Authentifizierung und Abruf von Sitzungsdaten
- 8. Wie man ApiGateway auf einen bestimmten Lambda-Alias zeigt
- 9. Pass Parameter in RestClient Post Anfrage
- 10. RestClient :: Request.execute in RSpec testen
- 11. curl Anfrage in rubin RestClient
- 12. Stubbing RestClient Antwort in RSpec
- 13. NoMethodError versucht, das Ruby-RestClient
- 14. RestClient in einer Rails-App protokollieren
- 15. Wiederholungsmuster Vs fallen Muster in Restclient
- 16. Finding XML-Element aus RESTClient mit XMLSlurper
- 17. Wie Zeitüberschreitung in RestClient-Juwel in Ruby festlegen?
- 18. Wie wird die Prototyp-Funktion übergeben?
- 19. RestClient :: ResourceNotFound (404 Ressource nicht gefunden):
- 20. Wie wird Code von xcode 6.4 an SVN übergeben?
- 21. Wie wird die Variable von app.js an routes/index.js übergeben?
- 22. Wie $ (this) im Erfolgsrückruf von $ .ajax übergeben wird
- 23. So legen Sie CloudWatch-Einstellungen für AWS APIGateway-Phase
- 24. Wie lege ich den Benutzeragenten für Rubys RestClient fest?
- 25. Wie Timeout für RestClient in Windows Phone 8 festlegen?
- 26. Wie kann ich die Standardauthentifizierung mit RestClient durchführen?
- 27. Wie wird der IValueConverter-Parameter übergeben?
- 28. Wie ID in Laravel übergeben wird Parameter
- 29. Wie wird% in einer URL-Abfragezeichenfolge übergeben?
- 30. Wie wird diese Datei in Java übergeben?
Kann Sie geben ein Beispiel, wie Sie "AWS STS verwenden, um temporäre Anmeldeinformationen mit eingeschränkten Berechtigungen zu erhalten". im Browser JavaScript. Ich kann mir nicht vorstellen, wie das alles mit Cognito Identities funktioniert. Vielen Dank. – Christine
@Christine siehe das Update. –