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
SSO system structure and Show case in Japan.
Search
Manabu TERADA
October 18, 2017
Technology
1
340
SSO system structure and Show case in Japan.
Talk of Plone Conference 2017 Barcelona. #ploneconf2017
Manabu TERADA
October 18, 2017
Tweet
Share
More Decks by Manabu TERADA
See All by Manabu TERADA
PythonエンジニアになるためのテクニカルハイライトとPython実践試験学習方法
terapyon
0
42
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
560
近年の PyCon 情勢から見た PyCon APAC のまとめ
terapyon
0
410
Desktop Apps Made Easy: Python Web UI Frameworks with Streamlit and Stlite
terapyon
1
92
Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法
terapyon
0
2.8k
各種大学向けにSSO対応サイト(SP)構築の事例紹介
terapyon
0
68
コンテンツタイプとUMLで考えるPlone開発(1)
terapyon
0
140
Python Web UIフレームワークのススメ
terapyon
0
1.5k
LLMを用いたPloneベクター検索 アドオンの開発の説明
terapyon
0
120
Other Decks in Technology
See All in Technology
Access-what? why and how, A11Y for All - Nordic.js 2025
gdomiciano
1
110
Green Tea Garbage Collector の今
zchee
PRO
2
390
GA technologiesでのAI-Readyの取り組み@DataOps Night
yuto16
0
270
自動テストのコストと向き合ってみた
qa
0
180
Pure Goで体験するWasmの未来
askua
1
180
LLMアプリケーション開発におけるセキュリティリスクと対策 / LLM Application Security
flatt_security
7
1.9k
Function calling機能をPLaMo2に実装するには / PFN LLMセミナー
pfn
PRO
0
940
Goにおける 生成AIによるコード生成の ベンチマーク評価入門
daisuketakeda
2
110
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
140
後進育成のしくじり〜任せるスキルとリーダーシップの両立〜
matsu0228
7
2.5k
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
190
about #74462 go/token#FileSet
tomtwinkle
1
370
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
KATA
mclloyd
32
15k
Designing for Performance
lara
610
69k
The Cost Of JavaScript in 2023
addyosmani
53
9k
A Tale of Four Properties
chriscoyier
160
23k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
It's Worth the Effort
3n
187
28k
Six Lessons from altMBA
skipperchong
28
4k
Transcript
CMS communications Inc. 440TZTUFNTUSVDUVSF BOE 4IPXDBTFJO+BQBO .BOBCV5&3"%" 1MPOF$POGFSFODF
#BSDFMPOB גࣜձࣾCMSίϛϡχέʔγϣϯζ
!UFSBQZPO 0XOFSBOE$&0PG$.4DPNNVOJDBUJPOT*OD #PBSE$IBJSPG1Z$PO+1 +BQBO 1MPOF'PVOEBUJPO"NCBTTBEPS .FNCFSPG/7%"+BQBOFTF5FBN 0SHBOJ[FSPG+BQBO0QFOFE9VTFSHSPVQ "CPVUNF גࣜձࣾCMSίϛϡχέʔγϣϯζ
.BOBCV5&3"%" ࣉాɹֶ
"CPVUPVSDPNQBOZ גࣜձࣾCMSίϛϡχέʔγϣϯζ 0VSDPNQBOZJT$.4DPNCBTFEJO5PLZP +BQBO 8FVTF1MPOFGPSCVJMEJOHXFCTJUFT 6OJWFSTJUJFT 1VCMJDJOTUJUVUJPOT &OHJOFFSJOHDPNQBOJFT 4VQQPSUJOHFEVDBUJPOUPPMT $.4DPN
גࣜձࣾCMSίϛϡχέʔγϣϯζ "CPVU440 $POUFOUTPGUIJTTFTTJPO *OUSPEVDFUP440UZQFT 5ZQFTPG440 *OUSPEVDFUPQSPEVDUT 1MPOF
440BOE1"4 %&.0 *OUSPEVDFUP1MPOFTZTUFNTBOE1ZSBNJEJOUFHSBUJPO 1SPUPDPM4FRVFODF "WBJMBCJMJUZNBUSJY
גࣜձࣾCMSίϛϡχέʔγϣϯζ "CPVU440 $.4 1MPOF
"CPVU440 גࣜձࣾCMSίϛϡχέʔγϣϯζ 4JOHMF4JHO0O "VTFSMPHHFEJOUPPOFTJUFDBOBDDFTTNVMUJQMFTJUFTXJUIPVU OFFEJOHUPJOQVUMPHJOJOGPSNBUJPOBHBJO 8IBUJT440
"CPVU440 גࣜձࣾCMSίϛϡχέʔγϣϯζ 440WT-%"1 1MPOF 440 -PHJO $POUFOU
3FRVFTU 3FEJSFDU -%"1 6TFS%BUB 1MPOF 0UIFSTJUFSFRVFTU $POUFOU "MSFBEZMPHHFEJO 1MPOF 1MPOF 6TFS%BUB -PHJO $POUFOU $POUFOU 3FRVFTU -PHJOBHBJO 0UIFSTJUFSFRVFTU
גࣜձࣾCMSίϛϡχέʔγϣϯζ 5ZQFTPG440 4IJCCPMFUI $"4 $"4JOHMF4JHO0O 4JUF.JOEFS $.4 1MPOF
5ZQFTPG440 גࣜձࣾCMSίϛϡχέʔγϣϯζ 4IJCCPMFUIJTPOFPGUIFGBNPVT440TZTUFNTJO6OJWFSTJUJFT 6TJOH"QBDIFTQFDJpDNPEVMF "QBDIFEPFTO`UOFFEUPDPOOFDUUP440*E1TFSWFS #VU *UOFFEUPJOTUBMMBTBNFDFSUJpDBUF 1MPOFXJMMHFUVTFSJOGPSNBUJPOGSPNUIF)551IFBEFS 4IJCCPMFUI
5ZQFTPG440 גࣜձࣾCMSίϛϡχέʔγϣϯζ 5IJTJTBDPNNFSDJBMQSPEVDU 6TJOH"QBDIFTQFDJpDNPEVMF TBNFBT4IJCCPMFUI #VU UIJTTZTUFNOFFETUPDPOOFDUGSPN"QBDIFUP*E1TFSWFS 1MPOFXJMMHFUVTFSJOGPSNBUJPOGSPNUIF)551IFBEFS TBNFBT4IJCCPMFUI $"4JOHMF4JHO0O
4JUF.JOEFS
5ZQFTPG440 גࣜձࣾCMSίϛϡχέʔγϣϯζ $"4JTBOPUIFSGBNPVT440TZTUFNJO6OJWFSTJUJFT 1MPOFTFSWFSXJMMEJSFDUMZDPOOFDUUPUIF$"4TFSWFS $"4JTFBTZUPTFUVQ $"4
גࣜձࣾCMSίϛϡχέʔγϣϯζ 1MPOF 440 BOE1"4 1SPEVDUT"VUP6TFS.BLFS1"41MVHJO DQBTBVUPVTFSNBQQFS BO[DBTDMJFOU $.4
1MPOF
1MPOF 440 גࣜձࣾCMSίϛϡχέʔγϣϯζ 1MPOFIBTWFSZQPXFSGVM"VUITZTUFNVTJOH1"4 1"4JT1MVHHBCMF"VUIFOUJDBUJPO4FSWJDF *UNFBOTXFDBOVTFNVMUJQMF"VUITZTUFN 1MPOFIBTTPNFQSPEVDUTGPS440 "CPVU1"4
5ZQFTPG1"4GPS440 גࣜձࣾCMSίϛϡχέʔγϣϯζ 5IJTQSPEVDUTVQQPSUT4IJCCPMFUI *UNBLFT1MPOFTPVSDFVTFSCZ)551IFBEFS "OEXFDBOTFUBVTFSHSPVQNBQQJOHCZ;.* #VU*UIJOLUIJTQSPEVDUIBTBCJHQSPCMFNVQEBUJOHVTFS QSPQFSUJFT 'PSFYBNQMFBVTFSNPWFTUPOFXP⒏DF UIFNBQQJOHJTO`UDIBOHFEBVUPNBUJDBMMZ
1SPEVDUT"VUP6TFS.BLFS1"41MVHJO
5ZQFTPG1"4GPS440 גࣜձࣾCMSίϛϡχέʔγϣϯζ 5IJTQSPEVDUJTNBEFCZNF 4BNFBT1SPEVDUT"VUP6TFS.BLFS1"41MVHJO #VU DQBTBVUPVTFSNBQQFSEPFTO`UDSFBUFBSFBMVTFS JUEZOBNJDBMMZNBQTBVTFSJOTUFBE 'PSTJUFTXJUINBOZVTFST EZOBNJDNBQQJOHJTCFUUFSUIBONBLJOHVTFS
)PXFWFS UIF1MPOFTJUFEPFTO`UTVQQPSUTFBSDIVTFS DQBTBVUPVTFSNBQQFS
5ZQFTPG1"4GPS440 גࣜձࣾCMSίϛϡχέʔγϣϯζ 'PS$"4DMJFOUQSPEVDU 8FVTFUIJTQSPEVDU )PXFWFS*EPO`ULOPXJGJUTVQQPSUTUIFOFX$"4QSPUPDPM 7 BO[DBTDMJFOUPOMZTVQQPSUQSPUPDPM7BOE7 5IFDVSSFOU$"4QSPUPDPMTQFDJpDBUJPOJTY BO[DBTDMJFOU
גࣜձࣾCMSίϛϡχέʔγϣϯζ 1SPUPDPM 4FRVFODF $.4 1MPOF
גࣜձࣾCMSίϛϡχέʔγϣϯζ 1MPOF 4IJCCPMFUI 4IJCCPMFUI *E1 "QBDIF NPE@TIJC 1MPOF 1"4
BDDFTT BTLMPHJO 6TFSJOGPJODPPLJF 6TFS #SPXTFS SFEJSFDU 6TFSJOGPJO)551IFBEFS SFEJSFDU $POUFOUEBUB )5.-JNHFUD
גࣜձࣾCMSίϛϡχέʔγϣϯζ 1MPOF 4JUF.JOEFS -%"1 4JUF.JOEFS *E1 "QBDIF BHFOU 1MPOF
1"4 BDDFTT BTLMPHJO 6TFSJOGPJODPPLJF 6TFS #SPXTFS SFEJSFDU 6TFSJOGPJO)551IFBEFS SFEJSFDU $POUFOUEBUB )5.-JNHFUD $IFDL 0, 6TFSEBUB -%"1 %#
גࣜձࣾCMSίϛϡχέʔγϣϯζ 1MPOF $"4 $"4 4FSWFS "QBDIFOHJOY 1MPOF 1"4
BDDFTT BTLMPHJO 6TFSJOGPJODPPLJF 6TFS #SPXTFS SFEJSFDU SFEJSFDU $POUFOUEBUB )5.-JNHFUD BDDFTT SFEJSFDU $IFDL 0,
גࣜձࣾCMSίϛϡχέʔγϣϯζ 1ZSBNJE 4IJCCPMFUI 4IJCCPMFUI *E1 "QBDIF NPE@TIJC 1ZSBNJE TQFDJBMEFDPSBUPS
BDDFTT BTLMPHJO 6TFSJOGPJODPPLJF 6TFS #SPXTFS SFEJSFDU 6TFSJOGPJO)551IFBEFS SFEJSFDU $POUFOUEBUB )5.-JNHFUD
1ZSBNJETQFDJBMEFDPSBUPS גࣜձࣾCMSίϛϡχέʔγϣϯζ def added_uid(func): @functools.wraps(func) def wrapper(*args, **kwargs): request =
args[1] uid = None headers = request.headers environ = getattr(headers, 'environ', None) if environ is not None and 'HTTP_UID' in environ: uid = environ["HTTP_UID"] if uid: setattr(request, "site_uid", uid) return func(request) else: raise exc.HTTPForbidden() return wrapper @view_config(route_name="home", renderer="../templates/home.pt", check_csrf=False) @added_uid @master_template def home_view(request): ...
גࣜձࣾCMSίϛϡχέʔγϣϯζ 0OF1MPOF 4IJCCPMFUI/P4IJCCPMFUI 1MPOF 6TFS #SPXTFS 0OF EPNBJO 0UIFS
EPNBJO 1FSNJTTJPO $IFDL
גࣜձࣾCMSίϛϡχέʔγϣϯζ "WBJMBCJMJUZ NBUSJY $.4 1MPOF
1"41SPEVDUT גࣜձࣾCMSίϛϡχέʔγϣϯζ 1SPEVDUT "VUP6TFS.BLFS1"41MVHJO DQBT BVUPVTFSNBQQFS DQBT BVUPVTFSNBQQFS -%"1
BO[DBTDMJFOU 4IJCCPMFUI ✔4VQQPSUFE ✔4VQQPSUFE ✔4VQQPSUFE $"4 ✔4VQQPSUFE 6OEFS7 4JUF.JOEFS ✔4VQQPSUFE ✔4VQQPSUFE ✔4VQQPSUFE 6TFS$SFBUF ✔4VQQPSUFE ✘/P ✘/P ✘/P 6TFS 4FBSDI ✔4VQQPSUFE ✘/P ✔4VQQPSUFE ✘/P /HJOY ✘/P ✘/P ✘/P ✔4VQQPSUFE
4IPXDBTF גࣜձࣾCMSίϛϡχέʔγϣϯζ %&.0 %0/05SFDPSE QMFBTF $.4 1MPOF
4IPXDBTF גࣜձࣾCMSίϛϡχέʔγϣϯζ &OEPG%&.0 3FDPSEQMFBTF
5IFQJUGBMMTPG440 גࣜձࣾCMSίϛϡχέʔγϣϯζ 4ZTUFNFOWJSPONFOUDIBOHFTEFQFOEJOHPOFBDI DVTUPNFS`TOFFET 6TFSJOGPSNBUJPOJTOPULOPXOVOUJMBGUFS BDDFTTJOHUIFMPDBMTJUF 6TFSEBUBCBTFJTPVUTJEFPGUIFMPDBM FOWJSPONFOU TPXFDBO`UDSFBUFUFTUVTFST
8BOU גࣜձࣾCMSίϛϡχέʔγϣϯζ *XBOUUPNPSFDPNNFOUBOEUFTUGPSDQBTBVUPVTFSNBQQFS 1FBTF1VMM3FRVFTU *XBOUUPLOPXJUTVQQPSUTUIFOFX$"4QSPUPDPM 7
5IBOLZPV $.4 1MPOF גࣜձࣾCMSίϛϡχέʔγϣϯζ $POUBDUUPNFBU!UFSBQZPO
גࣜձࣾCMSίϛϡχέʔγϣϯζ 2"
5IBOLZPV $.4 1MPOF גࣜձࣾCMSίϛϡχέʔγϣϯζ $POUBDUUPNFBU!UFSBQZPO