Я использую этот пакет 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
AWS получает имя пула пользователей для аутентификации Cognito ⇐ Python
Программы на Python
-
Anonymous
1736305841
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,
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79337882/aws-get-user-pool-name-for-cognito-auth[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия