2016-10-15 18 views
1

私はAWS DynamoDBに送信される車からデータを収集するiOSとAndroidアプリケーションを開発しました。ユーザーは、Cognito User Poolを使用してモバイルアプリを通じてサインインします。PHPでのCognitoユーザープール認証

今、ユーザーのデータを表示するWebページを開発したいと考えています。この目的のために、ユーザは、データベースから彼の情報を検索するために使用されるウェブページ(SSL)に彼の信用証明書を提供しなければならない。以下のコードは、(図示していないで、ユーザ/パスワードを取得するには、HTMLフォームを)うまく機能:

<script src="jsbn.js"></script> 
<script src="jsbn2.js"></script> 
<script src="sjcl.js"></script> 
<script src="/path/to/moment.min.js"></script> 
<script src="aws-cognito-sdk.min.js"></script> 
<script src="amazon-cognito-identity.min.js"></script> 
<script src="/path/to/aws-sdk-2.3.5.js"></script> 
<script src="aws-sdk.js"></script> 
<script src="aws-sdk.min.js"></script> 


function completeAndRedirect() { 

    var authenticationData = { 
    Username : document.getElementById("UserID").value, 
    Password : document.getElementById("Password").value, 
}; 

var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData); 
var poolData = { UserPoolId : 'us-west-.......', 
    ClientId : '...................' 
}; 
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 
var userData = { 
    Username : 'test', 
    Pool : userPool 
}; 
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData); 

console.log('userid:'+authenticationData.Username); 
console.log('pass:'+authenticationData.Password); 
cognitoUser.authenticateUser(authenticationDetails, { 
    onSuccess: function (result) { 
     console.log('access token + ' + result.getAccessToken().getJwtToken()); 
    }, 

    onFailure: function(err) { 
     console.log('test'); 
     alert(err); 
    }, 

}); 

}

しかし、Javascriptをクライアント側で実行し、すべての必要なが含まれますAPIと秘密鍵。

私は、すべてがサーバー側にとどまるため、phpが好ましいと読んでいます。 しかし、正しい方向に私を指し示す例や参考文献は見つかりませんでした。

私はAmazonが彼らのフォーラムで、PHP、JavaScriptですべての例与えられ、関連するコメントを使用することをお勧めしていることは思えないよう、前方に移動する方法がわからないよう、私は今のところ困惑しています:User Pool Authentication using Php

どれ勧告へキーを難読化するためにJavaScript暗号化に加えてこの問題に対処していますか?

答えて

0

Cognito User pools with Cognito Federated identity serviceを使用してください。

CognitoフェデレーションIDサービスは、クライアントにフェデレーションIDプールの役割を介して制御される他のAWSサービスでの認証に使用できる一時的なAWS資格情報をクライアントに提供します。 JavaScriptアプリケーションにAWSアクセスと秘密鍵を埋め込む必要はなく、AWSサービスと安全にやりとりすることができます。

コード例はhereです。

+0

だから、要約に最低限のユーザ認証を達成し、AWSサービスへのアクセスを得るためにされていますので、要約でユーザ認証を実現するためにはJavaScriptに埋め込むと、AWSサービスへのアクセスを得るために最低限です – Fredo

+0

アイデンティティ・プールID – Fredo

+0

:アイデンティティプールID、ユーザープールID、およびクライアントID。それが正しいか?もしそうなら、それらを明確にしておくことは安全ですか? – Fredo

関連する問題