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
CMSツールPloneでAAL2対応への挑戦
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Manabu TERADA
November 30, 2025
Technology
73
0
Share
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
PyCon JPに学ぶ『決め方の決め方』: TechLead Conference 2026
terapyon
1
55
World Plone Day 2026 AI時代のCMSを一緒に考える
terapyon
0
17
PythonのツールチェーンとOSS
terapyon
0
32
AI時代の罠:経験が浅いエンジニアを救うのは誰か?
terapyon
0
49
Python製CMSが実現する、権限管理とセマンティック検索の融合
terapyon
0
59
オープンソースを安心して利用するために
terapyon
1
99
PythonエンジニアになるためのテクニカルハイライトとPython実践試験学習方法
terapyon
0
71
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
960
近年の PyCon 情勢から見た PyCon APAC のまとめ
terapyon
0
490
Other Decks in Technology
See All in Technology
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
320
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
400
ハーネスエンジニアリングの概要と設計思想
sergicalsix
9
5k
AI와 협업하는 조직으로의 여정
arawn
0
450
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
16k
Do Vibe Coding ao LLM em Produção para Busca Agêntica - TDC 2026 - Summit IA - São Paulo
jpbonson
3
120
マルチプロダクトの信頼性を効率良く保っていくために
kworkdev
PRO
0
160
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
590
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
230
目的ファーストのハーネス設計 ~ハーネスの変更容易性を高めるための優先順位~
gotalab555
8
2.2k
こんなアーキテクチャ図はいやだ / Anti-pattern in AWS Architecture Diagrams
naospon
1
450
AIはハッカーを減らすのか、増やすのか?──現役ホワイトハッカーから見るAI時代のリアル【MEGU-Meet】
cscengineer
0
160
Featured
See All Featured
HDC tutorial
michielstock
2
630
WENDY [Excerpt]
tessaabrams
10
37k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Claude Code のすすめ
schroneko
67
220k
Skip the Path - Find Your Career Trail
mkilby
1
110
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
180
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
190
Docker and Python
trallard
47
3.8k
Site-Speed That Sticks
csswizardry
13
1.2k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
A designer walks into a library…
pauljervisheath
211
24k
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. ご清聴
ありがとうございました。