LoginSignup
5
5

More than 3 years have passed since last update.

既存のログイン認証基盤からCognitoに移行するために調べてわかったこと

Last updated at Posted at 2020-05-26

既存のID&パスワード認証のシステムに加え、新たにシステムを作り、SSO(シングルサインオン)を実装するために、Cognitoを使う。

その際に、既存のユーザー情報を移行しないといけないので、調べてみました。

マサカリ待ってます。

前提

AWS CLIは使わず、マネジメントコンソールから操作します。

既存の認証基盤仕様

ログインするためにユーザーが入力するもの

  • ユーザーID(またはメールアドレス)
  • パスワード

移行について

[懸念点]ユーザーにパスワードの変更をしてもらう必要がある

[モバイルアーキテクチャ ] Cognitoにどこまで任せるべきか?研究してみた - Qiita

既存のメール認証システムから移行する場合、name, email, phone numberなどはcsvでimportできるが、passwordだけはimportできないので、ユーザーにpasswordの再設定を依頼する必要がある。そのため、移行コストは高い

CSVでユーザーをインポートする

既存のユーザー情報を定められた形式のCSVファイルからインポートできる。

既存システムから、CSVを作る仕組みは別途用意しなければなりません。

ユーザーインポート .csv ファイルの作成 - Amazon Cognito

フォーマットはユーザープールで設定した属性に依るので、「CSVヘッダーのダウンロード」からヘッダーファイルをダウンロードします。
image.png

ダウンロードされるヘッダー例.csv
name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled,cognito:username

インポートするには上記ヘッダーに合わせて必要な情報を作っていく必要がある

インポートのソース.csv
name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled,cognito:username
tanaka,,,,,,,,,tanaka@example.com,TRUE,,,,,,FALSE,,,FALSE,tanaka
suzuki,,,,,,,,,suzuki@example.com,TRUE,,,,,,FALSE,,,FALSE,suzuki
yamamoto,,,,,,,,,yamamoto@example.com,TRUE,,,,,,FALSE,,,FALSE,yamamoto

このCSVファイルを、「インポートジョブの作成」から選択してジョブを作成します。

image.png

(試行錯誤の跡がありますが)、ステータスがCreatedの状態で、開始を押します。
成功するとSuccessedの状態になります。

Too many users have failed or been skipped during the import.
というエラーは、CSVの内容を見直してください。具体的なエラー内容は、CloudWatchLogsに吐き出されています。

image.png

インポートが成功すると、下記の通りインポートされます。
image.png

あとはアプリクライアントからパスワードのリセットを促すように対応すれば移行できるかと思います。

5
5
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
5
5