目的
LambdaからInitiateAuth
のAuthFlow
をUSER_SRP_AUTH
でCognitoの認証を通す。
※AdminInitiateAuth
のADMIN_USER_PASSWORD_AUTH
を使って良いならそっち推奨
(boto3のadmin_initiate_auth
使ってID/PWだけで簡単に実装できる。)
方法
自力でやろうとすると、initiate_auth
、respond_to_auth_challenge
を実行する必要があるが、
respond_to_auth_challenge
の方のPASSWORD_CLAIM_SIGNATURE
の計算で挫折してしまうため、
こちらを拝借する。。
※pip install
できる(はず)だが、ファイル数が少ないので直接ダウンロードして使う。
__init__.py
が居ると、色々インストールしないといけなくなるため、削除してしまってOK。
(↓になるように)
Lambdaに下記を実装する。
from warrant.aws_srp import AWSSRP
u = AWSSRP(pool_id='ユーザプールID', client_id='クライアントID', username='ID', password='PW')
res = u.authenticate_user()
id_token = res['AuthenticationResult']['IdToken']