AWS получает имя пула пользователей для аутентификации CognitoPython

Программы на Python
Ответить
Anonymous
 AWS получает имя пула пользователей для аутентификации Cognito

Сообщение Anonymous »

Я использую этот пакет Python для программного доступа к API расширения Virtual CC. Он использует AWS Cognito Auth, и у меня возникли проблемы с шагом 2 процесса входа в систему — RespondToAuthChallenge. Я правильно передаю 5 переменных аутентификации ниже, но получаю результат NotAuthorizedException... "Неверное имя пользователя или пароль при запуске кода. Я на 100 процентов уверен, что переменные аутентификации верны.Я думаю, что сузил его до pN4CuZHEc, который должен представлять имя пула пользователей (или я не уверен). Использование значения pN4CuZHEc работает для моего друга, и он работает. не получает никаких ошибок аутентификации, но он живет в Чикаго, я нахожусь на западном побережье. После просмотра документации Cognito кажется возможным, что для разных регионов существуют разные имена/идентификаторы пулов. Если бы я был владельцем Extend VCC, то. было бы легко получить значения пула с панели управления Cognito, но поскольку я этого не делаю:
Как мне получить правильное значение вместо pN4CuZHEc для меня? р>
auth = Cognito(AuthParams(
username="@gmail.com",
password="",
device_group_key="-d4yTUD0o", # actual value
device_key="us-east-1_7353fa42-e44e-45e5-9103-c53bab043e2f", # actual value
device_password="X652caKCiboaq6...nxvvvsb8Ql+3uCr4LmwtQ==",
))

def password_verifier_challenge(self, challenge_params: Dict[str, str]) -> Dict[str, str]:
username = challenge_params["USERNAME"]
user_id = challenge_params["USER_ID_FOR_SRP"]
salt_hex = challenge_params["SALT"]
srp_b_hex = challenge_params["SRP_B"]
secret_block_b64 = challenge_params["SECRET_BLOCK"]

hkdf = self._get_password_authentication_key(
"pN4CuZHEc",
user_id,
self.auth.password,
hex_to_long(srp_b_hex),
hex_to_long(salt_hex),
)

timestamp = datetime.now().strftime("%a %b %d %H:%M:%S UTC %Y")
secret_block = base64.b64decode(secret_block_b64)
msg = (
f"pN4CuZHEc{user_id}".encode("utf-8")
+ secret_block
+ timestamp.encode("utf-8")
)

hmac_obj = hmac.new(hkdf, msg, hashlib.sha256)
signature = base64.b64encode(hmac_obj.digest()).decode("utf-8")

return {
"TIMESTAMP": timestamp, "USERNAME": username, "PASSWORD_CLAIM_SECRET_BLOCK": secret_block_b64, "PASSWORD_CLAIM_SIGNATURE": signature, "DEVICE_KEY": self.auth.device_key,
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... gnito-auth
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»