SlideShare a Scribd company logo
1 of 32
Download to read offline
Sansan株式会社
古川 真次
Google I/O 2022
Sign-in関連
Sansan技術本部
- 新端末でログイン画面をすっ飛ばす〜Block Store〜
- Googleの機構を使ったログイン〜OneTap〜
- Webのログインにスマホの生体認証を使う〜PassKeys〜
- 情報はほぼ全てここからです
- Android solutions for seamless sign-in across devices
- https://www.youtube.com/watch?v=xghjqgj4peA
目次
新端末でログイン画面をすっ飛ばす
〜Block Store〜
新端末でログイン画面をすっ飛ばす〜Block Store〜
- 機種変更などで別端末でアプリを利用する際にログイン画面をスキップできる
- ログイン時のTokenを端末やクラウド上に保存し、新端末で利用する
- 保存するTokenは暗号化される
- https://developers.google.com/identity/blockstore/android?hl=en
端末OS要件
- End-To-Endの暗号化はAndroid9以上
- 必須要件:端末はスクリーンロックが設定されている
- PINコード、パターン、パスワード
- 暗号化しない場合はAndroid6以上
- クラウドバックアップからのリストア
- 旧端末:Android6以上
- 新端末:端末ベンダーによる。PixelはAndroid9から。Pixel以外は基本的に
Android12以上と思ってたほうがよい
Block Storeの仕組み
実際のコード~Block Store~
- OSバージョンの制限がある。特に暗号化
- 「Tokenはずっと生きてるものではない」事の考慮が必要
BlockStoreの注意点
Googleの機構を使ったログイン
〜OneTap〜
private fun initOneTap() {
signInClient = Identity.getSignInClient(this)
signInRequest = BeginSignInRequest.builder()
.setPasswordRequestOptions(
BeginSignInRequest.PasswordRequestOptions.builder()
.setSupported(true)
.build()
)
.setGoogleIdTokenRequestOptions(
BeginSignInRequest.GoogleIdTokenRequestOptions.builder()
.setSupported(true)
.setServerClientId("Your own ServerId")
.setFilterByAuthorizedAccounts(true)
.build()
)
.setAutoSelectEnabled(true)
.build()
}
private fun initOneTap() {
signInClient = Identity.getSignInClient(this)
signInRequest = BeginSignInRequest.builder()
.setPasswordRequestOptions(
BeginSignInRequest.PasswordRequestOptions.builder()
.setSupported(true)
.build()
)
.setGoogleIdTokenRequestOptions(
BeginSignInRequest.GoogleIdTokenRequestOptions.builder()
.setSupported(true)
.setServerClientId("Your own ServerId")
.setFilterByAuthorizedAccounts(true)
.build()
)
.setAutoSelectEnabled(true)
.build()
}
private fun showSignInView() {
signInClient.beginSignIn(signInRequest)
.addOnSuccessListener(this) { result ->
try {
startIntentSenderForResult(
result.pendingIntent.intentSender,
0, null, 0, 0, 0, null
)
} catch (exception: Exception) {
Log.e(TAG, exception.localizedMessage)
}
}
.addOnFailureListener(this) { exception ->
Log.d(TAG, exception.localizedMessage)
}
}
private fun showSignInView() {
signInClient.beginSignIn(signInRequest)
.addOnSuccessListener(this) { result ->
try {
startIntentSenderForResult(
result.pendingIntent.intentSender,
0, null, 0, 0, 0, null
)
} catch (exception: Exception) {
Log.e(TAG, exception.localizedMessage)
}
}
.addOnFailureListener(this) { exception ->
Log.d(TAG, exception.localizedMessage)
}
}
- 公式ドキュメント(英語)で紹介されてるやり方もDeprecatedになってるぞ
OneTapの注意点
Webのログインにスマホの生体認証を使う
〜PassKeys〜
PassKey
https://developers.google.com/identity/fido
- OneTapでSign-in with Googleの実装が楽
- ログインした時のTokenをBlockStoreに保存すれば機種変が楽
- コード量もそんなに多くない
- 検証はめんどくさそう
- PassKeysがあればスマホの生体認証でWebにログインできる
- 1回セットアップしちゃえば2回目以降もササッとできる
まとめ
Happy Coding!

More Related Content

Similar to Google I_O 2022 Sign-in関連

[SC14] IoT のセキュリティアーキテクチャと実装モデル
[SC14] IoT のセキュリティアーキテクチャと実装モデル[SC14] IoT のセキュリティアーキテクチャと実装モデル
[SC14] IoT のセキュリティアーキテクチャと実装モデルde:code 2017
 
Cloud Identity Summit 2012 TOI
Cloud Identity Summit 2012 TOICloud Identity Summit 2012 TOI
Cloud Identity Summit 2012 TOITatsuo Kudo
 
VisualStudioでマイコンボードを制御する
VisualStudioでマイコンボードを制御するVisualStudioでマイコンボードを制御する
VisualStudioでマイコンボードを制御するTadahiro Kimura
 
DroidKaigi2016 windows環境での効率的なアプリ開発手法
DroidKaigi2016 windows環境での効率的なアプリ開発手法DroidKaigi2016 windows環境での効率的なアプリ開発手法
DroidKaigi2016 windows環境での効率的なアプリ開発手法tkawashita
 
[DDBJing34] NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
[DDBJing34]  NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)[DDBJing34]  NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
[DDBJing34] NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)DNA Data Bank of Japan center
 
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)DNA Data Bank of Japan center
 

Similar to Google I_O 2022 Sign-in関連 (7)

PIXELA passport ID
PIXELA passport IDPIXELA passport ID
PIXELA passport ID
 
[SC14] IoT のセキュリティアーキテクチャと実装モデル
[SC14] IoT のセキュリティアーキテクチャと実装モデル[SC14] IoT のセキュリティアーキテクチャと実装モデル
[SC14] IoT のセキュリティアーキテクチャと実装モデル
 
Cloud Identity Summit 2012 TOI
Cloud Identity Summit 2012 TOICloud Identity Summit 2012 TOI
Cloud Identity Summit 2012 TOI
 
VisualStudioでマイコンボードを制御する
VisualStudioでマイコンボードを制御するVisualStudioでマイコンボードを制御する
VisualStudioでマイコンボードを制御する
 
DroidKaigi2016 windows環境での効率的なアプリ開発手法
DroidKaigi2016 windows環境での効率的なアプリ開発手法DroidKaigi2016 windows環境での効率的なアプリ開発手法
DroidKaigi2016 windows環境での効率的なアプリ開発手法
 
[DDBJing34] NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
[DDBJing34]  NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)[DDBJing34]  NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
[DDBJing34] NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
 
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
 

More from furusin

Difficulty of managing iOS Engineers as an Android Engineer.pdf
Difficulty of managing iOS Engineers as an Android Engineer.pdfDifficulty of managing iOS Engineers as an Android Engineer.pdf
Difficulty of managing iOS Engineers as an Android Engineer.pdffurusin
 
Google Play In-App Review API 改めて調べてみた
Google Play In-App Review API 改めて調べてみたGoogle Play In-App Review API 改めて調べてみた
Google Play In-App Review API 改めて調べてみたfurusin
 
Sansan androidチームが取り組む コードレビューを早くまわす工夫
Sansan androidチームが取り組む コードレビューを早くまわす工夫Sansan androidチームが取り組む コードレビューを早くまわす工夫
Sansan androidチームが取り組む コードレビューを早くまわす工夫furusin
 
Google I/O 2021 Recap
Google I/O 2021 RecapGoogle I/O 2021 Recap
Google I/O 2021 Recapfurusin
 
Paging Libraryの利用をやめたいお気持ち表明
Paging Libraryの利用をやめたいお気持ち表明Paging Libraryの利用をやめたいお気持ち表明
Paging Libraryの利用をやめたいお気持ち表明furusin
 
Jetpack datastore入門
Jetpack datastore入門Jetpack datastore入門
Jetpack datastore入門furusin
 
コロナ禍でコミュニティ運営はこう変わった
コロナ禍でコミュニティ運営はこう変わったコロナ禍でコミュニティ運営はこう変わった
コロナ禍でコミュニティ運営はこう変わったfurusin
 
Android dev summit 2019 recap
Android dev summit 2019 recapAndroid dev summit 2019 recap
Android dev summit 2019 recapfurusin
 
Android billing library 2.0 recap
Android billing library 2.0 recapAndroid billing library 2.0 recap
Android billing library 2.0 recapfurusin
 
Android Qにおける Gestural Navigation and Dark Theme
Android Qにおける Gestural Navigation and Dark ThemeAndroid Qにおける Gestural Navigation and Dark Theme
Android Qにおける Gestural Navigation and Dark Themefurusin
 
社内システムにおける 「使いやすさ」の重要性
社内システムにおける 「使いやすさ」の重要性社内システムにおける 「使いやすさ」の重要性
社内システムにおける 「使いやすさ」の重要性furusin
 
デザインフローについて考え直す
デザインフローについて考え直すデザインフローについて考え直す
デザインフローについて考え直すfurusin
 
Build your first wear app
Build your first wear appBuild your first wear app
Build your first wear appfurusin
 
ネイティブAndroidエンジニアがVueNativeでiOSアプリを作ってみた
ネイティブAndroidエンジニアがVueNativeでiOSアプリを作ってみたネイティブAndroidエンジニアがVueNativeでiOSアプリを作ってみた
ネイティブAndroidエンジニアがVueNativeでiOSアプリを作ってみたfurusin
 
Pray for hokkaido from osaka
Pray for hokkaido from osakaPray for hokkaido from osaka
Pray for hokkaido from osakafurusin
 
Google Codelabsをやってみた
Google CodelabsをやってみたGoogle Codelabsをやってみた
Google Codelabsをやってみたfurusin
 
個人開発アプリの紹介と実装内容の概要
個人開発アプリの紹介と実装内容の概要個人開発アプリの紹介と実装内容の概要
個人開発アプリの紹介と実装内容の概要furusin
 

More from furusin (17)

Difficulty of managing iOS Engineers as an Android Engineer.pdf
Difficulty of managing iOS Engineers as an Android Engineer.pdfDifficulty of managing iOS Engineers as an Android Engineer.pdf
Difficulty of managing iOS Engineers as an Android Engineer.pdf
 
Google Play In-App Review API 改めて調べてみた
Google Play In-App Review API 改めて調べてみたGoogle Play In-App Review API 改めて調べてみた
Google Play In-App Review API 改めて調べてみた
 
Sansan androidチームが取り組む コードレビューを早くまわす工夫
Sansan androidチームが取り組む コードレビューを早くまわす工夫Sansan androidチームが取り組む コードレビューを早くまわす工夫
Sansan androidチームが取り組む コードレビューを早くまわす工夫
 
Google I/O 2021 Recap
Google I/O 2021 RecapGoogle I/O 2021 Recap
Google I/O 2021 Recap
 
Paging Libraryの利用をやめたいお気持ち表明
Paging Libraryの利用をやめたいお気持ち表明Paging Libraryの利用をやめたいお気持ち表明
Paging Libraryの利用をやめたいお気持ち表明
 
Jetpack datastore入門
Jetpack datastore入門Jetpack datastore入門
Jetpack datastore入門
 
コロナ禍でコミュニティ運営はこう変わった
コロナ禍でコミュニティ運営はこう変わったコロナ禍でコミュニティ運営はこう変わった
コロナ禍でコミュニティ運営はこう変わった
 
Android dev summit 2019 recap
Android dev summit 2019 recapAndroid dev summit 2019 recap
Android dev summit 2019 recap
 
Android billing library 2.0 recap
Android billing library 2.0 recapAndroid billing library 2.0 recap
Android billing library 2.0 recap
 
Android Qにおける Gestural Navigation and Dark Theme
Android Qにおける Gestural Navigation and Dark ThemeAndroid Qにおける Gestural Navigation and Dark Theme
Android Qにおける Gestural Navigation and Dark Theme
 
社内システムにおける 「使いやすさ」の重要性
社内システムにおける 「使いやすさ」の重要性社内システムにおける 「使いやすさ」の重要性
社内システムにおける 「使いやすさ」の重要性
 
デザインフローについて考え直す
デザインフローについて考え直すデザインフローについて考え直す
デザインフローについて考え直す
 
Build your first wear app
Build your first wear appBuild your first wear app
Build your first wear app
 
ネイティブAndroidエンジニアがVueNativeでiOSアプリを作ってみた
ネイティブAndroidエンジニアがVueNativeでiOSアプリを作ってみたネイティブAndroidエンジニアがVueNativeでiOSアプリを作ってみた
ネイティブAndroidエンジニアがVueNativeでiOSアプリを作ってみた
 
Pray for hokkaido from osaka
Pray for hokkaido from osakaPray for hokkaido from osaka
Pray for hokkaido from osaka
 
Google Codelabsをやってみた
Google CodelabsをやってみたGoogle Codelabsをやってみた
Google Codelabsをやってみた
 
個人開発アプリの紹介と実装内容の概要
個人開発アプリの紹介と実装内容の概要個人開発アプリの紹介と実装内容の概要
個人開発アプリの紹介と実装内容の概要
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (8)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

Google I_O 2022 Sign-in関連