2015/02/19 デブサミ2015 【19-C-5】OpenID ConnectとAndroidアプリのログインサイクル #devsumiC

Developers Summit 2015 Growth! http://event.shoeisha.jp/devsumi/20150219/session/654/ <講演概要> GoogleやFacebook、Yahoo! JAPANの提供するOAuth、OpenID Connectのシングルサインオン(SSO)を利用する上でトークン、ログイン状態の管理が必要になります。ログイン、ログアウトに加えアプリによってはマルチアカウント利用やアカウント切り替えを必要とするケースもあります。スマフォアプリではネイティブ、WebViewでSSOの認証方法が異なり、実装パターンは多岐にわたります。これまでID連携の設計や実装サポートしてきたナレッジをもとに、AndroidアプリにおけるSSOからログイン状態の管理まで、アプリの要件にあった実装方法をご紹介します。 続きを読む
2
tt @tora470

OpenID Connect話を聞きに来たぜ #devsumi #devsumic

2015-02-19 15:16:30
minamo @minamo173

ネイティヴアプリはセッション管理が大変 #devsumiC

2015-02-19 15:18:26
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: ID連携とは? 経産省のWebで紹介されている

2015-02-19 15:19:15
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: バックエンドのシステムの組み合わせだったり、ネイティブのアプリの組み合わせだったりでいろいろパターンがあるけど、今回は3つ紹介

2015-02-19 15:21:01
Shin Yoshida @shin4u2me

OpenID ConectとAndroidアプリのログイン #devsumiC

2015-02-19 15:21:13
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: Webアプリでのスタンダードなパターン、ネイティブアプリからブラウザーを立ち上げるパターン、ネイティブでトークンを保存しつつ、WebViewでもトークン使いたいパターン

2015-02-19 15:23:55
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: ハイブリッドのパターン。カスタムURIスキームを使って、ブラウザとネイティブアプリを行き来する。WebViewの中に、そのサイト内での認証結果を基にCookie発行して、サーバーにトークンを保存

2015-02-19 15:25:35
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: トークン3種類。アクセストークン、それの有効期限が切れたときに使うリフレッシュトークン、そしてIDトークン

2015-02-19 15:26:23
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: OpenID Connect、ふたつのトークンの物語 blog.openid.or.jp/post/128740611… (むかし翻訳したこれ、まだ残ってたのか)

2015-02-19 15:27:25
キハ( ˘ ³˘)♥58系 @bump_of_kiharu

アクセストークンとIDトークンがなぜ2つ存在しているのか?という話で出てきたのはこれかな?後で読む blog.openid.or.jp/post/128740611… #devsumiC

2015-02-19 15:27:31
マイペンライ @golden_eggg

#devsumiC / “OpenIDファウンデーション・ジャパン — OpenID Connect, ふたつのトークンの物語” htn.to/9o2NoC

2015-02-19 15:27:51
minamo @minamo173

おお…このログインサイクル図はわかりやすくて有難いです。 #devsumiC

2015-02-19 15:29:35
nov matake @nov

ログアウト時にaccess tokenは無効化すべきか。refresh tokenは? #devsumi #devsumiC

2015-02-19 15:30:53
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: クッキー、アクセストークン、リフレッシュトークン、IDトークンについて、それぞれ有効・無効がある。ログイン時にはすべて有効、ログアウト時にはCookieは無効だけど、他のトークンは無効にすべきだろうか? クッキーの有効期限切れの場合には?

2015-02-19 15:31:09
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: トークンとCookieの有効・無効は難しい

2015-02-19 15:31:52
nov matake @nov

ID Token = issuerがaudienceのためにend-userを認証したことを示すトークン #devsumi #devsumiC

2015-02-19 15:33:05
minamo @minamo173

どのトークンを有効にするかの判断が難しい #devsumiC

2015-02-19 15:33:20
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: IDトークン。例えると、FacebookがSlideshareのためにkuraを認証したかを示すトークン。あるいはY!がGREEのためにkuraを認証したかを示すトークン

2015-02-19 15:33:29
キハ( ˘ ³˘)♥58系 @bump_of_kiharu

IDトークンは発行時にのみ検証して、保持しなくても良い。 #devsumiC

2015-02-19 15:33:50
Tatsuo Kudo @tkudos

#devsumiC 「ために」ってとこがポイント

2015-02-19 15:34:22
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: WebViewに発行するCookieの有効期限は、アプリのポリシーで決めて良いと思う。IDトークンの有効期限は自サイトのCookieの有効期限と一致しなくていいと思う

2015-02-19 15:35:20
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: トークンはCookieの有効・無効に合わせるとよいと思う

2015-02-19 15:35:54
minamo @minamo173

ポイント:トークンはCookieの有効・無効に合わせる #devsumiC

2015-02-19 15:36:02
Tatsuo Kudo @tkudos

#devsumiC @kura_lab: ログアウト時にはCookie無効 → アクセストークン、リフレッシュトークンを無効に。IDトークンは保持しなくてもよい、気にしなくてもよい

2015-02-19 15:36:30
nov matake @nov

ログアウト時にaccess token & refresh token無効化しましょうね、と。まぁその辺はユースケースしだいですね、と。 #devsumi #devsumiC

2015-02-19 15:37:07