2017-09-29 1 views
0

私はちょうどAmazon Cognitoアイデンティティプールを使用して探しています。Cognito IDプールで誤って非可逆的にユーザーを切断できますか?

概念的には、フェデレーションIDはアプリケーション内でユーザーの真のIDになります。だからどこまでユーザーデータを保存したら、それをその連合IDに戻すことになっています。そのため、特定のIDに関連付けられたFacebookアカウントとTwitterアカウントがある場合、ユーザーは両方を使用してアプリケーションにログインしてデータを見ることができます。

私はIDプール内のアイデンティティのすべてのログインを削除すると、そのアイデンティティは次に孤立してしまいます。回収不能。理にかなっている...それを所有している実際の人間に関連するログインはもはや存在しない。

これは、Javascript SDKでログインを設定する方法を示しています。 Loginsオブジェクトは、Facebookの(グーグル、ツイッターなど)だけでなく、設定の多くの異なるプロバイダを持つことができ

AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
     IdentityPoolId: 'IDENTITY_POOL_ID', 
     Logins: { 
     'graph.facebook.com': response.authResponse.accessToken, 
     'other.provider':'other.provider.token', 
     // etc 
     } 
    }); 

これはすべて問題ありませんが、アイデンティティプールを使用しているさまざまなアプリケーションのいずれかで、ログインの配列が何らかの形で空で管理されている場合にバグが発生するAWS Identityサーバに送信します。

これは、ユーザーのプロフィール、アカウントデータ、機密データを含むすべての可能性など、ユーザーの全体的な経験を構築するために使用したこの身元情報は、不可逆的に切断されることを意味しますか?

ここでは不可能な最悪のケースを夢見ていることを願っています。誰も私の懸念を和らげることができますか?

答えて

1

AWS.CognitoIdentityCredentials()の呼び出しで「ログイン」マップが削除されている(存在しない)場合は、アイデンティティプロバイダの認証情報が認証に失敗することがあります。 CognitoのIDプール設定には何も起こりません。問題が修正されたら、ユーザーが行う必要があるのは、もう一度ログインすることです。コグニートの設定を変更する指示ではなく、使用しているアイデンティティプロバイダのCognitoへのヒントとして、ログインのマップを考えてください。

+0

ありがとうございました。だから地図が削除された後、ユーザーがFacebookにログインしたと言う。認証はもちろん失敗します。しかし、あなたは正しいIdentityIdにFacebookのログインを "再接続"する方法はどうでしょうか?私が現在どのIdentityIdに関連付けるべきかを知るために私が現在理解している唯一の方法は、それがすでにそれに関連付けられているかどうかです。 IdentityIdとFacebookのログイン権の間に既に重複している関連を他のどこで作成したのでしょうか?申し訳ありませんが、私は何かここで明白な行方不明です。 – Chris

+0

お客様のクライアントソースコード(JavaScript)に不足しているログインマップを修正し、再ログインするだけです。ログイン・マップは、サード・パーティIDプロバイダ(IDP)を使用して認証する必要があります。実際の実際のIDPリンクは、Cognito連合IDにサードパーティのIDP資格情報とともに格納されます。ただし、Cognito Federated IdentitiesでIDP認証情報を削除した場合は、それらを再度追加してください。 Cognitoは、IDP JWT(トークン)を使用してIDをマップします。注:IDPを削除するとCognitoがIDを削除するとは思いません。私はIDPを削除してから再追加することをテストしたことはありません。 –

+0

注:Loginsマップとは、AWS.CognitoIdentityCredentials()に渡すパラメータであり、Cognitoに格納されているIDPではありません。 –

関連する問題