Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
エンタープライズITでのOpenID Connect利用ガイドライン
Search
Tatsuo Kudo
February 01, 2013
Technology
0
2
エンタープライズITでのOpenID Connect利用ガイドライン
Tatsuo Kudo
February 01, 2013
Tweet
Share
More Decks by Tatsuo Kudo
See All by Tatsuo Kudo
MCPから考えるOAuth/OIDCの現状と展望
tkudo
0
2
BaaS基盤におけるAPIセキュリティの 課題と実装
tkudo
0
2
人とAPIをつなぐ「認証・認可」
tkudo
0
3
「OAuth/OIDC 化」の考えかた
tkudo
0
2
Striking the Right Balance — Compliance, Security and User Experience
tkudo
0
3
セキュリティ改善とアプリケーション開発に活かせるOAuth 拡張仕様
tkudo
0
3
FAPIを中心とするAPI標準化の動向
tkudo
0
3
Apigee の FAPI & CIBA 対応を実現する 「Authlete(オースリート)」
tkudo
0
4
OAuth 2.0とOpenID Connectの細かい話
tkudo
0
2
Other Decks in Technology
See All in Technology
クラウドセキュリティを支える技術と運用の最前線 / Cutting-edge Technologies and Operations Supporting Cloud Security
yuj1osm
2
290
エニグモ_会社紹介資料(エンジニア職種向け).pdf
enigmo_hr
0
2.2k
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
170
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
160
ここ一年のCCoEとしてのAWSコスト最適化を振り返る / CCoE AWS Cost Optimization devio2025
masahirokawahara
1
1.5k
なぜSaaSがMCPサーバーをサービス提供するのか?
sansantech
PRO
8
2.5k
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
280
ヒューリスティック評価を用いたゲームQA実践事例
gree_tech
PRO
0
580
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
150
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
160
2025年になってもまだMySQLが好き
yoku0825
8
4.2k
La gouvernance territoriale des données grâce à la plateforme Terreze
bluehats
0
120
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
A Tale of Four Properties
chriscoyier
160
23k
Designing Experiences People Love
moore
142
24k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Transcript
工藤達雄(株式会社野村総合研究所) 野村健太郎(オープンソース・ソリューション・テクノロジ株式会社) エンタープライズITでの OpenID Connect利用ガイドライン
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 目次
はじめに エンタープラズITにおけるフェデレーションの要件 エンタープラズITにおけるOpenID Connectの適用例 まとめ 1
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. はじめに
登場人物 OP: クラウドサービス利用企業(の認証システム) RP: クラウドサービス事業者 エンドユーザー、サービス利用者: クラウドサービス利用 企業の従業員 今回は、RPはサーバーサドゕプリケーションであ ることを前提としている 2
エンタープライズ IT における フェデレーションの要件 3
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 企業利用における特有の要件(1)
クラウドサービスに情報を渡す手段と、渡す情 報の内容 IDプロビジョニングあり/なし? メールゕドレスや社員番号を渡すか?それとも PPID (ランダム文字列、仮名)を渡すか? OPのネットワーク構成 OPはフゔゕウォールの内にあるか、外にあるか? 4
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 企業利用における特有の要件(2)
ユーザーンターフェース わかりやすいものがよい ログン時の OP 選択画面は企業利用では不要? 情シス部門への問い合わせが増えるのはヤ セキュリテゖレベルに応じた認証の実施 管理者向けコンテンツへのゕクセス時は多要素認証実施など シングルログゕウト できたらうれしいけど、実装は大変? 5
エンタープライズ IT における OpenID Connectの適用例 6
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID
Connect 適用のための検討事項 処理フローの選択 ユーザー識別子(IDトークン) 連携する属性情報(クレーム) ユーザーンターフェース(ログン画面) 再認証処理 シングルログゕウト 7
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID
Connect 適用のための検討事項 処理フローの選択 ユーザー識別子(IDトークン) 連携する属性情報(クレーム) ユーザーンターフェース(ログン画面) 再認証処理 シングルログゕウト 8
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 処理フローの選択
認可コードフロー 9 エンドユーザー RP OP 認可リクエスト 認可 エンドポイント ログイン画面・同意画面の表示と認証 認可コード発行 アクセストークン IDトークン 認可コード トークン エンドポイント UserInfo エンドポイント 属性情報(クレーム) 認可コード アクセストークン RPからOPへの直接通信 RPからOPへの直接通信
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 処理フローの選択
Implicit フロー 10 エンドユーザー RP OP 認可リクエスト 認可 エンドポイント ログイン画面・同意画面の表示と認証 ID トークン発行 IDトークン IDトークン ID トークンは URL フラグメントなので、 リダイレクトで RP には送信されない JavaScript を利用して、ID トークンを RP に送信 IDトークン ID トークンの署名を検証
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OPの配置によって処理フローを選択
11 認可コードフロー Implicit フロー 本来の想定用途 RP がサーバーサイド アプリケーション (Web アプリ) RP がクライアントサイド アプリケーション (スマホアプリなど) OP と RP の間の サーバー間通信 有 無 ID トークンの 署名検証 不要 必要 (署名用の鍵の管理が必要) 企業利用における 使い分け OP が DMZ に 配置されている OP がファイアウォール内に 配置されている
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. Implicitフローの場合にはIDトークンの検証が必須
IDトークンがエンドユーザーのブラウザを介し て渡されることから、改ざん対策が必要 OP側の処理 ▪IDトークンにデジタル署名、もしくは、MAC値を付加する RP側の処理 ▪IDトークンのデジタル署名/MAC値を検証する 12
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. IDトークンの検証に必要な「鍵」をどう運用するか
デジタル署名を利用する場合 公開鍵をRPに渡す必要がある ▪RP側で登録ンターフェースを用意し、OPがゕップロード ▪OP側で公開し、RPがダウンロード MACを利用する場合 共通鍵をOPとRPとで共有する必要がある 共通鍵としてクラゕントシークレットを使うことも可能 ▪クラゕントサドゕプリではやってはいけない! 13
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID
Connect 適用のための検討事項 処理フローの選択 ユーザー識別子(IDトークン) 連携する属性情報(クレーム) ユーザーンターフェース(ログン画面) 再認証処理 シングルログゕウト 14
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. ユーザー識別子の必要条件
ユーザー毎に一意であり、かつ再利用されてはならない IDトークンの sub パラメーターの値 15 名寄せ可能な情報 名寄せ不可能な情報
[email protected]
OP RP2
[email protected]
RP1
[email protected]
OP RP2 kodfas74 RP1 3jhfds2a RP1: kodfas74 RP2: 3jhfds2a
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. ユーザー識別子の種類の使い分け
16 名寄せ可能な情報 名寄せ不可能な情報 例 メールアドレス ランダム文字列 (仮名、PPID) セキュリティ (プライバシー保護) 普通 高 OP 側の運用 容易 若干複雑 RP 側の運用 容易 若干複雑 使い分け 実装コスト、運用効率重視 セキュリティ重視
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID
Connect 適用のための検討事項 処理フローの選択 ユーザー識別子(IDトークン) 連携する属性情報(クレーム) ユーザーンターフェース(ログン画面) 再認証処理 シングルログゕウト 17
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 連携する属性情報(クレーム)
ユーザー識別子以外に RP が必要とする情報 氏名、所属部門(グループ)、連絡先など コンシューマー環境とは異なり、全ての属性情 報を個人が所有しているわけではない 所属する企業により付与された属性情報 所属する企業とは関係しない属性情報 従業員が行う業務に関連した情報 18
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 連携する属性情報(クレーム)
RP は以下のような手段で情報を取得する OPからのゕデンテゖテゖ・プロビジョニング ▪一番わかりやすくて、管理しやすい フェデレーションによる取得 ▪必要なときに必要な分だけ情報をもらうことができる (Just In Time Provisioning) ▪2つの方法 ▪IDトークンに含めてもらう ▪UserInfo エンドポントから取得する(RPからOPへの直接通信が可能な場合) サービス利用者が直接 RP の画面から入力 19
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID
Connect 適用のための検討事項 処理フローの選択 ユーザー識別子(IDトークン) 連携する属性情報(クレーム) ユーザーインターフェース(ログイン画面) 再認証処理 シングルログゕウト 20
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. コンシューマー向けサービスの場合、ログインペー
ジにOP の選択肢を表示するのが一般的 21 Browser ローカル認証 OP ユーザー名 パスワード Yahoo! Google ログイン
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. エンタープライズITにおける要件
自社の会社名を一覧に表示してほしくない 他の利用企業に知られてしまう サービス利用者が迷うようなンターフェース は極力無くしたい 情報システム部門への問い合わせ増大を招きたくない 22
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 想定される実装案
RPがサービス利用企業ごとに一意となるURLを用意 ゕクセスしてきたサービス利用者に対応するOPを判別 し、自動的にそのOPへ遷移させる ▪SAMLのSP-Initiated SSO のメージ OPは社内ポータルなどにRPへのリンク(上記の一意な URL) を張っておき、サービス利用者に案内する Account Chooser を使うという手も サービス利用者への周知がポント 23
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID
Connect 適用のための検討事項 処理フローの選択 ユーザー識別子(IDトークン) 連携する属性情報(クレーム) ユーザーンターフェース(ログン画面) 再認証処理 シングルログゕウト 24
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. どのような状況において再認証処理が必要か
セキュリテゖレベルが高いコンテンツにゕクセ スする場合 多要素認証などで認証させたい RPに対して更新系のリクエストを送る場合 その前にID/パスワードの入力を再度求めたい (CSRF 対策など) 25
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 再認証処理の実現方法
「認証コンテキスト・クラス・リフゔレンス」 を利用 RP は認可リクエストで認証レベル(LoA)を指定 ▪acr_values パラメーター OP は要求されたレベルの認証を実施して、結果を ID トークンに入れて返す ▪acr パラメーター 26
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID
Connect 適用のための検討事項 処理フローの選択 ユーザー識別子(IDトークン) 連携する属性情報(クレーム) ユーザーンターフェース(ログン画面) 再認証処理 シングルログアウト 27
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. シングルログアウト
シングルサンオンしたのであれば、ログゕウ トも一度の操作で完了したい OpenID Connect 仕様の Session Management を 利用 HTML 5 を利用 環境によっては少しハードルが高いかもしれない 28
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. 工夫で実現
よくあるやり方 RP 側のセッションタムゕウト時間を短めに設定してお く(例えば 30 分) ▪セッションがタムゕウトしたら、再び OP に認可リクエストを 送信する 一方、OP のセッションタムゕウト時間を実用に耐える 時間(8時間など)にしておく ▪RP から短い間隔で認可リクエストを受け取っても、サービス利 用者からすれば、認証操作を行うことなくゕクセスし続けている ように見える 29
まとめ 30
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. まとめ
エンタープラズ IT における OpenID Connect の 適用方法、フェデレーションの実現方法を検討した 現在のOpenID Connect仕様は、多くの場合、フェ デレーションの要件に対応可能であると考えられる OpenID Connectをどう適用するかについては、プ ロビジョニングの有無、OP のネットワーク構成な どが大きな考慮点となる 31
None