SlideShare a Scribd company logo
Chrome Extensionで
Self-Issued OpenID Providerを
作るやで(Day1)
uji52
uji52
自己紹介
• uji52
• 好きなOIDCのフロー
• Code Flow
• 好きなExtension
• wasavi
• Advanced REST Client
• JSON Formatter
2
uji52
Self-Issued OpenID Provider
ってなんやねん
3
uji52
OpenID Connect
4
ユーザ
2.認証要求 4.認証情報・ID情報
すっごいザックリした説明
ID Token
eyJxxx.eyJxxx.xxxxxx
RP
OP
uji52
Self-Issued OP
5
ユーザ
すっごいザックリした説明
RP
俺がID Token作って
署名してやるぜ!
uji52
Chrome Extension
ってなんやねん
6
uji52
Chrome Extension
7
uji52
Chrome Extension
8
新しくウィンドウ立ち上がってアプリ的に動く
Advanced REST Client
uji52
Chrome Extension
9
右上のボタンを押したら動く
Authenticator
uji52
My Favorite Chrome Extension
10
ブラウザで出てるコンテンツを書き換える
wasavi
uji52
やりたいことは
Chrome ExtensionでSIOP
11
uji52
やる必要のあること
• 指定のページで使える
• openid://でキックされる
• RS256の署名ができる
• 署名鍵を安全に保管できる
• リクエストが送れる
12
uji52
とりあえず
できることを確認
13
uji52
Google Extensionの構成要素
• manifest.json
• Extensionの名前
• バージョン
• どんな動きするか
• どんなファイルを使うか
• htmlとかjsのファイル
• アイコン画像
14
uji52
サンプル実装1
15
{
"manifest_version": 2,
"name": "SIOP52",
"description": "Self-Issued OpenID Provider",
"version": "0.1",
"icons": {
"128": "128.png"
},
"browser_action": {
"default_title": "SIOP52",
"default_icon": "16.png",
"default_popup": "first.html"
}
}
manifest.json
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>SIOPを作るで</p>
</body>
</html>
first.html
128.png
16.png
uji52
サンプル実装1
16
チェックして
持ってく
uji52
サンプル実装1
17
uji52
サンプル実装1
18
uji52
Extensionの種類
• browser action
• 右上に出てくるやつ
• どこのページでも出てくる
• page action
• アドレスバーの右端に出る(俺やったとき出んかったけど情報古いんかな)
• 特定のURLで使う等の利用
19
uji52
Extensionの種類
• Background
• ブラウザ起動時からずっと裏で開いてるページ
• Content Scripts
• 該当ページが開いたら走ってくれる
• DOMでページをいじれる
• Context Menu
• 右クリックで出てくるようなやつ
• TOEIC320点マンがGoogle翻訳で重宝してるやつ
20
uji52
サンプル実装2
21
"128": "128.png"
},
"background": {
"scripts":
[
"background.js"
]
},
"permissions": [
"tabs"
],
"page_action": {
"default_title": "SIOP52",
manifest.json
function validUri(tabId, changeInfo, tab) {
if (tab.url.indexOf("https://www") >= 0) {
chrome.pageAction.show(tabId);
}
};
chrome.tabs.onUpdated.addListener(validUri);
background.js
uji52
やる必要のあること
• 指定のページで使える
• openid://でキックされる
• RS256の署名ができる
• 署名鍵を安全に保管できる
• リクエストが送れる
22
uji52
今回のまとめ
• 案外簡単にできる
• マニフェストファイルって名前の割に分かりやすい
• 用語理解が苦しいが動かすのは簡単
• 残りのやりたいことできるかな?
• opened://でキックするのはbackgroundで行けそう
• 鍵の保管先とか無理じゃないか
• 公開に5$かかるらしい
• G社「5$かけて悪いもん公開する奴おらんやろ(楽観)」
23
uji52
続かない気がする
24

More Related Content

Similar to Chrome ExtensionでSelf-Issued OpenID Provider

How FIDO Works
How FIDO WorksHow FIDO Works
How FIDO Works
Keiko Itakura
 
Open ID Connect(OIDC)をスライド形式で理解する
Open ID Connect(OIDC)をスライド形式で理解するOpen ID Connect(OIDC)をスライド形式で理解する
Open ID Connect(OIDC)をスライド形式で理解する
Daisuke Takakuwa
 
Idcon gomi-052715-pub
Idcon gomi-052715-pubIdcon gomi-052715-pub
Idcon gomi-052715-pub
Hidehito Gomi
 
Idcon11 implicit demo
Idcon11 implicit demoIdcon11 implicit demo
Idcon11 implicit demo
Ryo Ito
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9Ryo Ito
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
Naohiro Fujie
 
Authentication and Authorization of The Latest Keycloak
Authentication and Authorization of The Latest KeycloakAuthentication and Authorization of The Latest Keycloak
Authentication and Authorization of The Latest Keycloak
Hitachi, Ltd. OSS Solution Center.
 
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
Takashi Yahata
 

Similar to Chrome ExtensionでSelf-Issued OpenID Provider (9)

How FIDO Works
How FIDO WorksHow FIDO Works
How FIDO Works
 
Open ID Connect(OIDC)をスライド形式で理解する
Open ID Connect(OIDC)をスライド形式で理解するOpen ID Connect(OIDC)をスライド形式で理解する
Open ID Connect(OIDC)をスライド形式で理解する
 
Idcon gomi-052715-pub
Idcon gomi-052715-pubIdcon gomi-052715-pub
Idcon gomi-052715-pub
 
Idcon11 implicit demo
Idcon11 implicit demoIdcon11 implicit demo
Idcon11 implicit demo
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 
Authentication and Authorization of The Latest Keycloak
Authentication and Authorization of The Latest KeycloakAuthentication and Authorization of The Latest Keycloak
Authentication and Authorization of The Latest Keycloak
 
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
 

More from Takeru Ujinawa

Etherpad-lite導入
Etherpad-lite導入Etherpad-lite導入
Etherpad-lite導入
Takeru Ujinawa
 
SHA-256を学ぼうとする
SHA-256を学ぼうとするSHA-256を学ぼうとする
SHA-256を学ぼうとする
Takeru Ujinawa
 
CTFを楽しむやで
CTFを楽しむやでCTFを楽しむやで
CTFを楽しむやで
Takeru Ujinawa
 
SSL入門
SSL入門SSL入門
SSL入門
Takeru Ujinawa
 
SES
SESSES
AWS SQS
AWS SQSAWS SQS
AWS KMSと鍵の話
AWS KMSと鍵の話AWS KMSと鍵の話
AWS KMSと鍵の話
Takeru Ujinawa
 
Cognito User Pool
Cognito User PoolCognito User Pool
Cognito User Pool
Takeru Ujinawa
 

More from Takeru Ujinawa (8)

Etherpad-lite導入
Etherpad-lite導入Etherpad-lite導入
Etherpad-lite導入
 
SHA-256を学ぼうとする
SHA-256を学ぼうとするSHA-256を学ぼうとする
SHA-256を学ぼうとする
 
CTFを楽しむやで
CTFを楽しむやでCTFを楽しむやで
CTFを楽しむやで
 
SSL入門
SSL入門SSL入門
SSL入門
 
SES
SESSES
SES
 
AWS SQS
AWS SQSAWS SQS
AWS SQS
 
AWS KMSと鍵の話
AWS KMSと鍵の話AWS KMSと鍵の話
AWS KMSと鍵の話
 
Cognito User Pool
Cognito User PoolCognito User Pool
Cognito User Pool
 

Recently uploaded

TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 

Recently uploaded (16)

TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

Chrome ExtensionでSelf-Issued OpenID Provider