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
Manabu TERADA
November 30, 2025
Technology
110
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
NIH症候群の私が問う「サプライチェーン攻撃が怖いなら、自前で作ればいいのか?」
terapyon
0
40
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
190
VLMで2.3万枚のPyCon JP写真を検索!
terapyon
2
1k
また来年も行きたくなったPyCon US
terapyon
0
41
baser_Meetup_キーノート_AI時代_CMSは何を管理するのか_.pdf
terapyon
0
120
Searching 23,000 Photos with Modern VLMs: From Text to Image
terapyon
0
100
PyCon JPに学ぶ『決め方の決め方』: TechLead Conference 2026
terapyon
1
940
World Plone Day 2026 AI時代のCMSを一緒に考える
terapyon
0
82
PythonのツールチェーンとOSS
terapyon
0
69
Other Decks in Technology
See All in Technology
登壇はいいぞ! 〜Kaigi on Railsに登壇して起きた3つの変化〜
occhi
0
110
続・ソフトウェアアーキテクトのための意思決定術: Decision Readiness, Revisited — When AI Changes the Economics of Software Architecture
snoozer05
PRO
9
2.7k
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
210
re:Invent の去年のスケジュールを公開します!
miu_crescent
PRO
0
320
AIコーディングはじめました
miso
0
150
Shared Signals Framework 仕様解説
oidfj
0
200
FinOpsを導入してマルチプロダクトのコスト最適化を実現する
kworkdev
PRO
0
140
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
0
400
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
3
1.7k
In-Context Learning再入門。ICLの勾配降下的解釈の研究動向を追ってみる。
dai08srhg
1
720
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
640
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
190
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
WCS-LA-2024
lcolladotor
0
980
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Producing Creativity
orderedlist
PRO
348
41k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
430
The SEO Collaboration Effect
kristinabergwall1
1
620
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Code Reviewing Like a Champion
maltzj
529
40k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
970
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. ご清聴
ありがとうございました。