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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Manabu TERADA
November 30, 2025
Technology
0
65
CMSツールPloneでAAL2対応への挑戦
認証基盤部会セミナー
「みんなで認証について語り合おう(仮)」」
2025年11月30日
CMScom 寺田 学
https://auth.axies.jp/news/141/
Manabu TERADA
November 30, 2025
Tweet
Share
More Decks by Manabu TERADA
See All by Manabu TERADA
PythonのツールチェーンとOSS
terapyon
0
7
AI時代の罠:経験が浅いエンジニアを救うのは誰か?
terapyon
0
31
Python製CMSが実現する、権限管理とセマンティック検索の融合
terapyon
0
50
オープンソースを安心して利用するために
terapyon
1
87
PythonエンジニアになるためのテクニカルハイライトとPython実践試験学習方法
terapyon
0
64
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
870
近年の PyCon 情勢から見た PyCon APAC のまとめ
terapyon
0
480
Desktop Apps Made Easy: Python Web UI Frameworks with Streamlit and Stlite
terapyon
1
110
Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法
terapyon
0
5k
Other Decks in Technology
See All in Technology
Webアクセシビリティ技術と実装の実際
tomokusaba
0
210
自動テストが巻き起こした開発プロセス・チームの変化 / Impact of Automated Testing on Development Cycles and Team Dynamics
codmoninc
1
1.1k
入門DBSC
ynojima
0
130
Exadata Fleet Update
oracle4engineer
PRO
0
1.3k
Introduction to Bill One Development Engineer
sansan33
PRO
0
380
パネルディスカッション資料 (at Tableau Now! - 2026-02-26)
yoshitakaarakawa
0
1.1k
ビズリーチにおける検索・推薦の取り組み / DEIM2026
visional_engineering_and_design
1
100
20260305_【白金鉱業】分析者が地理情報を武器にするための軽量なアドホック分析環境
yucho147
1
170
Windows ネットワークを再確認する
murachiakira
PRO
0
260
問い合わせ自動化の技術的挑戦
recruitengineers
PRO
2
150
クラウド時代における一時権限取得
krrrr38
1
160
Secure Boot 2026 - Aggiornamento dei certificati UEFI e piano di adozione in azienda
memiug
0
140
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
130
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
How to Talk to Developers About Accessibility
jct
2
140
The Mindset for Success: Future Career Progression
greggifford
PRO
0
270
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
84
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
380
Why Our Code Smells
bkeepers
PRO
340
58k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Balancing Empowerment & Direction
lara
5
930
Fireside Chat
paigeccino
42
3.8k
Color Theory Basics | Prateek | Gurzu
gurzu
0
230
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. ご清聴
ありがとうございました。