SlideShare a Scribd company logo
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
Cognito/Amplify で加速する
エンタープライズのアプリケーション開発
安藤 裕紀
プラットフォームアーキテクト
NRIデジタル株式会社
S e s s i o n B - 2
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
自己紹介
安藤 裕紀(あんどう ゆうき)
• NRIデジタル プラットフォームアーキテクト
(2011年 野村総合研究所入社、2017年 NRIデジタル出向)
• Webシステムのサーバ構築・運用を中心としたインフラエンジニア
として流通・金融・製造など複数業種の技術支援を経験
• ここ最近は、AWS上に構築されたECサイトや会員サービスの
開発運用を効率化すべくSRE / DevOpsエンジニア寄りの業務に従事
• 2020 APN AWS Top Engineers選出
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
本日お話しすること(セッション概要より)
エンタープライズの新サービスを開発する際、企業はグループ内の複数のサービスを
横断した顧客体験の向上とデータ活用によってビジネスの価値を高めようとします。
そこで必要になるのが、エンドユーザの認証の統合とサービスごとの認可の制御です。
Cognito/Amplifyは新サービスを開発する際に認証機能を素早く実装する手段として知
られていますが、IDaaSと連携した認証とサービスに必要な認可の機能を実装するため
に利用することで、エンタープライズが求める認証・認可を素早く実現するノウハウ
をお伝えします。
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
アジェンダ
• NRIデジタルについて
• エンタープライズに認証・認可が求められる背景
• アプリケーション開発を加速するためのAWSマネージドサービス活用
• まとめ
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
6Copyright (C) NRI digital, Ltd. All rights reserved.
野村総合研究所(NRI)グループの
デジタルビジネス専門の戦略子会社
NRIグループ内外から組織の壁を超えて
集結した多様なプロフェッショナルが
”ワンチーム”で、お客様と共に
デジタルによるビジネス変革を推進
多様なプロフェッショナルが集結
新たなテクノロジー領域への挑戦
価値共創型のビジネス創出
7Copyright (C) NRI digital, Ltd. All rights reserved.
多くの企業が、ビジネス環境の激しい変化に対応するため、
テクノロジーを活用したビジネスの変革(DX)に取り組んでいる
店頭販売
対面接客
オンライン会員サービス
デジタルマーケティング
ECサイト・ショッピングアプリ
定額制
サブスクリプションサービス
顧客接点のDX
販売手段のDX
8Copyright (C) NRI digital, Ltd. All rights reserved.
NRIデジタルはお客様のビジネス変革の全てのフェーズに関わり、
多様な専門性を持つプロフェッショナルが協力してDXを推進している
構想・企画
デザイン・
設計
開発
テスト
リリースモニタリング
データ収集・
データ分析
可視化・
フィードバック
事業運営
お客様
ビジネスデザイナー
(専門性の例)
• ビジネスコンサルタント
• システムコンサルタント
• サービスデザイナー
• UI/UXデザイナー
アプリケーションデベロッパー
(専門性の例)
• プロジェクトマネージャー
• システムエンジニア
• スクラムマスター
• スクラムデベロッパー
プラットフォームアーキテクト
(専門性の例)
• アーキテクト
• インフラエンジニア
• データサイエンティスト
• データエンジニア
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
エンタープライズ(大企業)
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
ビジネスを変革するための経営トップの意思決定
DXやるぞ!
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
各事業会社の各部門で新サービスを検討
DXやるぞ!
やるぞ! やるぞ!やるぞ!
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
Web、モバイル、IoTなど新サービスが続々と開始
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
グループ横断のデータ活用により顧客体験を向上したい
グループの
シナジーを
発揮するぞ!
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
グループ横断のデータ活用により顧客体験を向上したい
グループの
シナジーを
発揮するぞ!
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
顧客IDを統合するために
********
同じ顧客IDで
紐付けたい
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
サービス側で認証連携と認可機能を実装する必要がある
********
認証連携・認可機能を実装
同じ顧客IDで
紐付けたい
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
認証・認可とは?
• 認証 (AuthN , Authentication)
• 相手が誰であるかを確認すること
例)ログインによる本人確認
• 認可 (AuthZ , Authorization)
• 誰かに許可を与えること
例)ログイン済みユーザにAPIへのアクセスを許可
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
認証・認可とは?
• 認証 (AuthN , Authentication)
• 相手が誰であるかを確認すること
例)ログインによる本人確認
• 認可 (AuthZ , Authorization)
• 誰かに許可を与えること
例)ログイン済みユーザにAPIへのアクセスを許可
OpenID Connect Authorization Code Flow
Relying Party OpenID Provider
Initiate
Request Authorization(Redirect)
Authentication & Authorization
Authorization Code(Redirect)
Authorization Code
Access Token + ID Token
UserInfo API
User ID etc.
参考: http://openid-foundation-japan.github.io/openid-connect-basic-1_0.ja.html
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
エンタープライズとサービス開発の要件を両立する
• エンタープライズの要件
• 共通の認証基盤・分析基盤を利用する
• グループ横断のデータ活用
• 共通のセキュリティ・ガバナンス
• グループ内他サービスとユーザ情報連携
• 他サービスの個別属性を連携する
例)会員ランク・住所など
• バッチによるファイルインターフェース
• サービス開発の要件
• 開発アジリティ
• サービス開発の実験と反復を繰り返し、
顧客により良い体験を提供したい
• ランニングコストの変動費化
• ユーザー数を明確に想定できないため、
ランニングコストが最初から固定費に
なるのは避けたい
• 運用の手離れの良さ
• 開発チームは他のサービスの開発にも
着手するため、ビジネスの差別化に
直結しない運用からは手離れしたい
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
アプリケーション開発を加速するための基本方針
• AWSのマネージドサービスを活用する
• アプリケーションで実装する機能の一部をマネージドサービスで実現
• 車輪の再発明がなくなる→コード量が減る→ビジネスロジックの開発に注力
例)認証・認可の機能をCognito/Amplifyで実装
• バックエンドの機能をサーバーレスで開発
• サーバーの運用管理がなくなる→インフラ運用がなくなり、コストは変動費に
• キャパシティ不足による機会損失やセキュリティリスクを最小化
• フロントエンド開発にリソースを集中する
• WebアプリはSingle Page Application(SPA)で開発する
• リッチで操作性の高いUIを提供しやすい
• フロントエンド(UI)とバックエンド(API)で開発者の関心事を分離できる
• モバイルアプリ向けAPIにバックエンドの流用が可能
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
本セッションの主役はこちら
Amazon Cognito
Webアプリ、モバイルアプリのための
シンプルでセキュアな認証・認可を提供
AWS Amplify
Webアプリ、モバイルアプリの作成、設定、
実装を加速するツールとサービスのセット
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
本セッションの主役はこちら
Amazon Cognito
Webアプリ、モバイルアプリのための
シンプルでセキュアな認証・認可を提供
• ユーザープール
アプリへのアクセスに利用できるトークンを提供
• IDプール
AWSにアクセスできるクレデンシャルを提供
• Cognito Sync
モバイルアプリとクラウド間のデータ同期を実現
AWS Amplify
Webアプリ、モバイルアプリの作成、設定、
実装を加速するツールとサービスのセット
• Amplify Framework
AWSのサービスで構築したバックエンドに直感的
なインターフェースで接続できるライブラリ
• Amplify CLI
AWSのサーバーレスなバックエンドを
コマンドラインで構築・管理するCLIツール
• Amplify Console
GitベースのSPAや静的サイトのCI/CDパイプライン
を提供する静的Webホスティングサービス
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
トークン・属性取得
API Services Batch Services
UI表示
Cognitoユーザープール
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
トークン・属性取得
API Services Batch Services
UI表示
Cognitoユーザープール
フロントエンド(UI)
バックエンド(API)
バック
エンド
(Batch)
共通認証基盤 他システム
サービス開発側の実装範囲
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
トークン・属性取得
API Services Batch Services
UI表示
Cognitoユーザープール
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
トークン・属性取得
API Services Batch Services
UI表示
Cognitoユーザープール
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
トークン・属性取得
API Services Batch Services
UI表示
Cognitoユーザープール
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
トークン・属性取得
API Services Batch Services
UI表示
Cognitoユーザープール
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
トークン・属性取得
API Services Batch Services
UI表示
Cognitoユーザープール
OpenID ConnectのInitiateリクエスト
https://XXXXXXXXXXX.auth.ap-northeast-1.amazoncognito.com/oauth2/authorize?redirect_uri=http%3A%2F%2
Flocalhost%3A3000%2F&response_type=code&client_id=7o8ves8p5rq6q6o7i0mise4mbo&identity_provider=Id
P&scope=email%20openid%20profile%20aws.cognito.signin.user.admin&state=NQNc0Lpkc2GCM8rxQj1ECYsio
4FIoUoe&code_challenge=FvgiKIf8J4lbTd42Pj-CNF5ykPZaAqZICTO4Q3EY8xc&code_challenge_method=S256
CSRF対策
戻ってきたリダイレクトのクエリ文字列に同じstateパラメータが設定されていること
?code=e0e91d0a-66a5-45cf-9afd-77117e3e26f0&state=NQNc0Lpkc2GCM8rxQj1ECYsio4FIoUoe
PKCE:Proof Key for Code Exchange (RFC 7636) 認可コード横取り対策
トークンエンドポイントを呼び出したクライアントが、ハッシュ化前のcode_challenge
の値(code_verifier)を含めてアクセスしていること
code_verifier: 1U2UYEWnf3OYaSBKJQltCQ8S4fQb5XZBcWA2YoVRiN5e8I5Sk3yWyIJuiR58J5Ncdbs1YACHWKUYER
m81UzYy7nEEpCRPqxUsDCr5jGnA4cfC9Y5eJCfzVD85D1cTxTE
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
トークン・属性取得
API Services Batch Services
UI表示
Cognitoユーザープール
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
Cognitoユーザプール
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
IDトークン・アクセストークン・属性取得
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-enable-cognito-user-pool.html
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
AWS Cloud
Client AWS Cloud
ソリューション構成
フロントエンド(UI)
React/Amplify を利用したSPA
CloudFront/S3 にホスティング
バックエンド(API)
Cognito
API Gateway
Lambda
DynamoDB
バックエンド(Batch)
S3
Glue
共通認証基盤(OpenID Connect Provider)
共通属性
Single
Page
Application
認可コード取得
Amazon S3
(静的サイトホスティング用)
トークン取得
Amazon API
Gateway
Amazon Cognito
OpenID Connect 認証
Authorization Code Flow
APIアクセス
基幹システム/他サービスなど
ユーザ属性
AWS Lambda
Amazon
DynamoDB
Amazon CloudFront
ユーザ属性取得
• Cognito固有ユーザ情報
• 標準属性(OIDC仕様)
• カスタム属性
COGNITO_USER_POOLS
オーソライザー
AWS Glue
HTML取得
Amazon S3
ファイルインターフェース
サインイン開始
ユーザ認証
ユーザ情報DB
Redirect
Redirect
Redirect
トークン・属性取得
API Services Batch Services
UI表示
Cognitoユーザープール
更新頻度が少なく※利用頻度の多い属性を、Cognitoの
カスタム属性に反映することで、フロントエンド・
バックエンドのアプリケーションで扱いやすくなるた
め、一部をカスタム属性としてboto3で登録
※更新頻度が多い属性をユーザープール属性とするのは推奨されていない
https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/user-pool-settings-attributes.html
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
エンタープライズとサービス開発の要件を両立する
• エンタープライズの要件
• 共通の認証基盤・分析基盤を利用する
• グループ横断のデータ活用
• 共通のセキュリティ・ガバナンス
• グループ内他サービスとユーザ情報連携
• 他サービスの個別属性を連携する
例)会員ランク・住所など
• バッチによるファイルインターフェース
• サービス開発の要件
• 開発アジリティ
• サービス開発の実験と反復を繰り返し、
顧客により良い体験を提供したい
• ランニングコストの変動費化
• ユーザー数を明確に想定できないため、
ランニングコストが最初から固定費に
なるのは避けたい
• 運用の手離れの良さ
• 開発チームは他のサービスの開発にも
着手するため、ビジネスの差別化に
直結しない運用からは手離れしたい
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
In Partnership with
• エンタープライズで新サービス開発をする際、認証やデータの連携は
避けて通れない課題となり、開発アジリティとのトレードオフが発生
• Cognito/Amplifyは、独自のユーザ認証・ユーザ管理を実現するためだけ
でなく、OpenID Connect Providerと認証連携可能なアプリケーションを
素早く実装するために活用できる
• マネージドサービスやサーバーレスは開発・運用コストの削減効果が
大きいが、エンタープライズに求められる要件を充足するどうかは、
“信頼しつつも検証すべき”
本日お話ししたかったこと
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
/
エンタープライズの認証・認可要件を
素早く実現するために、Cognitoや
Amplifyを活用してアプリケーションの
開発を加速させましょう
\
ご清聴ありがとうございました!
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
安藤 裕紀
y-ando@nri-digital.jp
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
20-22.10.2020

More Related Content

What's hot

Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeKazuki Takai
 
AWSの最新動向と事例から知る クラウド利用の進化と真価
AWSの最新動向と事例から知る クラウド利用の進化と真価AWSの最新動向と事例から知る クラウド利用の進化と真価
AWSの最新動向と事例から知る クラウド利用の進化と真価Trainocate Japan, Ltd.
 
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかたJAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかたYutaro Ono
 
AWS市場動向と求められる人材、その育成方法について
AWS市場動向と求められる人材、その育成方法についてAWS市場動向と求められる人材、その育成方法について
AWS市場動向と求められる人材、その育成方法についてTrainocate Japan, Ltd.
 
猫でも分かる Android WebKit
猫でも分かる Android WebKit猫でも分かる Android WebKit
猫でも分かる Android WebKitNaruto TAKAHASHI
 
Azure update flash
Azure update flashAzure update flash
Azure update flashMinoru Naito
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...Shotaro Suzuki
 
Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Ayumu Inaba
 
クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現Minoru Naito
 
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81Minoru Naito
 
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれオートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれDeNA
 
AWS市場動向と求められる人材、その育成方法について
AWS市場動向と求められる人材、その育成方法について AWS市場動向と求められる人材、その育成方法について
AWS市場動向と求められる人材、その育成方法について Trainocate Japan, Ltd.
 
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&AtlasMongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&Atlas昌桓 李
 
AWS & Google Cloud 両方を駆使するチームでの技術選定
AWS & Google Cloud  両方を駆使するチームでの技術選定AWS & Google Cloud  両方を駆使するチームでの技術選定
AWS & Google Cloud 両方を駆使するチームでの技術選定修一 高橋
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Katsunori Kanda
 
ぼうけんにでかけよう Kubernetes KEDA
ぼうけんにでかけよう Kubernetes KEDAぼうけんにでかけよう Kubernetes KEDA
ぼうけんにでかけよう Kubernetes KEDATsukasa Kato
 
Building simple-app-using-.net 6 asp.net core web api-blazor web assembly-ela...
Building simple-app-using-.net 6 asp.net core web api-blazor web assembly-ela...Building simple-app-using-.net 6 asp.net core web api-blazor web assembly-ela...
Building simple-app-using-.net 6 asp.net core web api-blazor web assembly-ela...Shotaro Suzuki
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介Shotaro Suzuki
 

What's hot (20)

Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & Scope
 
AWSの最新動向と事例から知る クラウド利用の進化と真価
AWSの最新動向と事例から知る クラウド利用の進化と真価AWSの最新動向と事例から知る クラウド利用の進化と真価
AWSの最新動向と事例から知る クラウド利用の進化と真価
 
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかたJAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
JAWS-UG初心者支部 - 2020-01-29 - マルチアカウント運用のはじめかた
 
AWS市場動向と求められる人材、その育成方法について
AWS市場動向と求められる人材、その育成方法についてAWS市場動向と求められる人材、その育成方法について
AWS市場動向と求められる人材、その育成方法について
 
猫でも分かる Android WebKit
猫でも分かる Android WebKit猫でも分かる Android WebKit
猫でも分かる Android WebKit
 
Azure update flash
Azure update flashAzure update flash
Azure update flash
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 
Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221
 
クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現
 
Sum awsloft tko-iotloft-10-lt4-may-2020
Sum awsloft tko-iotloft-10-lt4-may-2020Sum awsloft tko-iotloft-10-lt4-may-2020
Sum awsloft tko-iotloft-10-lt4-may-2020
 
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
 
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれオートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
 
AWS市場動向と求められる人材、その育成方法について
AWS市場動向と求められる人材、その育成方法について AWS市場動向と求められる人材、その育成方法について
AWS市場動向と求められる人材、その育成方法について
 
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&AtlasMongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
 
AWS & Google Cloud 両方を駆使するチームでの技術選定
AWS & Google Cloud  両方を駆使するチームでの技術選定AWS & Google Cloud  両方を駆使するチームでの技術選定
AWS & Google Cloud 両方を駆使するチームでの技術選定
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
 
ぼうけんにでかけよう Kubernetes KEDA
ぼうけんにでかけよう Kubernetes KEDAぼうけんにでかけよう Kubernetes KEDA
ぼうけんにでかけよう Kubernetes KEDA
 
Building simple-app-using-.net 6 asp.net core web api-blazor web assembly-ela...
Building simple-app-using-.net 6 asp.net core web api-blazor web assembly-ela...Building simple-app-using-.net 6 asp.net core web api-blazor web assembly-ela...
Building simple-app-using-.net 6 asp.net core web api-blazor web assembly-ela...
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 

Similar to [AWS DevDay] Cognito / Amplify で加速するエンタープライズのアプリケーション開発

Scale Your Business without Servers
Scale Your Business without ServersScale Your Business without Servers
Scale Your Business without ServersKeisuke Nishitani
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用Amazon Web Services Japan
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAmazon Web Services Japan
 
20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in ServerlessAmazon Web Services Japan
 
Management & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできますManagement & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできますAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法Jun Ichikawa
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...Amazon Web Services Japan
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方Amazon Web Services Japan
 
Windows Server 2019 Active Directory related information
Windows Server 2019  Active Directory related informationWindows Server 2019  Active Directory related information
Windows Server 2019 Active Directory related informationMari Miyakawa
 
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonightAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみたマルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた桂一 中山
 
AWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdfAWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdfHayato Kiriyama
 

Similar to [AWS DevDay] Cognito / Amplify で加速するエンタープライズのアプリケーション開発 (20)

Scale Your Business without Servers
Scale Your Business without ServersScale Your Business without Servers
Scale Your Business without Servers
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS AmplifyAWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
 
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
 
20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless
 
Management & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできますManagement & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできます
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法
 
03_AWS IoTのDRを考える
03_AWS IoTのDRを考える03_AWS IoTのDRを考える
03_AWS IoTのDRを考える
 
AWS All Stars ~Lightning Talks x 13~
AWS All Stars ~Lightning Talks x 13~AWS All Stars ~Lightning Talks x 13~
AWS All Stars ~Lightning Talks x 13~
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
 
AWS Black Belt Online Seminar 2016 AWS IoT
AWS Black Belt Online Seminar 2016 AWS IoTAWS Black Belt Online Seminar 2016 AWS IoT
AWS Black Belt Online Seminar 2016 AWS IoT
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方
 
Windows Server 2019 Active Directory related information
Windows Server 2019  Active Directory related informationWindows Server 2019  Active Directory related information
Windows Server 2019 Active Directory related information
 
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
 
20201125 EC Solution Seminar Notification
20201125 EC Solution Seminar Notification20201125 EC Solution Seminar Notification
20201125 EC Solution Seminar Notification
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみたマルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
 
AWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdfAWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdf
 

Recently uploaded

YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。iPride Co., Ltd.
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matchingharmonylab
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...atsushi061452
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルCRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptxyassun7010
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizesatsushi061452
 

Recently uploaded (14)

【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 

[AWS DevDay] Cognito / Amplify で加速するエンタープライズのアプリケーション開発

  • 1. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with Cognito/Amplify で加速する エンタープライズのアプリケーション開発 安藤 裕紀 プラットフォームアーキテクト NRIデジタル株式会社 S e s s i o n B - 2
  • 2. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with 自己紹介 安藤 裕紀(あんどう ゆうき) • NRIデジタル プラットフォームアーキテクト (2011年 野村総合研究所入社、2017年 NRIデジタル出向) • Webシステムのサーバ構築・運用を中心としたインフラエンジニア として流通・金融・製造など複数業種の技術支援を経験 • ここ最近は、AWS上に構築されたECサイトや会員サービスの 開発運用を効率化すべくSRE / DevOpsエンジニア寄りの業務に従事 • 2020 APN AWS Top Engineers選出
  • 3. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with 本日お話しすること(セッション概要より) エンタープライズの新サービスを開発する際、企業はグループ内の複数のサービスを 横断した顧客体験の向上とデータ活用によってビジネスの価値を高めようとします。 そこで必要になるのが、エンドユーザの認証の統合とサービスごとの認可の制御です。 Cognito/Amplifyは新サービスを開発する際に認証機能を素早く実装する手段として知 られていますが、IDaaSと連携した認証とサービスに必要な認可の機能を実装するため に利用することで、エンタープライズが求める認証・認可を素早く実現するノウハウ をお伝えします。
  • 4. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with アジェンダ • NRIデジタルについて • エンタープライズに認証・認可が求められる背景 • アプリケーション開発を加速するためのAWSマネージドサービス活用 • まとめ
  • 5. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
  • 6. 6Copyright (C) NRI digital, Ltd. All rights reserved. 野村総合研究所(NRI)グループの デジタルビジネス専門の戦略子会社 NRIグループ内外から組織の壁を超えて 集結した多様なプロフェッショナルが ”ワンチーム”で、お客様と共に デジタルによるビジネス変革を推進 多様なプロフェッショナルが集結 新たなテクノロジー領域への挑戦 価値共創型のビジネス創出
  • 7. 7Copyright (C) NRI digital, Ltd. All rights reserved. 多くの企業が、ビジネス環境の激しい変化に対応するため、 テクノロジーを活用したビジネスの変革(DX)に取り組んでいる 店頭販売 対面接客 オンライン会員サービス デジタルマーケティング ECサイト・ショッピングアプリ 定額制 サブスクリプションサービス 顧客接点のDX 販売手段のDX
  • 8. 8Copyright (C) NRI digital, Ltd. All rights reserved. NRIデジタルはお客様のビジネス変革の全てのフェーズに関わり、 多様な専門性を持つプロフェッショナルが協力してDXを推進している 構想・企画 デザイン・ 設計 開発 テスト リリースモニタリング データ収集・ データ分析 可視化・ フィードバック 事業運営 お客様 ビジネスデザイナー (専門性の例) • ビジネスコンサルタント • システムコンサルタント • サービスデザイナー • UI/UXデザイナー アプリケーションデベロッパー (専門性の例) • プロジェクトマネージャー • システムエンジニア • スクラムマスター • スクラムデベロッパー プラットフォームアーキテクト (専門性の例) • アーキテクト • インフラエンジニア • データサイエンティスト • データエンジニア
  • 9. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
  • 10. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with エンタープライズ(大企業)
  • 11. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with ビジネスを変革するための経営トップの意思決定 DXやるぞ!
  • 12. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with 各事業会社の各部門で新サービスを検討 DXやるぞ! やるぞ! やるぞ!やるぞ!
  • 13. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with Web、モバイル、IoTなど新サービスが続々と開始
  • 14. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with グループ横断のデータ活用により顧客体験を向上したい グループの シナジーを 発揮するぞ!
  • 15. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with グループ横断のデータ活用により顧客体験を向上したい グループの シナジーを 発揮するぞ!
  • 16. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with 顧客IDを統合するために ******** 同じ顧客IDで 紐付けたい
  • 17. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with サービス側で認証連携と認可機能を実装する必要がある ******** 認証連携・認可機能を実装 同じ顧客IDで 紐付けたい
  • 18. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with 認証・認可とは? • 認証 (AuthN , Authentication) • 相手が誰であるかを確認すること 例)ログインによる本人確認 • 認可 (AuthZ , Authorization) • 誰かに許可を与えること 例)ログイン済みユーザにAPIへのアクセスを許可
  • 19. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with 認証・認可とは? • 認証 (AuthN , Authentication) • 相手が誰であるかを確認すること 例)ログインによる本人確認 • 認可 (AuthZ , Authorization) • 誰かに許可を与えること 例)ログイン済みユーザにAPIへのアクセスを許可 OpenID Connect Authorization Code Flow Relying Party OpenID Provider Initiate Request Authorization(Redirect) Authentication & Authorization Authorization Code(Redirect) Authorization Code Access Token + ID Token UserInfo API User ID etc. 参考: http://openid-foundation-japan.github.io/openid-connect-basic-1_0.ja.html
  • 20. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
  • 21. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with エンタープライズとサービス開発の要件を両立する • エンタープライズの要件 • 共通の認証基盤・分析基盤を利用する • グループ横断のデータ活用 • 共通のセキュリティ・ガバナンス • グループ内他サービスとユーザ情報連携 • 他サービスの個別属性を連携する 例)会員ランク・住所など • バッチによるファイルインターフェース • サービス開発の要件 • 開発アジリティ • サービス開発の実験と反復を繰り返し、 顧客により良い体験を提供したい • ランニングコストの変動費化 • ユーザー数を明確に想定できないため、 ランニングコストが最初から固定費に なるのは避けたい • 運用の手離れの良さ • 開発チームは他のサービスの開発にも 着手するため、ビジネスの差別化に 直結しない運用からは手離れしたい
  • 22. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with アプリケーション開発を加速するための基本方針 • AWSのマネージドサービスを活用する • アプリケーションで実装する機能の一部をマネージドサービスで実現 • 車輪の再発明がなくなる→コード量が減る→ビジネスロジックの開発に注力 例)認証・認可の機能をCognito/Amplifyで実装 • バックエンドの機能をサーバーレスで開発 • サーバーの運用管理がなくなる→インフラ運用がなくなり、コストは変動費に • キャパシティ不足による機会損失やセキュリティリスクを最小化 • フロントエンド開発にリソースを集中する • WebアプリはSingle Page Application(SPA)で開発する • リッチで操作性の高いUIを提供しやすい • フロントエンド(UI)とバックエンド(API)で開発者の関心事を分離できる • モバイルアプリ向けAPIにバックエンドの流用が可能
  • 23. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with 本セッションの主役はこちら Amazon Cognito Webアプリ、モバイルアプリのための シンプルでセキュアな認証・認可を提供 AWS Amplify Webアプリ、モバイルアプリの作成、設定、 実装を加速するツールとサービスのセット
  • 24. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with 本セッションの主役はこちら Amazon Cognito Webアプリ、モバイルアプリのための シンプルでセキュアな認証・認可を提供 • ユーザープール アプリへのアクセスに利用できるトークンを提供 • IDプール AWSにアクセスできるクレデンシャルを提供 • Cognito Sync モバイルアプリとクラウド間のデータ同期を実現 AWS Amplify Webアプリ、モバイルアプリの作成、設定、 実装を加速するツールとサービスのセット • Amplify Framework AWSのサービスで構築したバックエンドに直感的 なインターフェースで接続できるライブラリ • Amplify CLI AWSのサーバーレスなバックエンドを コマンドラインで構築・管理するCLIツール • Amplify Console GitベースのSPAや静的サイトのCI/CDパイプライン を提供する静的Webホスティングサービス
  • 25. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect トークン・属性取得 API Services Batch Services UI表示 Cognitoユーザープール
  • 26. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect トークン・属性取得 API Services Batch Services UI表示 Cognitoユーザープール フロントエンド(UI) バックエンド(API) バック エンド (Batch) 共通認証基盤 他システム サービス開発側の実装範囲
  • 27. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect トークン・属性取得 API Services Batch Services UI表示 Cognitoユーザープール
  • 28. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect トークン・属性取得 API Services Batch Services UI表示 Cognitoユーザープール
  • 29. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect トークン・属性取得 API Services Batch Services UI表示 Cognitoユーザープール
  • 30. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect トークン・属性取得 API Services Batch Services UI表示 Cognitoユーザープール
  • 31. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect トークン・属性取得 API Services Batch Services UI表示 Cognitoユーザープール OpenID ConnectのInitiateリクエスト https://XXXXXXXXXXX.auth.ap-northeast-1.amazoncognito.com/oauth2/authorize?redirect_uri=http%3A%2F%2 Flocalhost%3A3000%2F&response_type=code&client_id=7o8ves8p5rq6q6o7i0mise4mbo&identity_provider=Id P&scope=email%20openid%20profile%20aws.cognito.signin.user.admin&state=NQNc0Lpkc2GCM8rxQj1ECYsio 4FIoUoe&code_challenge=FvgiKIf8J4lbTd42Pj-CNF5ykPZaAqZICTO4Q3EY8xc&code_challenge_method=S256 CSRF対策 戻ってきたリダイレクトのクエリ文字列に同じstateパラメータが設定されていること ?code=e0e91d0a-66a5-45cf-9afd-77117e3e26f0&state=NQNc0Lpkc2GCM8rxQj1ECYsio4FIoUoe PKCE:Proof Key for Code Exchange (RFC 7636) 認可コード横取り対策 トークンエンドポイントを呼び出したクライアントが、ハッシュ化前のcode_challenge の値(code_verifier)を含めてアクセスしていること code_verifier: 1U2UYEWnf3OYaSBKJQltCQ8S4fQb5XZBcWA2YoVRiN5e8I5Sk3yWyIJuiR58J5Ncdbs1YACHWKUYER m81UzYy7nEEpCRPqxUsDCr5jGnA4cfC9Y5eJCfzVD85D1cTxTE
  • 32. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect トークン・属性取得 API Services Batch Services UI表示 Cognitoユーザープール
  • 33. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 Cognitoユーザプール • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect IDトークン・アクセストークン・属性取得 https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-enable-cognito-user-pool.html
  • 34. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with AWS Cloud Client AWS Cloud ソリューション構成 フロントエンド(UI) React/Amplify を利用したSPA CloudFront/S3 にホスティング バックエンド(API) Cognito API Gateway Lambda DynamoDB バックエンド(Batch) S3 Glue 共通認証基盤(OpenID Connect Provider) 共通属性 Single Page Application 認可コード取得 Amazon S3 (静的サイトホスティング用) トークン取得 Amazon API Gateway Amazon Cognito OpenID Connect 認証 Authorization Code Flow APIアクセス 基幹システム/他サービスなど ユーザ属性 AWS Lambda Amazon DynamoDB Amazon CloudFront ユーザ属性取得 • Cognito固有ユーザ情報 • 標準属性(OIDC仕様) • カスタム属性 COGNITO_USER_POOLS オーソライザー AWS Glue HTML取得 Amazon S3 ファイルインターフェース サインイン開始 ユーザ認証 ユーザ情報DB Redirect Redirect Redirect トークン・属性取得 API Services Batch Services UI表示 Cognitoユーザープール 更新頻度が少なく※利用頻度の多い属性を、Cognitoの カスタム属性に反映することで、フロントエンド・ バックエンドのアプリケーションで扱いやすくなるた め、一部をカスタム属性としてboto3で登録 ※更新頻度が多い属性をユーザープール属性とするのは推奨されていない https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/user-pool-settings-attributes.html
  • 35. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with エンタープライズとサービス開発の要件を両立する • エンタープライズの要件 • 共通の認証基盤・分析基盤を利用する • グループ横断のデータ活用 • 共通のセキュリティ・ガバナンス • グループ内他サービスとユーザ情報連携 • 他サービスの個別属性を連携する 例)会員ランク・住所など • バッチによるファイルインターフェース • サービス開発の要件 • 開発アジリティ • サービス開発の実験と反復を繰り返し、 顧客により良い体験を提供したい • ランニングコストの変動費化 • ユーザー数を明確に想定できないため、 ランニングコストが最初から固定費に なるのは避けたい • 運用の手離れの良さ • 開発チームは他のサービスの開発にも 着手するため、ビジネスの差別化に 直結しない運用からは手離れしたい
  • 36. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with
  • 37. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. In Partnership with • エンタープライズで新サービス開発をする際、認証やデータの連携は 避けて通れない課題となり、開発アジリティとのトレードオフが発生 • Cognito/Amplifyは、独自のユーザ認証・ユーザ管理を実現するためだけ でなく、OpenID Connect Providerと認証連携可能なアプリケーションを 素早く実装するために活用できる • マネージドサービスやサーバーレスは開発・運用コストの削減効果が 大きいが、エンタープライズに求められる要件を充足するどうかは、 “信頼しつつも検証すべき” 本日お話ししたかったこと
  • 38. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with / エンタープライズの認証・認可要件を 素早く実現するために、Cognitoや Amplifyを活用してアプリケーションの 開発を加速させましょう \
  • 39. ご清聴ありがとうございました! © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with 安藤 裕紀 y-ando@nri-digital.jp
  • 40. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.In Partnership with 20-22.10.2020