LoginSignup
3
1

More than 1 year has passed since last update.

Amazon Cognitoを検討してみた

Last updated at Posted at 2022-12-10

この記事は Goodpatch Advent Calendar 2022 の10日目です。

こんにちは、Goodpatchの ReDesignerサービスでバックエンドを担当している荒木です。

はじめに

多要素認証を導入するため検討してみました。
(時間がないので作り込みではなくサービス利用を選択)

どんなサービスがある?

Webサービスやアプリ、社内システム向けなど様々なサービスがありますが、今回はWebサービス利用ということでシングルサイオン対応しているサービスをいくつかピックアップして検討します。

  1. Uni-ID MFA
    特徴

    • WebAPI提供による多要素認証の導入が可能
    • OATH TOTP に準拠した認証機能
    • 料金は問い合わせ、利用ユーザー数に影響されそう
  2. Twilio Verify
    特徴

    • 10行足らずのコードでウェブやモバイルのアプリに二要素認証の機能を追加可能(サイト曰く)
    • 音声通話もサポート
    • 認証1件あたり$0.05。ボリュームディスカウントは要相談
  3. Auth0
    特徴

    • 料金が他より明確に公開されてて、シンプルな利用ならお安め
    • SPAとWebAPIという構築なら綺麗に分離できそう
    • ユーザー情報をAuth0側に持つことになるのでその分の作り込みや移行が必要になる。
  4. Amazon Cognito
    特徴

    • AWSな料金(50,000 アクティブユーザー/月が無料)
    • 実装情報が多い
    • ユーザー情報をCognitoからのユーザー取得はリクエスト制限有り

調べてみても実装の具体例は少なめでしたがAuth0とCognitoは比較的多かったです。
利用料金や既存サービス環境がAWS、既存システムへの導入と考えると今回はCognitoが無難だと考えました。
※ 読み方はCognito(コグニート)

コンソール上での動作確認

  1. ユーザープールの作成
    管理したい単位でプールをステップに沿って作成しましょう。
    mojikyo45_640-2.gif

2.アプリクライアントを対象アプリ毎に作成します.

mojikyo45_640-2.gif

コンソール上でUIを起動する場合は古いコンソールで作業した方が解りやすいかも

3.コンソール上でUI起動すると設定に合わせて下記(未カスタマイズ)のログイン画面が表示されて実際にアカウント発行やログインが行えました。

mojikyo45_640-2.gif

4.そのままMFA認証もできて、実際にGoogle認証システムなどに登録してコード発行できます。

mojikyo45_640-2.gif

5.発行したアカウントは下記のようにプールされたことを確認できました。

mojikyo45_640-2.gif

実際に運用を想定した際に検討すること

  • ある程度カスタマイズ可能だが下記のプラットフォームのライブラリをダウンロードして実装する方が現実的

    mojikyo45_640-2.gif

    FlutterはJSか:rolling_eyes:

  • SNS認証は必要十分

mojikyo45_640-2.gif
  • アカウント管理画面はAWSコンソールだと使いにくいので結局連携して実装も視野に入れる。

  • アドレス認証のメールはCongnitoから送信されるのでカスタマイズ可能な範囲が限られる。

まとめ

簡単な検証でしたが、Webサービスへの導入要件は十分満たしている印象でした。これから実際にアプリへの組み込みも検証していこうと思います。
(フロントサイドへの組み込みはAuth0の方が楽そうです。)

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1