2013/12/17 ユーザーとシステムを繋ぐ「認証」を知ろう! ~OpenID Connect~ #devlove

2013/12/17に行われた ユーザーとシステムを繋ぐ「認証」を知ろう! ~OpenID Connect~ のまとめです ハッシュタグ : #devlove 募集サイト : http://devlove.doorkeeper.jp/events/7419
6
nov matake @nov

サービスのひとつとしての「アイデンティティAPI」 <=> アイデンティティが中心にあってこそのサービス #devlove #id厨

2013-12-17 20:09:27
ちゃちゃき @chachaki

#devlove まとめ。ふたつの考え方がある。サービスのひとつとしての「アイデンティティAPI」 / アイデンティティが中心にあってこそのサービス。 SAML,ID-WSF,OpenID→OAuth→OpenID Connect,UMA,PDS

2013-12-17 20:09:40
すず。 @asyoulike007

先程の@tkudo さんの発表、最低1時間くらい必要な充実の内容でしたね!資料を共有頂けると嬉しいです〜 #devlove

2013-12-17 20:18:55
ちゃちゃき @chachaki

#devlove 「ユーザー登録めんどくさい」という理由でOAuth認証が多かった。最近のトレンドは「複数サイトで共通のパスワード」

2013-12-17 20:19:33
ちゃちゃき @chachaki

#devlove アタックされてパスワードが漏れる。

2013-12-17 20:20:45
ちゃちゃき @chachaki

#devlove 「ID専任のエンジニアが100人いない会社にID/passを預けるなんて…」→でも現実にはそんな会社は少ない→twiitterやfacebookでのログインが多くなった。

2013-12-17 20:22:37
Tatsuo Kudo @tkudos

さきほどのスライド置きました → なぜOpenID Connectが必要となったのか、その歴史的背景 by @tkudos #devlove http://t.co/88zXTriaIb

2013-12-17 20:23:25
ちゃちゃき @chachaki

#devlove facebook45%、google33%、米Yahoo7%、twitter7%…

2013-12-17 20:24:03
ちゃちゃき @chachaki

#devlove 「OAuth認証」って言うな!… 定義:外部サービスが提供するOAuth1.0/2.0 ベースの "Proprietary"な Profile APIを使ってユーザー認証を行なうこと。

2013-12-17 20:25:05
ちゃちゃき @chachaki

#devlove facebook。前半はOAuth2.0で、後半のProfile情報部分はproprietary。

2013-12-17 20:27:06
lef/HAYASHI, Tatsuya @lef

そもそも、皆様DoorkeeperでID連携使われてたりしますよね?:-) #devlove

2013-12-17 20:32:00
ちゃちゃき @chachaki

#devlove OAuth認証の落とし穴。デバイス(クライアント)側でアプリが取得したaccess_tokenを、アプリのバックエンドサーバに渡して、access_tokenで情報を取得する。このバックエンドサーバがweak point。

2013-12-17 20:33:12
ちゃちゃき @chachaki

#devlove 第4者目がいる時は注意!!!

2013-12-17 20:33:28
ちゃちゃき @chachaki

#devlove 注意すること→見ず知らずの他アプリ向けのTokenを受け入れてはならない。

2013-12-17 20:34:09
Tatsuo Kudo @tkudos

#devlove @nov このIBMの絵をみるたび毎回にやにやしてしまう http://t.co/txqNU5rktc

2013-12-17 20:35:04
拡大
ちゃちゃき @chachaki

#devlove Facebookだけの場合。 GET /me 以外に GET /app を用意して、確認する必要がある。これによって GET /oauth/authorize POST /oauth/token GET /app GET /me をログイン時にやる必要がある

2013-12-17 20:35:41
ちゃちゃき @chachaki

#devlove 何故そのような脆弱なサービスが絶えない?→ そもそもfbのドキュメントに4者モデルが想定されておらず、3者間モデルのみ記載されており、分からないまま実装してしまう。

2013-12-17 20:37:18
ちゃちゃき @chachaki

#devlove ざっくり言うと違うのは2つだけ。 Access Tokenの他にID Tokenが返る。proprietaryなAPIの部分でUser Info APIと規定。(他にも色々あるけど特に重要な2つ。

2013-12-17 20:39:30
ちゃちゃき @chachaki

#devlove ID Token、認証イベントのアサーション(JSON Web Token)。iss/sub/aud/iat/exp。

2013-12-17 20:39:58
ちゃちゃき @chachaki

#devlove JSONを署名して、BASE64でエンコードしてString化している

2013-12-17 20:40:27
ちゃちゃき @chachaki

#devlove 誰が(IdP)誰を(subject=end-user)誰のために(audience=client)認証したのか、の情報が入っている

2013-12-17 20:41:17
Tatsuo Kudo @tkudos

#devlove @nov 署名を検証して、クレームを検証して、sub を取り出す http://t.co/ykfvprNugF

2013-12-17 20:43:14
拡大
ちゃちゃき @chachaki

#devlove UserInfo API。PAuth2.0対応のAPI Endpoint。レスポンスフォーマット標準化。登録時だけ利用。

2013-12-17 20:43:34