aws cognito マジで使えない

aws

認証サービスとしてfirebaseと並んで有名なAWSのcognito。
最近いろいろいじっているのですが、正直かなり使い勝手が悪いです。

結論から言って、ちゃんと使用を理解してから設計しないと、後々面倒なことになります。

使うのであれば、データをなるべくcognito側に持たせないように設計しましょう。

理由は以下の通りです

問題1.1秒間に30回しか呼べない

まずこまるのが、コール回数。1秒間に30回は多く見えますが、こんなものはすぐオーバーします。
たとえば、レコードの作成者の名前をセットしようとしたら、実装によりけりですが、かなりの頻度で呼ばれることになるので、すぐ制限をオーバーしてしまいます。

問題2.  一度に生成できるリストが60件まで

呼び出し回数を少なくするために、最初にユーザーのリストを取得しようとしても、一度にとれる件数が60件までとかなり少なめです。

問題3. 途中で設定を変えられない

これも非常に大きな問題ですが、ユーザープールの設定は途中で変更できません。途中で項目を追加しようとしても、できないので、そういった場合はユーザープールを作り直す必要があります。
一応、インポートとかはできるようですが、パスワードは引き継がれない?ので頻繁にできるものではありません。

問題4. 検索が貧弱すぎる

検索機能も貧弱です。デフォルトで用意されているパラメータでしか検索ができません。カスタム属性といって、キーを追加することができますが、カスタム属性の検索はできません。

問題5. 所属するグループがわからない

ユーザーにグループ属性を付けることができますが、通常のユーザー取得APIからのレスポンスにはグループが入っていません。
グループに所属するユーザーを取得するというAPIから取ってくるしかなさそうで使い物になりません。

問題やまづみcognito

いかがだったでしょうか?とにかく使い勝手が最悪です。
確かに、電話番号認証とか手軽にできるので、そういった部分は良いと思いますが、認証以外の機能が本当にひどいの一言に尽きます。

ですので、”認証に必要な情報以外一切もたせない”設計にしたほうが良いでしょう。
もしくは、Congito イベント というものがあるようなので、(使ってないのでできるかわかりませんが)、ユーザー情報が更新されたら、lambdaでイベントを受け取ってDBに内容を転記する。検索はDBの情報を使う。
というような設計にすべきかと思います。

タイトルとURLをコピーしました