Ich beginne mit serverless bei AWS und verwende AWS Cognito für die Benutzerauthentifizierung und -autorisierung. Was ich in der Dokumentation und den Beispielen dort gesehen habe, können Sie Gruppen erstellen, die bestimmten Benutzern ermöglichen, einen Api Gateway-Endpunkt zu verwenden, indem Sie dieser Gruppe eine Rolle und eine Richtlinie zuweisen. Ich versuche das, und dann einen einfachen Client und versuche es mit zwei verschiedenen Benutzern, und beide sind in der Lage, einen 200 Statuscode zu erhalten, anstatt dass einer von ihnen bekommt, dass er unautorisiert wird. Zum Erstellen der Rolle bin ich zu IAM gegangen, habe eine Rolle, eine Rolle für den Identity-Provider-Zugriff erstellt, gewähre Zugriff auf Web-Identity-Provider und wähle dann Amazon Cognito und wähle meinen Benutzerpool von Cognito. Vertrauensbeziehung:AWS Cognito Groups und AWS Api Gateway
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com:aud": "us-east-1_8TAUVKbGP"
}
}
}
]
}
Politik:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"my-arn-resourse-from-api-gateway"
]
}
]
}
Dann zugewiesen ich diese Rolle mein Admin-Gruppe und fügen Sie einen Benutzer zu dieser Gruppe, die durch das Anbringen dieser Politik den Zugang zu dieser API-Gateway-Ressource ermöglichen sollte, für den Benutzer, wenn es sich anmeldet. Aber wenn ich mit einem Benutzer nicht in dieser Gruppe versuche, funktioniert es noch. Übrigens, auf meiner API-Gateway-Ressource in der Anfrage stelle ich zur Autorisierung meinen Cognito-Pool.
Vielen Dank!
Danke! Ich werde es versuchen und lassen Sie wissen, wie es geht! –