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
530
近年の PyCon 情勢から見た PyCon APAC のまとめ
terapyon
0
400
Desktop Apps Made Easy: Python Web UI Frameworks with Streamlit and Stlite
terapyon
1
85
Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法
terapyon
0
2.5k
各種大学向けにSSO対応サイト(SP)構築の事例紹介
terapyon
0
65
コンテンツタイプとUMLで考えるPlone開発(1)
terapyon
0
130
Python Web UIフレームワークのススメ
terapyon
0
1.4k
LLMを用いたPloneベクター検索 アドオンの開発の説明
terapyon
0
120
Other Decks in Technology
See All in Technology
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
1.1k
研究開発と製品開発、両利きのロボティクス
youtalk
1
530
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
260
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.1k
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
4
1.6k
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
170
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
240
AWSで始める実践Dagster入門
kitagawaz
1
620
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
110
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
120
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
240
Rustから学ぶ 非同期処理の仕組み
skanehira
1
140
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Music & Morning Musume
bryan
46
6.8k
Code Review Best Practice
trishagee
70
19k
Designing for Performance
lara
610
69k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Into the Great Unknown - MozCon
thekraken
40
2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Rails Girls Zürich Keynote
gr2m
95
14k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
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