Cognito User
Pools!!からの~
JAWS-UG Osaka
第15回勉強会
AWS Summit
Tokyo 2016 アップ
デート追っかけ会 山下 光洋
自己紹介
山下光洋
@yamamanx
Blog : www.yamamanx.com
・ソフトウェア開発会社でIBMさんのBP
・ナイトレジャー会社で情シス
・エネルギー会社で情シス ←今ココ
好きなAWSサービス : RDS
JAWS-UG OSAKA , JAWS-UG IoT関西支部 コアメンバー
kintoneCafe,TwilioJP-UG,DevLOVE関西,RxTStudyなどに出没してます。
緑のLv14
The八番街 Bass AppleMusic,LINE MUSIC,AmazonMusic,AWA,レコチョク,GooglePlayなどで配信中
毎日呑んでます。 今日も乾杯!!
【パネルディスカッション】AWS 初心者が絶対に通る道~そして伝説へ~
パネラーさせていただきました。YouTube公式公開中。
Cognito User Pools
Cognito User Pools
・アイデンティティプロバイダ(Amazon,Facebook,Google,Twitter,,,)を使わな
い独自のユーザディレクトリを簡単に作成出来る
・モバイル(iOS,Android)と Web アプリに簡単にユーザサインアップとサイン
インを追加
・数億ユーザまでスケール可能
・email による確認、電話番号による確認や多要素認証
・パスワード通信ではSecure Remote Password (SRP)を利用
Cognito User Pools 設定を見てみます
新規ユーザーサインアップ時に
登録必須の属性を決める設定で
す。
デフォルトのままEメールのみ
としています。
Cognito User Pools 設定を見てみます
パスワードポリシーです。
数字が含まれて8文字以上ならOKにしています。
Cognito User Pools 設定を見てみます
登録時にメールに認証のためのコードを送るように、
デフォルトでなっていますのでそのままにしています。
Cognito User Pools 設定を見てみます
今回設定はしていません
が、サインアップ時、認
証時に、独自の処理を
lambdaで追加する事も出
来ます。
Cognito User Pools デモを見てみます
AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
});
AWSCognito.config.region = 'us-east-1';
AWSCognito.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
});
var poolData = {
UserPoolId : 'us-east-1_xxxxxxxxxxxxx,
ClientId: 'xxxxxxxxxxxxxxxxxxxx'
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
サインアップ、アクティベーション、ログインをやってみます。
上記は共通のコードです。
IdentityのIDとUserPoolのIDとUserPoolで設定したAppのクライアントIDを設定
します。
※amazon-cognito-identity.jsを使用します。(詳しくはブログで)
Cognito User Pools デモを見てみます
var dataEmail = {
Name : 'email',
Value : $('#email').val()
};
var attributeEmail = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataEmail);
var attributeList = [];
attributeList.push(attributeEmail);
userPool.signUp($('#email').val(), $('#password').val(), attributeList, null, function(err, result){
if (err) {
//エラー処理
return;
}
//成功処理(メッセージなど)
});
メールアドレスとパスワードを入力して、
サインアップを行います。
Cognito User Pools デモを見てみます
サインアップをすると、User Poolsで設定していたとおりに、
verification codeがメールで届きます。
この時点でCognitoのUsersにユーザーが登録されますが、
まだ「Unconfirmed」です。
Cognito User Pools デモを見てみます
var userData = {
Username : $('#actemail').val(),
Pool : userPool
};
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);
cognitoUser.confirmRegistration($('#actcode').val(), true, function(err, result) {
if (err) {
//エラー処理
return;
}
//成功処理(メッセージなど)
});
verification codeを入力して認証を完了します。
Cognito User Pools デモを見てみます
CognitoのUsersで「Confirmed」となりました。
ユーザー登録完了です。
Cognito User Pools デモを見てみます
var authenticationData = {
Username : $('#loginemail').val(),
Password : $('#loginpassword').val()
};
var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);
var userData = {
Username : $('#loginemail').val(),
Pool : userPool
};
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
//成功処理(デモでは画面にトークンを書き出してみてます)
$('#token').html('access token : ' + result.getAccessToken().getJwtToken());
},
onFailure: function(err) {
//エラー処理;
},
});
メールアドレスとパスワードでログインします。
Cognito User Pools デモを見てみます
ログイン成功です!!
トークンも返っています。
からの~
QuickSight
QuickSight
残念ながらまだ今日
2016/6/15時点ではプレビュ
ー公開です。
QuickSight ちょっとだけDEMO
まとめ
まとめ Serverless Architecture
サーバーを作らなくてもアプリケーションが動かせるのです。
サーバーを作らなくてもサービスが提供出来るのです。
サーバーを作るための稟議が要らないのです。
サーバーを作るための設計打ち合わせが要らないのです。
今まで時間をかけていた面倒な調整がもう要らないのです!
今まで握り潰されていた事がもう握りつぶされなくなったので
す!
より良いソフトウェア開発を!!!!
ご清聴ありがとうございました。
Special Thanx to…..

Cognito User Poolsからの~ (JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo 2016 アップデート追っかけ会)