Attendibilità del ruolo e autorizzazioni - Amazon Cognito

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Attendibilità del ruolo e autorizzazioni

Questi ruoli differiscono nelle loro relazioni di attendibilità. Di seguito viene riportato un esempio di policy di attendibilità per i ruoli non autenticati:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-corner-cafe-123456790ab" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } } } ] }

Questa policy concede l'autorizzazione agli utenti federati di cognito-identity.amazonaws.com (approvatore del token OpenID Connect) di assumere questo ruolo. Inoltre la policy limita l'aud del token, in questo caso l'ID dei pool di identità, in base al pool di identità. Infine, la policy specifica che uno dei membri dell'array del amr claim multivalore del token emesso dall'operazione Amazon GetOpenIdToken API Cognito ha il valore. unauthenticated

Quando Amazon Cognito crea un token, imposta l'amr del token o come unauthenticated o authenticated. Se amr è authenticated, il token include tutti i provider utilizzati durante l'autenticazione. In questo modo, puoi creare un ruolo che fa affidamento solo sugli utenti che eseguono l'accesso tramite Facebook. Ti basterà cambiare la condizione amr in modo che sia somigliante alla seguente:

"ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "graph.facebook.com" }

Presta attenzione quando vengono modificate le relazioni di affidabilità sui tuoi ruoli, oppure quando si tenta di utilizzare ruoli tra pool di identità. Se non configuri correttamente il tuo ruolo in modo da considerare attendibile il tuo pool di identità, si verificherà un'eccezione, STS come la seguente:

AccessDenied -- Not authorized to perform sts:AssumeRoleWithWebIdentity

Se vedi questo mesaggio, verifica che il tuo pool di identità e il tipo di autenticazione siano appropriati per il ruolo.