Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
MK
Uploaded by
Moriyoshi Koizumi
PPTX, PDF
1,412 views
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
Engineering
◦
Read more
3
Save
Share
Embed
Download
Download to read offline
1
/ 18
2
/ 18
3
/ 18
4
/ 18
5
/ 18
6
/ 18
7
/ 18
8
/ 18
9
/ 18
10
/ 18
11
/ 18
12
/ 18
13
/ 18
14
/ 18
15
/ 18
16
/ 18
17
/ 18
18
/ 18
More Related Content
PPTX
電子承認
by
PLM Japan
PDF
PCI DSSにおける認証認可 インフラ編
by
Nobuhiro Nakayama
PPTX
Pyramidのrendererをカスタマイズする
by
Moriyoshi Koizumi
PDF
PHPのすべらない話#3
by
Moriyoshi Koizumi
PPT
Ninsho hosting
by
Tsuyoshi Hariki
PDF
Goをカンストさせる話
by
Moriyoshi Koizumi
PPTX
PHP7を魔改造した話
by
Moriyoshi Koizumi
PDF
PHPのすべらない話
by
Moriyoshi Koizumi
電子承認
by
PLM Japan
PCI DSSにおける認証認可 インフラ編
by
Nobuhiro Nakayama
Pyramidのrendererをカスタマイズする
by
Moriyoshi Koizumi
PHPのすべらない話#3
by
Moriyoshi Koizumi
Ninsho hosting
by
Tsuyoshi Hariki
Goをカンストさせる話
by
Moriyoshi Koizumi
PHP7を魔改造した話
by
Moriyoshi Koizumi
PHPのすべらない話
by
Moriyoshi Koizumi
Viewers also liked
PDF
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
by
Insight Technology, Inc.
PDF
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
by
Yahoo!デベロッパーネットワーク
PDF
Kubernetes in 30 minutes (2017/03/10)
by
lestrrat
PDF
All I know about rsc.io/c2go
by
Moriyoshi Koizumi
PDF
よいことも悪いこともぜんぶPHPが教えてくれた
by
Moriyoshi Koizumi
PDF
いまさら聞けないselectあれこれ
by
lestrrat
PDF
DMM.comラボはなぜSparkを採用したのか?レコメンドエンジン開発の裏側をお話します!
by
leverages_event
PPTX
HLSについて知っていることを話します
by
Moriyoshi Koizumi
PDF
Introducing E-Cell 3.2
by
Moriyoshi Koizumi
PPTX
ラジコンがネットと出会ったら
by
Takuya Andou
PDF
Ik in action
by
Moriyoshi Koizumi
PDF
My client wanted their apps synced, and I made it with Go
by
Toru Furukawa
PDF
go 1.8 net/http timeouts
by
Yahoo!デベロッパーネットワーク
PDF
Go conference 2017 Lightning talk
by
mokelab
PDF
Coding in the context era
by
lestrrat
PPTX
Hacking Go Compiler Internals / GoCon 2014 Autumn
by
Moriyoshi Koizumi
PDF
ICTSC5 DMM.comラボの紹介+お給料の話
by
Ken SASAKI
PDF
GoでKVSを書けるのか
by
Moriyoshi Koizumi
PDF
LLの虎 semifinal: 殺伐Python
by
Moriyoshi Koizumi
PDF
ICTSC6 ちょっとだけ数学の話
by
Ken SASAKI
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
by
Insight Technology, Inc.
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
by
Yahoo!デベロッパーネットワーク
Kubernetes in 30 minutes (2017/03/10)
by
lestrrat
All I know about rsc.io/c2go
by
Moriyoshi Koizumi
よいことも悪いこともぜんぶPHPが教えてくれた
by
Moriyoshi Koizumi
いまさら聞けないselectあれこれ
by
lestrrat
DMM.comラボはなぜSparkを採用したのか?レコメンドエンジン開発の裏側をお話します!
by
leverages_event
HLSについて知っていることを話します
by
Moriyoshi Koizumi
Introducing E-Cell 3.2
by
Moriyoshi Koizumi
ラジコンがネットと出会ったら
by
Takuya Andou
Ik in action
by
Moriyoshi Koizumi
My client wanted their apps synced, and I made it with Go
by
Toru Furukawa
go 1.8 net/http timeouts
by
Yahoo!デベロッパーネットワーク
Go conference 2017 Lightning talk
by
mokelab
Coding in the context era
by
lestrrat
Hacking Go Compiler Internals / GoCon 2014 Autumn
by
Moriyoshi Koizumi
ICTSC5 DMM.comラボの紹介+お給料の話
by
Ken SASAKI
GoでKVSを書けるのか
by
Moriyoshi Koizumi
LLの虎 semifinal: 殺伐Python
by
Moriyoshi Koizumi
ICTSC6 ちょっとだけ数学の話
by
Ken SASAKI
Similar to Authentication, Authorization, OAuth, OpenID Connect and Pyramid
PDF
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
by
Tatsuo Kudo
PPTX
NGINXでの認可について考える
by
Hitachi, Ltd. OSS Solution Center.
PDF
OpenID Connect, December 2011
by
Tatsuo Kudo
PDF
認証認可.pdf
by
yoshinorimatsuda
PDF
Clrh55_LT_kamebuchi_public
by
Keiji Kamebuchi
PPTX
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
by
Hitachi, Ltd. OSS Solution Center.
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
by
Hitachi, Ltd. OSS Solution Center.
PDF
100121 Scis2010 Itoh
by
Hiroki Itoh
PDF
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
by
Tatsuo Kudo
PPTX
20111203
by
小野 修司
PDF
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
by
Yoko TAMADA
PPTX
#qpstudy 2016.07 第一部 基礎知識編 「ご認証は認可ですか?」
by
Masahiro NAKAYAMA
PPTX
DX時代に必要なセキュリティの知識~認証編~
by
kojirokishi
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
by
Tatsuo Kudo
NGINXでの認可について考える
by
Hitachi, Ltd. OSS Solution Center.
OpenID Connect, December 2011
by
Tatsuo Kudo
認証認可.pdf
by
yoshinorimatsuda
Clrh55_LT_kamebuchi_public
by
Keiji Kamebuchi
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
by
Hitachi, Ltd. OSS Solution Center.
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
by
Hitachi, Ltd. OSS Solution Center.
100121 Scis2010 Itoh
by
Hiroki Itoh
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
by
Tatsuo Kudo
20111203
by
小野 修司
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
by
Yoko TAMADA
#qpstudy 2016.07 第一部 基礎知識編 「ご認証は認可ですか?」
by
Masahiro NAKAYAMA
DX時代に必要なセキュリティの知識~認証編~
by
kojirokishi
More from Moriyoshi Koizumi
PDF
Aaなゲームをjsで
by
Moriyoshi Koizumi
PDF
Phpをいじり倒す10の方法
by
Moriyoshi Koizumi
PDF
ctypes拡張モジュール
by
Moriyoshi Koizumi
PDF
HPHPは約束の地なのか
by
Moriyoshi Koizumi
PDF
X / DRM (Direct Rendering Manager) Architectural Overview
by
Moriyoshi Koizumi
PDF
Haxeについて
by
Moriyoshi Koizumi
PDF
Nginx lua
by
Moriyoshi Koizumi
PDF
Uguisudani
by
Moriyoshi Koizumi
PDF
Aaなゲームをjsで
by
Moriyoshi Koizumi
PDF
mod_himoteからはじめよう
by
Moriyoshi Koizumi
PDF
Phjosh(仮)プロジェクト
by
Moriyoshi Koizumi
PDF
PHP language update 201211
by
Moriyoshi Koizumi
PDF
Gocon2013
by
Moriyoshi Koizumi
PDF
10〜30分で何となく分かるGo
by
Moriyoshi Koizumi
PDF
Pyfes201110
by
Moriyoshi Koizumi
Aaなゲームをjsで
by
Moriyoshi Koizumi
Phpをいじり倒す10の方法
by
Moriyoshi Koizumi
ctypes拡張モジュール
by
Moriyoshi Koizumi
HPHPは約束の地なのか
by
Moriyoshi Koizumi
X / DRM (Direct Rendering Manager) Architectural Overview
by
Moriyoshi Koizumi
Haxeについて
by
Moriyoshi Koizumi
Nginx lua
by
Moriyoshi Koizumi
Uguisudani
by
Moriyoshi Koizumi
Aaなゲームをjsで
by
Moriyoshi Koizumi
mod_himoteからはじめよう
by
Moriyoshi Koizumi
Phjosh(仮)プロジェクト
by
Moriyoshi Koizumi
PHP language update 201211
by
Moriyoshi Koizumi
Gocon2013
by
Moriyoshi Koizumi
10〜30分で何となく分かるGo
by
Moriyoshi Koizumi
Pyfes201110
by
Moriyoshi Koizumi
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
1.
認証と認可の概念 • 認証 (Authentication) •
認可 (Authorization)
2.
認証とは • 認証因子 (authentication
factors) からシス テムの利用者を識別して、システムにと って利用者が何者であるかを決定するこ と • 利用者が何者であるかが分かった所で、 システムの機能を使えるかどうかは別問 題 • (→認可) 認証因子 決定 決定 0182 0021
3.
認可とは • システムの利用者の認証情報から、シス テムの一部または全部の機能を利用可能 かどうか決定すること 0001 0123 システム管理 者 一般ユーザー ✔️ ✔️ ✔️
4.
Webアプリケーションの認証 • WebアプリケーションはHTTPを使ってシ ステムの利用者の環境 (ブラウザ)
と通信 する • HTTPのペイロードにシステムの利用者を 識別するような情報を乗せて通信するこ とで、Webアプリケーションにユーザーを 認証させる
5.
Webアプリケーションの認証 • 認証に用いられる情報 – URL –
クエリ文字列 – リクエストボディ – Authorizationヘッダ – クッキー – IPアドレス – SSLクライアント証明書 など
6.
Webアプリケーションの認証 ✔️https://example.com/s ecretpage 403 GET /secretpage HTTP/1.1 HTTP/1.1
403 Forbidden HTTP/1.1 200 OK 200 自宅のIPアドレス GET /secretpage HTTP/1.1 職場のIPアドレス
7.
Webアプリケーションの認証 • チャレンジ-レスポンス認証 – 閲覧できないリソースへのアクセスを行おう としたときに、エラーを返すのと同時に利用 者に認証因子の送信を求める
(チャレンジ) – 利用者はレスポンスとして認証因子 (ユーザ 名、パスワード等) をサーバーに送信する – 非セッション型の通信では、サーバは以後の アクセスで利用者識別情報として利用可能な トークンをユーザに返す
8.
Webアプリケーションの認証 ✔️https://example.com/s ecretpage 401 GET /secretpage HTTP/1.1
GET /secretpage HTTP/1.1 Authorization: basic … HTTP/1.1 401 Authorization Required WWW-Authenticate: Basic; realm=… HTTP/1.1 200 OK 200 ✔️ GET /anotherpage HTTP/1.1 Authorization: basic … https://example.com/a notherpage 認証情報の入力 認証情報はブラウザーに 記憶される 200 HTTP/1.1 200 OK
9.
Webアプリケーションの認証 Login page https://example.com/s ecretpage 302 HTTP/1.1 302 Moved
Temporarily Location: /login ✔️https://example.com/a notherpage 識別のための情報が クッキーとして ブラウザーに記憶される 200 GET /secretpage HTTP/1.1 https://example.com/ login GET /login HTTP/1.1 認証情報の入力 Login page HTTP/1.1 200 OK HTTP/1.1 302 Moved Temporarily Location: /secretpage Set-Cookie: xxx=yyy; path=/POST /login HTTP/1.1 user=aaa&passwd=bbb GET /anotherpage HTTP/1.1 Cookie: xxx=yyy HTTP/1.1 200 OK
10.
OAuth • OAuthはWebアプリケーションやWebAPI の、サービス間の認可のためのフレーム ワーク • サービスAがサービスBに認可をするため にサービスAが利用者に認証を求めるよう な作りになっていることを利用して、認 証の外部化機構としても利用できる
11.
ここ (2-3の間) で provider側の認証が利 用者に対して行われた りする。 OAuthのフロー 1.
ブラウザをproviderの認可エンドポイントにリダイレクト 2. 認可エンドポイントにブラウザがGETリクエスト 3. ブラウザをconsumerのコールバックURLにリダイレクト 4. コールバックURLにブラウザがGETリクエスト code code code 5. Consumerがproviderのアクセストークン取得APIにPOSTリクエスト client_id redirect_uri client_id client_secret 6. Providerがconsumerにアクセストークンや補助的な情報を返 却 access_token 7. Consumerは与えられたアクセストークンを伴ってProviderの各種APIにアクセス Consumer (認可を受ける側) Provider (認可を与える側) User agent (ブラウザ)
12.
OpenID Connect • OpenID
2.0の後継として生まれた規格 • OAuth 2.0ベース • アクセストークンと一緒にOpenID認証情 報をJWT (JSON Web Token) として consumerに渡す
13.
ここ (2-3の間) で provider側の認証が利 用者に対して行われた りする。 OpenID
Connectのフロー 1. ブラウザをproviderの認可エンドポイントにリダイレクト 2. 認可エンドポイントにブラウザがGETリクエスト 3. ブラウザをconsumerのコールバックURLにリダイレクト 4. コールバックURLにブラウザがGETリクエスト code code code 5. Consumerがproviderのアクセストークン取得APIにPOSTリクエスト client_id redirect_uri client_id client_secret 6. ProviderがconsumerにアクセストークンやIDトークンを返却 access_token 7. Consumerは与えられたアクセストークンを伴ってProviderの各種APIにアクセス Consumer (認可を受ける側) Provider (認可を与える側) User agent (ブラウザ) id_token nonce max_age
14.
Pyramidの認証と認可 Authentication and Authorization
in Pyramid
15.
Pyramidの認証と認可 • 認証ポリシー (IAuthenticationPolicy) •
認可ポリシー (IAuthorizationPolicy) • セキュリティプリンシパル (principals) • ACL (access control list)
16.
Pyramidの認可 • view_configに指定されたpermissionを引数 に、登録された IAuthorizationPolicy
の permits() メソッドが呼ばれる • permits()メソッドがFalseを返した場合、 HTTPForbiddenがraiseされる • チャレンジがある場合は、例外ビューの1 つであるforbidden viewでこれを拾って、 ログイン用のページにリダイレクトする
17.
Pyramidの認証 • IAuthenticationPolicyの effective_principals()が現在認証されてい るユーザに対応するprincipalsを返す。
18.
ACLAuthorizationPolicy • Contextオブジェクトの持つ__acl__プロパ ティの内容の各要素 (ACE=Access
Control Entry) と、 IAuthenticationPolicy.effective_principals() の返したprincipalsを順に照合して、最初 に合致したものをpermissionとする __acl__ = [ (Allow, Authenticated, 'authenticated'), (Deny, 'group:XXX:YYY', 'excluded'), (Allow, 'membership:XXX', 'member_only'), ]
Editor's Notes
#4
3
Download