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.