Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
hooks riverpod + state notifier + freezed でのドメイン駆動設計
Shinnosuke Tokuda
OpenID Connect Client Initiated Backchannel Authentication Flow (CIBA)のご紹介 ~ ...
OpenID Foundation Japan
階層的決定性ウォレットを理解しよう
bitbank, Inc. Tokyo, Japan
KeycloakのDevice Flow、CIBAについて
Hiroyuki Wada
Flutter移行の苦労と、乗り越えた先に得られたもの
Recruit Lifestyle Co., Ltd.
世界一わかりやすいClean Architecture
Atsushi Nakamura
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
1
of
37
Top clipped slide
YAPC::Tokyo 2013 ritou OpenID Connect
Sep. 20, 2013
•
0 likes
21 likes
×
Be the first to like this
Show More
•
16,784 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Report
Technology
Ryo Ito
Follow
home
Advertisement
Advertisement
Advertisement
Recommended
池澤あやかと学ぼう!: はじめてのOAuthとOpenID Connect - JICS 2014
Nov Matake
11.9K views
•
42 slides
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
Tatsuo Kudo
19.2K views
•
48 slides
これからのネイティブアプリにおけるOpenID Connectの活用
Masaru Kurahayashi
25.3K views
•
94 slides
OpenID ConnectとAndroidアプリのログインサイクル
Masaru Kurahayashi
14.7K views
•
99 slides
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
Masaru Kurahayashi
145K views
•
116 slides
今更聞けないOAuth2.0
Takahiro Sato
68.8K views
•
83 slides
More Related Content
Slideshows for you
(20)
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
•
2.3K views
hooks riverpod + state notifier + freezed でのドメイン駆動設計
Shinnosuke Tokuda
•
3.4K views
OpenID Connect Client Initiated Backchannel Authentication Flow (CIBA)のご紹介 ~ ...
OpenID Foundation Japan
•
1.6K views
階層的決定性ウォレットを理解しよう
bitbank, Inc. Tokyo, Japan
•
6.1K views
KeycloakのDevice Flow、CIBAについて
Hiroyuki Wada
•
2.5K views
Flutter移行の苦労と、乗り越えた先に得られたもの
Recruit Lifestyle Co., Ltd.
•
5.7K views
世界一わかりやすいClean Architecture
Atsushi Nakamura
•
45.2K views
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
•
21.1K views
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
Tokoroten Nakayama
•
187.2K views
ざっくり解説 LINE ログイン
Naohiro Fujie
•
956 views
シングルサインオンの歴史とSAMLへの道のり
Shinichi Tomita
•
36.8K views
OpenID Connect入門
土岐 孝平
•
1.7K views
パスワードのいらない世界へ~NTTドコモにおけるFIDO認証導入事例とエコシステムへの貢献
FIDO Alliance
•
3.8K views
Keycloak拡張入門
Hiroyuki Wada
•
9.6K views
俺が考えた最強のID連携デザインパターン
Masaru Kurahayashi
•
9.4K views
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
•
20.7K views
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
DeNA
•
6.3K views
Keycloakの実際・翻訳プロジェクト紹介
Hiroyuki Wada
•
131.3K views
RESTful Web アプリの設計レビューの話
Takuto Wada
•
71.9K views
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
•
98.3K views
Similar to YAPC::Tokyo 2013 ritou OpenID Connect
(20)
OpenID Connect のビジネスチャンス
OpenID Foundation Japan
•
6.4K views
OpenID-TechNight-11-LT-mixi
Ryo Ito
•
2.7K views
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
Tatsuo Kudo
•
2.4K views
認証技術、デジタルアイデンティティ技術の最新動向
Tatsuo Kudo
•
10.6K views
20140307 tech nightvol11_lt_v1.0_public
Tatsuya (達也) Katsuhara (勝原)
•
3.4K views
IoT案件を70件やってみて分かった事
Koichi Sasaki
•
8.9K views
新しい認証技術FIDOの最新動向
FIDO Alliance
•
1.5K views
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
Takashi Yahata
•
1.3K views
OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020
OpenID Foundation Japan
•
1.6K views
Android IoTとプログラミング教育
Kenichi Yoshida
•
2K views
[Tech night]rakuten
nkoshikawa
•
387 views
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
Ryo Ito
•
2.5K views
IoTビジネス共創ラボ 第15回勉強会 オープニング
IoTビジネス共創ラボ
•
833 views
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューション
Jingun Jung
•
126 views
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
Takashi Yahata
•
2.7K views
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
WESEEKWESEEK
•
209 views
IoT ビジネス共創ラボの趣旨説明、地方共創ラボ紹介_IoTビジネス共創ラボ 第10回 勉強会
IoTビジネス共創ラボ
•
1K views
Io tのお困りごとを解決「ニフティiotデザインセンター」_iotの実現をサポートするニフティの取り組み
iot_nifty
•
1.4K views
農業とIoT
Kaz Furukawa
•
1.3K views
ListPod with OpenID
Yusuke Wada
•
1.9K views
Advertisement
More from Ryo Ito
(20)
idcon mini vol3 CovertRedirect
Ryo Ito
•
1.7K views
Idcon 17th ritou OAuth 2.0 CSRF Protection
Ryo Ito
•
4.6K views
なんとなくOAuth怖いって思ってるやつちょっと来い
Ryo Ito
•
14.2K views
#idcon 15th ritou 2factor auth
Ryo Ito
•
2.6K views
Open id connect claims idcon mini vol1
Ryo Ito
•
2.4K views
OID to OIDC idcon mini vol1
Ryo Ito
•
5.6K views
Account Chooser idcon mini Vol.1
Ryo Ito
•
2.2K views
BackplaneProtocol超入門
Ryo Ito
•
2.1K views
UserManagedAccess_idcon13
Ryo Ito
•
1.8K views
WebIntents × SNS
Ryo Ito
•
1.2K views
Idcon11 implicit demo
Ryo Ito
•
4.1K views
OpenID_Connect_Spec_Demo
Ryo Ito
•
1.4K views
The Latest Specs of OpenID Connect at #idcon 9
Ryo Ito
•
1.7K views
OAuth 2.0 MAC Authentication
Ryo Ito
•
1.9K views
OAuth 2.0 Dance School #swj
Ryo Ito
•
873 views
Ritou idcon7
Ryo Ito
•
686 views
Summary of OAuth 2.0 draft 8 memo
Ryo Ito
•
677 views
Introduction of OAuth 2.0 vol.1
Ryo Ito
•
1.3K views
0905xx Hybrid Memo
Ryo Ito
•
993 views
Anonymous OAuth Test
Ryo Ito
•
1.2K views
Recently uploaded
(20)
☀️【中央兰开夏大学毕业证成绩单留学生首选】
25mjhd12
•
4 views
JSTQB_テストマネジメントとレビュープロセス.pdf
akipii Oga
•
128 views
Kubernetes超入門
Takashi Suzuki
•
5 views
Üslup ve tercüme.pdf
1Hmmtks
•
2 views
留信网认证可查【皇家霍洛威学院文凭证书毕业证购买】
32lkhng
•
2 views
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
152 views
SoftwareControl.pdf
ssusercd9928
•
15 views
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Takanari Tokuwa
•
40 views
☀️【麦吉尔大学毕业证成绩单留学生首选】
15sad
•
3 views
☀️【杜兰大学毕业证成绩单留学生首选】
2125nuh
•
2 views
モバイル・クラウド・コンピューティング-データを如何に格納し、組み合わせ、情報として引き出すか
Masahiko Funaki
•
2 views
20230523_IoTLT_vol99_kitazaki_v1.pdf
Ayachika Kitazaki
•
108 views
SoftwareControl.pdf
ssusercd9928
•
6 views
《杨百翰大学毕业证|学位证书校内仿真版本》
d520dasw12
•
2 views
TestSIP (1).pdf
DeependraSingh712859
•
2 views
触感に関わる共感覚的表現と基本6感情の対応関係の検証
Matsushita Laboratory
•
7 views
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
6 views
3Dプリンタって いいね
infinite_loop
•
29 views
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
オラクルエンジニア通信
•
29 views
Omnis
DaisukeFujita10
•
15 views
Advertisement
YAPC::Tokyo 2013 ritou OpenID Connect
OpenID Connect これが最新のOpenID仕様だッ! Ryo Ito
(@ritou) YAPC::Asia Tokyo 2013
自己紹介 ● Ryo Ito
(@ritou) ○ 株式会社ミクシィ 研究開発グループ ○ OpenID ファウンデーション・ジャパン エヴァンジェリスト ○ http://d.hatena.ne.jp/ritou/ ○ @IT デジタル・アイデンティティ技術最新動向 「OpenID Connect」を理解する http://www.atmarkit.co. jp/ait/articles/1209/27/news138.html
1. OpenID Connectとは?
OpenIDとOAuthの違い ● OpenID :
異なるサービス間でユーザーの認証 情報をやりとりする仕様 ● OAuth : 異なるサービス間でAPIアクセスを実 現するしくみ
アイデンティティ技術のトレンド ● Webアプリ間でアカウント連携 ○ OpenID
2.0 ○ 2008年頃から ● Webアプリ間のAPI連携 ○ OAuth 1.0 ○ 2009年頃から ● Webアプリ + ネイティブアプリ間のAPI連携 ○ OAuth 2.0 ○ 2010年頃から
OAuth認証とは ● OAuthはAPIアクセスのための仕様だが・・・ ● プロフィールAPIでユーザー識別子を取得して SSOに使っちゃおう!!!的な発想
OAuth認証とは ● OAuthはAPIアクセスのための仕様だが・・・ ● プロフィールAPIでユーザー識別子を取得して SSOに使っちゃおう!!!的な発想 ○
独自API ○ OAuth 2.0ではモバイルアプリに広く使われるフローで セキュリティリスクが発生
OpenID Connectとは ● OAuth
2.0をベースに, アイデンティティ層を拡 張した仕様 ○ 認証結果の受け渡し + APIアクセス認可を同時に行う ● OpenIDファウンデーションで仕様策定中 ○ 現在Implementer's Draft ○ 日本人も関わっている
難しそう? ミニマムな実装としては, 下記の2点だけ ● ID
Tokenで認証/認可情報を受け渡し ● 標準的な属性情報提供API
Source : http://www.atmarkit.co.jp/ait/articles/1209/27/news138.html OPにリダイレクトして同意
Source : http://www.atmarkit.co.jp/ait/articles/1209/27/news138.html POST
リクエストを送り、 アクセストークンと ID Tokenを取得
Source : http://www.atmarkit.co.jp/ait/articles/1209/27/news138.html メールアドレスなど 属性情報を取得
認証/認可の情報を含むID Token ● 認可情報 ○
どこの : OP識別子 ○ だれが : ユーザー識別子 ○ いつ : タイムスタンプ ○ どこに : RP識別子 ● 認証の情報 ○ 認証時刻 ○ 認証方式
トークン文字列はJSON Web Token形式 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 . eyJpc3MiOiJodHRwczovL3NlcnZlci5leGFtcGxlLmNvbSIsIn N1YiI6IjI0NDAwMzIwIiwiYXVkIjoiczZCaGRSa3F0MyIsIm5v bmNlIjoibi0wUzZfV3pBMk1qIiwiZXhwIjoxMzExMjgxOTcwL CJpYXQiOjEzMTEyODA5NzAsImF1dGhfdGltZSI6MTMxM TI4MDk2OSwidHlwIjoiSldUIn0 . LbJA_DmSR5R3Sa79xqtG9sU8uy1Sm8KG1V8VBJOby4E
トークン文字列はJSON Web Token形式 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ↑メタデータをBase64
URL エンコードしたもの . ←ピリオドで連結 eyJpc3MiOiJodHRwczovL3NlcnZlci5leGFtcGxlLmNvbSIsIn N1YiI6IjI0NDAwMzIwIiwiYXVkIjoiczZCaGRSa3F0MyIsIm5v bmNlIjoibi0wUzZfV3pBMk1qIiwiZXhwIjoxMzExMjgxOTcwL CJpYXQiOjEzMTEyODA5NzAsImF1dGhfdGltZSI6MTMxM TI4MDk2OSwidHlwIjoiSldUIn0 ↑送りたいデータをBase64 URL エンコードしたもの . LbJA_DmSR5R3Sa79xqtG9sU8uy1Sm8KG1V8VBJOby4E ↑署名をBase64 URLエンコードしたもの
ユーザーの属性情報を提供するAPI scopeの値に関連付けられた属性情報を提供 ● openid :
ユーザー識別子 ● profile : プロフィール情報 ● email : メアド + 確認状態 ● phone : 電話番号 + 確認状態 ● address : 住所情報
その他 ● 動的なRP登録, 探索 ●
ユーザー認証周りのリクエストパラメータ ● 署名つき/暗号化されたリクエスト ● 属性情報の集約/分散
モバイル端末とIdentity モバイル端末自体の識別はけっこう難しい ● デバイス固有な識別子? ○ かんたんログインのセキュリティ/プライバシー問題 ●
ある程度セキュアな領域は提供されている ○ iOS KeyChain ○ Android KeyStore
Self-Issued OP :
デバイス内OP モバイル/WebアプリはカスタムURIスキームにて リクエストを送信 ● openid:// 端末内でOPとして動作するアプリ or Native機能 がOPとなる ● デバイス内でユニークな鍵ペアを生成 ● 公開鍵をPayloadに含む ● 秘密鍵で署名してID Tokenを作成
Self-Issued OP :
デバイス内OP 利用するモバイル/Webアプリのメリット ● 公開鍵のハッシュ値から、どの端末を利用して いるかを識別可能 ● タイムスタンプ/署名により改ざんが難しい ● ユーザーの同意を得るしくみがある
Self-Issued OP :
デバイス内OP いくつか課題が残っている ● 信頼性(OS機能じゃないとNG?) ● 名寄せ防止のための複数の鍵ペア生成 ネイティブアプリを作っていてより厳密なデバイス 識別をやりたいところは使えると思う
2. OIDC::Lite
OIDC::Lite ● OAuth 2.0のServer/Client向けライブラリであ るOAuth::Lite2を拡張 ●
https://metacpan.org/module/OIDC::Lite ● https://github.com/ritou/p5-oidc-lite
Source : http://www.atmarkit.co.jp/ait/articles/1209/27/news138.html
RP(Client)向け機能 ● 認可要求のURL生成 ● アクセストークン、IDトークンの要求 ●
レスポンスの検証 LWP使って手動でリクエストを書き, レスポンスを JSONデコードするよりは楽
OP(Server)向け機能 ● 各エンドポイント毎に”一連の手続き”を実装 ● Authorization
Endpoint ○ リクエストパラメータの検証 ○ ユーザー同意/拒否後のレスポンス生成 ○ 同意画面表示のあたりで上記メソッドを使う ● Token Endpoint ○ 各grant_type単位の処理を実装 ○ psgiアプリケーション ● Protected Resource ○ Access Tokenを検証しユーザーIDなどをAPIに必要な 値を環境変数にセット ○ PlackのMiddleware
OP(Server)向け機能 利用者が行うこと ● Access Token(アクセストークン),
AuthInfo(認 可情報)の保存部分などを実装 ○ あらかじめ用意されているのはアクセサのみ ○ DBに入れたりキャッシュに保存したり ● DataHandlerに定義されている処理を実装 ○ client_idなどの検証 ○ 上記クラスの生成/更新処理
難しそう? ● サンプルOP/RP作りました ○ https://github.com/ritou/p5-oidc-lite-demo-server ○
https://github.com/ritou/p5-oidc-lite-demo-client ● デモ ○ http://demo-client.openidconnect.info/ ○ http://demo-server.openidconnect.info/ ● ブログエントリも書きました ○ http://d.hatena.ne.jp/ritou/
サンプルOP/RP ● 目的 ○ ライブラリの使い勝手を確認 ○
OP/RPの実装例を公開 ○ 誰でもInterop! ● carton install + plackupで簡単に起動
サンプルOP : Authorization Requestの表示
サンプルOP : Authorization Responseの表示
サンプルRP : Access Token
Req/Resの表示
サンプルRP : ID Tokenの内容/属性情報の表示
まとめ ● OpenID Connect ○
OAuth 2.0にIdentity層を追加する拡張 ○ ミニマムな実装はID Tokenと属性提供API ○ Self-Issued OPでデバイス特定 ● OIDC::Lite ○ OAuth::Lite2を拡張したOP/RP向けライブラリ ○ サンプルOP/RPもあります
終わり OpenIDやOAuthについての質問や疑問がありま したら @ritou までお気軽に声をかけてください!!!
Advertisement