Cognito User Poolsからの~ (JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo 2016...
-
Upload
mitsuhiro-yamashita -
Category
Engineering
-
view
536 -
download
0
Transcript of Cognito User Poolsからの~ (JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo 2016...
Cognito User Pools!!からの~
JAWS-UG Osaka
第 15 回勉強会
AWS Summit Tokyo 2016 アップデート追っかけ会 山下 光洋
自己紹介
山下光洋
@yamamanx
Blog : www.yamamanx.com
・ソフトウェア開発会社で IBM さんの BP・ナイトレジャー会社で情シス
・エネルギー会社で情シス ←今ココ
好きな AWS サービス : RDSJAWS-UG OSAKA , JAWS-UG IoT 関西支部 コアメンバー
kintoneCafe,TwilioJP-UG,DevLOVE 関西 ,RxTStudy などに出没してます。
緑の Lv14The 八番街 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…..