Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CMSツールPloneでAAL2対応への挑戦
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Manabu TERADA
November 30, 2025
Technology
96
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CMSツールPloneでAAL2対応への挑戦
認証基盤部会セミナー
「みんなで認証について語り合おう(仮)」」
2025年11月30日
CMScom 寺田 学
https://auth.axies.jp/news/141/
Manabu TERADA
November 30, 2025
More Decks by Manabu TERADA
See All by Manabu TERADA
VLMで2.3万枚のPyCon JP写真を検索!
terapyon
2
900
また来年も行きたくなったPyCon US
terapyon
0
32
baser_Meetup_キーノート_AI時代_CMSは何を管理するのか_.pdf
terapyon
0
110
Searching 23,000 Photos with Modern VLMs: From Text to Image
terapyon
0
87
PyCon JPに学ぶ『決め方の決め方』: TechLead Conference 2026
terapyon
1
850
World Plone Day 2026 AI時代のCMSを一緒に考える
terapyon
0
65
PythonのツールチェーンとOSS
terapyon
0
58
AI時代の罠:経験が浅いエンジニアを救うのは誰か?
terapyon
0
92
Python製CMSが実現する、権限管理とセマンティック検索の融合
terapyon
0
92
Other Decks in Technology
See All in Technology
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
120
Railsのように考える: See through the Master
snoozer05
PRO
3
820
HHKBエバンジェリストになる方法
941
0
100
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
170
すぐできる衛星通信対応 あとは山奥に行くだけ
tatetate55
0
130
What the customer really needed
kawaguti
PRO
1
160
Minecraft JavaのMODをSwiftで作る
1mash0
0
160
おい、エージェントを使って終わらせろ
nwiizo
0
230
range over func 2年間の軌跡 Issue #56413 はGoのエコシステムをどう変えたか
ryujicre8ive
0
190
事業課題から技術的負債に向き合う
sansantech
PRO
2
1.8k
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
200
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
27
20k
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
310
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
670
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
280
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Side Projects
sachag
456
43k
Transcript
copyright © 2025 CMS Comunications Inc. all rights reserved. CMSツールPloneで
AAL2対応への挑戦 – AAL2の理解とその先 – 株式会社CMSコミュニケーションズ 代表取締役 寺田 学 (Manabu TERADA) 「認証基盤部会セミナー「みんなで認証について語り合おう(仮)」」 2025年11月30日
copyright © 2025 CMS Comunications Inc. all rights reserved. 自己紹介
copyright © 2025 CMS Comunications Inc. all rights reserved. 自己紹介
寺田 学 (Manabu TERADA) • Pythonエンジニア • Podcast 「terapyon channel」(https://podcast.terapyon.net) • 主な関連書籍(共著・監修・監訳) ◦ Pythonによるあたらしいデータ分析の教科書第 3版(翔泳社:2025年5月) ◦ Pythonデータ分析 実践ハンドブック (インプレス: 2023年9月) ◦ Python実践レシピ (技術評論社: 2022年1月) ◦ スラスラわかるPython第2版(翔泳社:2021年11月) ◦ 機械学習図鑑(翔泳社 : 2019年4月)
copyright © 2025 CMS Comunications Inc. all rights reserved. 主な役職
寺田 学 (Manabu TERADA) 株式会社 CMSコミュニケーションズ 代表取締役 • Pythonエンジニア • 一般社団法人PyCon JP Association 理事 • Python Asia Organization Founder and Board member • 一般社団法人Pythonエンジニア育成推進協会顧問理事 • Python Software Foundation (PSF) Fellow • 国立大学法人一橋大学 社会学研究科 元客員准教授(2022)
copyright © 2025 CMS Comunications Inc. all rights reserved. Python技術支援のコンサルサービス
(株)CMSコミュニケーションズのサービス
copyright © 2025 CMS Comunications Inc. all rights reserved. 講演の流れ
AAL2に興味を持ちデモ実装した話 • 前提知識(AAL2 / パスキー / Plone) • デモ実装の概要 • アプリデモ • 技術的課題
copyright © 2025 CMS Comunications Inc. all rights reserved. 前提知識
• AAL2 • パスキー • Plone
copyright © 2025 CMS Comunications Inc. all rights reserved. AAL2とは
NIST SP800-63 および Kantara KIAF1440 で定められている • 当人認証(Authentication) ◦ この強度を表すのが AAL: Authenticator Assurance Level ◦ AAL2では、多要素認証が必須 ◦ 知識、所持、生体 の組み合わせ(同じもの 2つは多要素と呼ばない) AAL2 (2FA / パスキーなど) • 認証要求者が身元識別情報と紐付けられており、認証情報の 3 要素のうち、複数要 素を使うことにより、当人認証の信用度が相当程度ある 出典元: https://level2.gakunin.jp/about/ https://www.nii.ac.jp/openforum
copyright © 2025 CMS Comunications Inc. all rights reserved. AALの他のレベル
デジタル庁 行政手続におけるオンラインによる本人確認の手法に関するガイドライン AAL1 (ユーザID/パスワード) • 認証要求者が身元識別情報と紐付けられており、認証情報の 3 要素のうち、単要素 若しくは複数要素を使うことにより、当人認証の信用度がある程度ある AAL3 (ハードウエア所持など) • 認証要求者が身元識別情報と紐付けられており、認証情報の 3 要素のうち、耐タン パ性を有するハードウェアを含む複数要素を使うことにより、当人認証の信用度が非 常に高い 出典元: https://www.digital.go.jp/
copyright © 2025 CMS Comunications Inc. all rights reserved. パスキーとは
詳細は別途資料を確認してください • AXIES認証基盤部会・学認合同企画セッション で「小岩井さん」が発表 ◦ https://www.nii.ac.jp/openforum/upload/n01_03.pdf • パスワードに代わる(併用できる)新たな認証方式 • 構成要素 ◦ 発行機 (パスワードマネージャー ) が端末間共有 ◦ 公開鍵認証方式なので、サービス側が秘密情報を持たない ◦ ブラウザAPI(WebAuthn)があり、ユーザの負荷が低い
copyright © 2025 CMS Comunications Inc. all rights reserved. Ploneとは
OSSでPythonベースのCMS • 認証認可の仕組みを持つ、高機能なCMS(コンテツ管理システム) • デフォルトでは、ユーザー・グループに対して、ロール/パーミッション割当 • ユーザーは内部のDBでも、外部(LDAPなど)の連携が可能 • 各種SSOにも対応し、SPとして動く • 認証認可がプラガブル(追加が容易)になっている • 複数の認証認可の仕組みを導入することも可能
copyright © 2025 CMS Comunications Inc. all rights reserved. デモ実装の概要
• Auth Serviceプラグイン • パスキーの登録と認証 • 管理画面へのアクセス禁止
copyright © 2025 CMS Comunications Inc. all rights reserved. Auth
Serviceプラグイン パスキー対応とAAL2での認可を担うプラグインを開発 • AAL2を実験するために、2FAの実装(SMSやTOTP)が大変そう • パスキーには興味があり、追加コスト少なめで実装できそう • 機能 ◦ Ploneのプラグインとして、認証認可をする。( PAS) ◦ パスキーの登録 ◦ パスキーで認証 ◦ 指定のPathに対して、パスキー認証かつ時間制限をつけて認可 ◦ 認可されない場合は Topページへ遷移(今後は認証画面に移動を計画中 )
copyright © 2025 CMS Comunications Inc. all rights reserved. パスキー登録と認証
既存ユーザーにパスキー利用可能にする • 登録済みのユーザーに、パスキー登録画面を提供 • パスキーは内部のDBに保存 • 登録後は、パスキーだけで認証可能な画面を提供
copyright © 2025 CMS Comunications Inc. all rights reserved. 管理画面へのアクセス制限
指定のPathにアクセス制限 • パスキー認証されていないとアクセスできないPathを設定 • 15分以内にパスキー認証されているかをチェックしアクセスを認可 • 時間経過を表示
copyright © 2025 CMS Comunications Inc. all rights reserved. デモアプリ
• インターネット上に公開 • サンプルコードも公開
copyright © 2025 CMS Comunications Inc. all rights reserved. デモアプリ
インターネット上に公開済み(AXIES 2025の期間のみ) • URL: https://aal2-test.cmscom.jp/ • デモ ◦ 既存のユーザーがパスキーを登録 https://aal2-test.cmscom.jp/@@passkey-register-form ◦ 既存ユーザーがパスキーでログイン https://aal2-test.cmscom.jp/@@passkey-login-form ◦ 管理画面にアクセス可能 ◦ 時間制限が表示される(デモ用) ◦ 管理画面でPathの変更
copyright © 2025 CMS Comunications Inc. all rights reserved. デモ
copyright © 2025 CMS Comunications Inc. all rights reserved. サンプルコード
Vibeコーディングで作ったのでコードが汚いが・・ • URL: https://github.com/cmscom/c2.pas.aal2 • 実装の参考になる ◦ パスキーの登録 ・・2回AJAXが走る ◦ パスキーログイン・・ 2回AJAXが走る ◦ AAL2認可・・アプリケーションサーバがチェック • このまま使っては行けない・課題が多い ◦ セキュリティ面 ◦ パフォーマンス面
copyright © 2025 CMS Comunications Inc. all rights reserved. 技術的課題
• パスキーの実装 • AAL2の確認 • IdP連携
copyright © 2025 CMS Comunications Inc. all rights reserved. パスキーの実装課題
APIが決まっているので簡単だが • パスキー(公開鍵)をどこに保存するか? • ユーザ数が多くなった場合の効率的なキー認証チャレンジの仕組み ◦ 先人の知恵があるとは思うが・・。 • ユーザアカウントの管理の大変さは同じ • やってみて感じたこと ◦ 登録や認証の仕組みは WebAuthnのAPIで簡単に実装できる ◦ パスワードのように機密情報を扱わないのは気持ちが楽になる
copyright © 2025 CMS Comunications Inc. all rights reserved. AAL2の確認課題
標準的に効率的な実装をしたい • Pathを確認して、認可できるかをみている • Plone標準のロール / パーミッションの仕組みとは別になっている ◦ これを融合せたほうが、より柔軟になるとは思うが ◦ コンテンツの状態による AAL2を実現することはいまのままではできない • やってみて感じたこと ◦ 管理者設定や重要なページへのアクセスには AAL2を早く導入したほうが良いだろう ◦ 複数の認証方式(SMS 2FAなど)に対応させないと AAL2だけが先行しても成り立たない
copyright © 2025 CMS Comunications Inc. all rights reserved. IdP連携
SPを作る側の感想 • IdP側がさまざまな認証やより高度な認証に対応してくれることに期待 • SP側としては、それに備えたアプリケーションづくりが重要 • Ploneというもともと認証認可が得意なフレームワークでは容易に対応できる • その他のフレームワークでもSAML対応やShibboleth SPで対応できる
copyright © 2025 CMS Comunications Inc. all rights reserved. 当社はNII主催の中規模
実証実験 2025に参加し ます
copyright © 2025 CMS Comunications Inc. all rights reserved. ご清聴
ありがとうございました。