2016-09-30 8 views
0

AWSでユーザープールサービスを使用してモバイルアプリケーション認証システムをセットアップしようとしています。AWS Cognitoユーザー認証フローに提案とアドバイスが必要

モバイル専用アプリケーションなので、whatsappのようなOTP/MFA確認オプションが必要です。ここで私は最初の挑戦に遭遇しました。

ユーザプールには、強制的にユーザ名とパスワードが必要です。私は組み込みのMFAを使用していたので、phone_number属性を使用しました。私はユーザー名やパスワードは必要ありませんでした。ここに私が計画したことがあります。

  1. 認定資格情報プロバイダで認証されていないIDを許可します。成功したOTPに登録すると、プロバイダに&割り当てを信任状に私のIdTokenを通過した後に登録[cognito、パスワード= "somethingxyz" で提供されたユーザ名=アイデンティティ(はい、S/Wにハードコード)、PHONE_NUMBER =提供の電話番号]
  2. を加工
  3. 最初に作成されたIDを持つユーザープールユーザー

私の懸念は、ログインプロセスを完了するためにMFAが必須である場合は、ハードコードされたパスワードを使用しても問題ありませんか?認証されていないアイデンティティにユーザプールアカウントを割り当て、それを認証することは可能ですか(なぜですか?私はサインアッププロセスでユーザ名としてそのアイデンティティを使用し、そのユーザプールアカウントとして他のアイデンティティを必要としません。エラーはありますか?)

+0

私のアプリは、OTPで認証された携帯電話番号に基づいてログインしています。私はユーザー名を空白にしていませんので、私はユーザー名にも携帯番号を使用しました。 – desidigitalnomad

+1

私は国番号とそれからストリップ+ので、ユーザー名は非常に簡単にユーザーが国と供給を選択することは簡単です彼の携帯電話番号。例えば。 + 919699XXX02〜ユーザー名:9196999XXX02 –

答えて

3

私はstackoverflowが提案やアドバイスを望んでいないと思うので、私はあなたが質問していると思う質問への回答として答えを書式化しようとします。「Cognitoシステムの役割とは?私のアプリを実装してください "。 (これは私が1か月以上自分で答えようとしてきた質問です)。私の答えはIOS SDK APIの観点から記述されていますが、一般的には適用されます。

Cognitoアイデンティティなどあなたの「IdentityIdさん」を発行しますが、ユーザ名やパスワードを使用して、それらのアイデンティティの認証を管理しません

ですから、活動の制約やコントロールを持っているしたい場合は、いくつかの並べ替えが必要になります登録手続き。これには、Facebook ID、Google+ ID、またはあなた自身のID(BYOIと呼ばれる独自のID)または新しいCognito User Pool(AWSが提供するIDプロバイダ)を使用できます。 (これらの「アイデンティティプロバイダ」はすべて、何らかの種類のトークンとアイデンティティプロバイダ名をバックグラウンドで提供します)。これらのどれもIdentityIdを提供していません。それはCognito Identityの仕事です。だから、何のユーザー名とパスワードを使用していない

あなたは一時的にIdentityIdためのAWSの資格を取得し、S3を使用できるようにCognito資格情報プロバイダは、AWSでのIAMロールにCognitoIdentity IdentityIdを接続し、ラムダ、DynamoDBのなど

、手段認証は必要ありませんが、IDを持つことはできますが、Cognito Identityはそれらを維持し、固有のものになります(モバイルデバイスに従う)。しかし、ユーザーは、自分の身元についてCognitoに知らせる方法がないため、別のデバイスに移動して同じIDを保持することはできません。それはアイデンティティプロバイダが何をしているのか(そしてパスワード/ mfaなどを求めてあなたが嘘をついていないことをチェックします)。

APIとSDKの命名はかなりわかりにくいですが、基本的にCognitoIdentityで始まるクラスはプロバイダがないということは、コンポーネントがFederated Identityシステムの一部であり、CognitoIdentityProviderで始まるクラスがデバイス/ユーザーは誰ですか/それが言うことです。また、CognitoIdentityProviderManagerは、「graph.facebook.com」やcognito-idp.us-east-1などのCognitoIdentityProvider名を返します。CognitoIdentityシステムにそのユーザーがログインしていることを知らせる(これは、[name:token]のログイン辞書をCognitoIdentityに返すことで行います)。シーンはオープンIdを接続サーバまたは他のサーバ(IEログインfacebook)でこのトークンを検証します。

だから、あなたのための質問は、どのように一意に(私がのWhatsAppを知らない)ユーザーを識別しようとしているさ。

関連する問題