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
Manabu TERADA
November 30, 2025
Technology
72
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
PythonのツールチェーンとOSS
terapyon
0
30
AI時代の罠:経験が浅いエンジニアを救うのは誰か?
terapyon
0
46
Python製CMSが実現する、権限管理とセマンティック検索の融合
terapyon
0
59
オープンソースを安心して利用するために
terapyon
1
95
PythonエンジニアになるためのテクニカルハイライトとPython実践試験学習方法
terapyon
0
71
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
930
近年の PyCon 情勢から見た PyCon APAC のまとめ
terapyon
0
490
Desktop Apps Made Easy: Python Web UI Frameworks with Streamlit and Stlite
terapyon
1
120
Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法
terapyon
0
5.4k
Other Decks in Technology
See All in Technology
Sansanの認証基盤を支えるアーキテクチャとその振り返り
sansantech
PRO
1
150
OPENLOGI Company Profile for engineer
hr01
1
62k
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
150
AIにより大幅に強化された AWS Transform Customを触ってみる
0air
0
280
Cortex Codeでデータの仕事を全部Agenticにやりきろう!
gappy50
0
200
マルチモーダル非構造データとの闘い
shibuiwilliam
1
140
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
第26回FA設備技術勉強会 - Claude/Claude_codeでデータ分析 -
happysamurai294
0
340
トイルを超えたCREは何屋になるのか
bengo4com
0
120
OPENLOGI Company Profile
hr01
0
83k
OpenClaw初心者向けセミナー / OpenClaw Beginner Seminar
cmhiranofumio
0
220
AWSで2番目にリリースされたサービスについてお話しします(諸説あります)
yama3133
0
110
Featured
See All Featured
The Language of Interfaces
destraynor
162
26k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
We Are The Robots
honzajavorek
0
210
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
400
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
Design in an AI World
tapps
0
190
My Coaching Mixtape
mlcsv
0
91
RailsConf 2023
tenderlove
30
1.4k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
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. ご清聴
ありがとうございました。