Использование AWS cognito Identity с openID salesforce в python boto3 - PullRequest
0 голосов
/ 15 декабря 2018

Я делаю POC для приложения, которое будет использовать SSO из Salesforce с использованием OpenID и передать id_token идентификатору пользователя cognito для получения временных учетных данных для s3.Я настроил все роли, службы и приложения в AWS / Salesforce.Я могу получить доступ к s3, когда я разрешаю несанкционированный доступ к моей личности.Но всякий раз, когда я пытаюсь передать id_token для аутентифицированного доступа, он выдает мне эту ошибку:

botocore.errorfactory.NotAuthorizedException: возникала ошибка (NotAuthorizedException) при вызове операции GetId: неверный маркер входа в систему.Эмитент не совпадает с providerName

Я следую инструкциям здесь https://aws.amazon.com/blogs/security/building-an-app-using-amazon-cognito-and-an-openid-connect-identity-provider/

Я использую Python Boto3.Это мой текущий код:

import boto3

id_token='aaaaaa.bbbbbbbb.cccccccc' #Got from the url salesforce sends after successful authentication
client = boto3.client('cognito-identity', 'us-east-2')
resp = client.get_id(AccountId='123456789123', IdentityPoolId='us-east-2:xxxxxxx-yyyy-zzz-hhhhh-jj888hhhh',
                     Logins={
                         'provider_url': id_token
                     }
                     )

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 16 декабря 2018

Видимо, проблема заключалась в provider_url, как и предполагалось, в ошибке.Я просто помещал login.salesforce.com, когда вместо этого мне пришлось изменить его на то, что id_token возвращал в качестве идентификатора их эмитента.Мне пришлось изменить это в поставщиках доступа AWS в IAM, а также в коде.

...