0

多分多少の質問ですが、Amazon Cognito AuthFlow

Amazon Cognito User Poolsでの認証方法を.NETで実行します。 私は次のように認証を開始しています:

var response1 = client.InitiateAuth(new InitiateAuthRequest() 
      { 
       AuthFlow = AuthFlowType.USER_SRP_AUTH, 
       AuthParameters = new Dictionary<string, string>() 
       { 
        {"USERNAME","User" }, 
        {"SRP_A" , A } 
       }, 
       ClientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxx" 
      }); 

彼らのドキュメントは、本当に、本当に悪いです、と私は私がチャレンジに応答するときに渡すものを見つけるように見えることはできません。サイドノートでは

client.RespondToAuthChallenge(new RespondToAuthChallengeRequest() 
     { 
      ChallengeName = ChallengeNameType.PASSWORD_VERIFIER, 
      ChallengeResponses = { /*WHAT am I supposed to add here, and where can I find any documnetation on what is expected?*/ }, 
      Session = response1.Session, 
      ClientId = "xxxxxxxxxxxxx" 
     }); 

、私は保護されたカスタムの.NET APIにCognitoフェデレーションIDを使用したいので、私の考えでは、トークンを使用する場所I、WEBAPI側にJWTとして渡すCognitoによって返さトークンをデコードして検証します。これはAmazon Cognitoを使用するための期待された方法ですか? (私はamazon APIゲートウェイを使用したくない、少なくとも今のところは)。

私はデフォルトのJWTミドルウェアでOWINを設定していると仮定していますか?

+0

あなたのサイドノートは基本的に正しいです:ユーザープールはあなたに非常によく似たJWTトークンを与えますGoogleなどと呼ばれ、同じ方法でIDプールによって使用されます。 –

+0

SRPに関しては、標準アルゴリズムです(https://en.wikipedia.org/wiki/Secure_Remote_Password_protocol)。しかし、Cognitoに対してC#でまだ動作していません。 –

答えて

0

developer guideは、認証を開始し、認証チャレンジに応答するために何が要求されるべきかについて触れています。

srp認証をCognitoにオフロードするのがAdminInitiateAuth API(同じリンクに詳しく記載されています)で簡単に実行できます。これにより、これらの空白が埋められます。

モバイルSDKには、SRP認証に関するラッパーがあり、これらのパラメータを入力するのに役立ちますが、他のSDKにはそのような機能はありません。あなたは、SRP_Aのようなものを記入するためにSDKのコードを使うことができますが、AdminInitiateAuthを使うほうがはるかに簡単です。

+1

'AdminInitiateAuth'は" srp認証をオフロード "しません。したがって、フロー名は' ADMIN_NO_SRP_AUTH'です。 SRPは、ワイヤを介してパスワードを送信することを避けるアルゴリズムであるため、 'AdminInitiateAuth'の使用は厳密に安全性が低くなりますが、インターネット上の他のログインページは基本的に何ですか。基本的にはサーバー側での使用を想定しています。 –

+0

オフロードします。コグニティブサーバはあなたのためにsrpを実行しますが、そうするためには、デファクトクライアントとして機能するためにユーザ名とパスワードが必要です。あなたの推論は公平であるが、オフロードしているので、ドキュメントはこれでひどくはっきりしないかもしれません。出典:私はCognitoチームにいる –

+0

名前の背後にあるアイデアは、SRPを実行する必要はなく、インターネット上のすべてのログインページのように見えるが、バックグラウンドでは同じバックエンドストアを使用しているSRPを活用して –

0

ここでは、この人は、.NETアプリケーションでSRP計算を行う方法について説明します。私は、コンソールでユーザーを作成する際に発行した一時パスワードを更新するためにいくつかのロジックを追加する必要がありましたが、それは魔法のように動作していること以外

AWS Cognito SRP Login in C#/.NET

関連する問題