Einzelnen Beitrag anzeigen

Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#1

AWS Cognito Authentifizierung

  Alt 7. Sep 2023, 17:23
Hallo zusammen,


ich muss für einen Rest-Service, auf den ich zugreifen will, mich vorher über "Amazon AWS Cognito" authentifizieren. Habe ich noch nie gemacht.

Ich denke dass ich mit dem AWS SDK for Delphi aus GetIt die richtige Komponente dafür gefunden habe. Aber ich kommen damit kein Stück weiter.



Hier ein kurzer Auszug, aus dem Mail des Service-Anbieters:


Zitat:
Die Authentifizierung läuft über Amazon Web Services Cognito via SRP.

Daher ist die einfachste Möglichkeit für die Umsetzung die Verwendung der AWS-Cognito-Bibliotheken. Wenn Sie im .NET-Universum unterwegs sind, dann finden Sie die entsprechende Bibliothek hier: https://www.nuget.org/packages/Amazo...uthentication/

Und die Dokumentation mit Anwendungsbeispielen im Github-Projekt hier: https://github.com/aws/aws-sdk-net-extensions-cognito. Dort den Abschnitt "Authenticating with Secure Remote Protocol (SRP)" beachten.

Damit könnte eine Anmeldung in C# so aussehen:


Code:
static async Task GetCredsAsync(string username, string password)
{
 AmazonCognitoIdentityProviderClient provider = new AmazonCognitoIdentityProviderClient(new Amazon.Runtime.AnonymousAWSCredentials());
 CognitoUserPool userPool = new CognitoUserPool("userpool_id", "client_id", provider, "client_secret");
 CognitoUser user = new CognitoUser(username, "client_id", userPool, provider, "client_secret");
 InitiateSrpAuthRequest authRequest = new InitiateSrpAuthRequest()
 {
 Password = password
 };
 AuthFlowResponse authResponse = await user.StartWithSrpAuthAsync(authRequest).ConfigureAwait(false);
 Console.WriteLine(authResponse.AuthenticationResult.IdToken);
}
Die Strings "username", "password", "userpool_id", "client_id" und "client_secret“ müssen dabei durch die entsprechenden Werte ersetzt werden. Das ID-Token muss als Bearer-Token zur Authentifizierung bei den API-Requests übergeben werden.

Sobald ich den Bearer-Token habe, sollte ich mit dem Rest keine Probleme haben.

Vielleicht kann mir jemand Tipps geben.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat