AWS Cognitoで認証されたtokenを利用して、LambdaでAWSのサービスを利用した時に、次のようなエラーが発生しました。
NotAuthorizedException: Token is not from a supported provider of this identity pool.
このエラーを調べると、User PoolとFederated Identitiesの関係が正しく設定されていないことが原因のようでした。
設定の確認方法
何度見直しても正しく設定されていると思ったのですが、結局はやはり正しく関係が設定できていないことが原因だったので、必要なチェック項目を記録しておきます。
- AWSコンソール側について
- Federated Identitiesの設定画面の、Authentication providersの欄でUser Poolが正しく設定されているかを確認する。
- Authentication providersでUser pool Idは、User Poolの画面でPool idの値をさし、App Client idはUser Poolの画面でGeneral settings > App clientsのApp client idの値をさす。
- Token取得(Web)側について
- cognitoの関数を実行するawsのインスタンスが、identityPoolId、region、userPoolId、userPoolWebClientId、mandantorySignInの値が正しく設定されていることを確認する。
- Token利用(Lambda)側について
- identityPoolIdとtokenが正しく設定されているかを確認する。
参考サイト