first commit
This commit is contained in:
24
dokumentation/AI_Gen.aux
Executable file
24
dokumentation/AI_Gen.aux
Executable file
@@ -0,0 +1,24 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\providecommand\HyField@AuxAddToFields[1]{}
|
||||
\providecommand\HyField@AuxAddToCoFields[2]{}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1}Zielsetzung}{1}{section.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {2}Architekturübersicht (final)}{1}{section.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Domänenstruktur}{1}{subsection.2.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}High-Level Architektur}{1}{subsection.2.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Zentrale Prinzipien}{1}{subsection.2.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3}Authentifikation (Variante A: auth\_request)}{2}{section.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Prinzip}{2}{subsection.3.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Ablauf}{2}{subsection.3.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Header-Weitergabe}{2}{subsection.3.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Nginx Konfiguration}{2}{section.4}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Wildcard Server Block}{2}{subsection.4.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Upstream Mapping}{3}{subsection.4.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {5}Docker Compose (Übersicht)}{3}{section.5}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6}UI-Konzept (Navigations-Portal)}{3}{section.6}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Funktion}{3}{subsection.6.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}UI-Layout}{4}{subsection.6.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}HTML-Prototyp (Portal)}{4}{subsection.6.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Portal als Docker Container}{5}{subsection.6.4}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {7}Zusammenfassung}{5}{section.7}\protected@file@percent }
|
||||
\gdef \@abspage@last{5}
|
||||
370
dokumentation/AI_Gen.log
Executable file
370
dokumentation/AI_Gen.log
Executable file
@@ -0,0 +1,370 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (MiKTeX 25.4) (preloaded format=pdflatex 2025.6.3) 2 FEB 2026 04:34
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**./AI_Gen.tex
|
||||
(AI_Gen.tex
|
||||
LaTeX2e <2024-11-01> patch level 2
|
||||
L3 programming layer <2025-04-29>
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\article.cls
|
||||
Document Class: article 2024/06/29 v1.4n Standard LaTeX document class
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\size11.clo
|
||||
File: size11.clo 2024/06/29 v1.4n Standard LaTeX file (size option)
|
||||
)
|
||||
\c@part=\count272
|
||||
\c@section=\count273
|
||||
\c@subsection=\count274
|
||||
\c@subsubsection=\count275
|
||||
\c@paragraph=\count276
|
||||
\c@subparagraph=\count277
|
||||
\c@figure=\count278
|
||||
\c@table=\count279
|
||||
\abovecaptionskip=\skip49
|
||||
\belowcaptionskip=\skip50
|
||||
\bibindent=\dimen146
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\inputenc.sty
|
||||
Package: inputenc 2024/02/08 v1.3d Input encoding file
|
||||
\inpenc@prehook=\toks17
|
||||
\inpenc@posthook=\toks18
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\fontenc.sty
|
||||
Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/geometry\geometry.sty
|
||||
Package: geometry 2020/01/02 v5.9 Page Geometry
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics\keyval.sty
|
||||
Package: keyval 2022/05/29 v1.15 key=value parser (DPC)
|
||||
\KV@toks@=\toks19
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/generic/iftex\ifvtex.sty
|
||||
Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead.
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/generic/iftex\iftex.sty
|
||||
Package: iftex 2024/12/12 v1.0g TeX engine tests
|
||||
))
|
||||
\Gm@cnth=\count280
|
||||
\Gm@cntv=\count281
|
||||
\c@Gm@tempcnt=\count282
|
||||
\Gm@bindingoffset=\dimen147
|
||||
\Gm@wd@mp=\dimen148
|
||||
\Gm@odd@mp=\dimen149
|
||||
\Gm@even@mp=\dimen150
|
||||
\Gm@layoutwidth=\dimen151
|
||||
\Gm@layoutheight=\dimen152
|
||||
\Gm@layouthoffset=\dimen153
|
||||
\Gm@layoutvoffset=\dimen154
|
||||
\Gm@dimlist=\toks20
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/geometry\geometry.cfg))
|
||||
(C:\Program Files\MiKTeX\tex/latex/hyperref\hyperref.sty
|
||||
Package: hyperref 2025-05-20 v7.01m Hypertext links for LaTeX
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/kvsetkeys\kvsetkeys.sty
|
||||
Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO)
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/generic/kvdefinekeys\kvdefinekeys.sty
|
||||
Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO)
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/generic/pdfescape\pdfescape.sty
|
||||
Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/generic/ltxcmds\ltxcmds.sty
|
||||
Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO)
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/generic/pdftexcmds\pdftexcmds.sty
|
||||
Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO
|
||||
)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/generic/infwarerr\infwarerr.sty
|
||||
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
|
||||
)
|
||||
Package pdftexcmds Info: \pdf@primitive is available.
|
||||
Package pdftexcmds Info: \pdf@ifprimitive is available.
|
||||
Package pdftexcmds Info: \pdfdraftmode found.
|
||||
))
|
||||
(C:\Program Files\MiKTeX\tex/latex/hycolor\hycolor.sty
|
||||
Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO)
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/hyperref\nameref.sty
|
||||
Package: nameref 2023-11-26 v2.56 Cross-referencing by name of section
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/refcount\refcount.sty
|
||||
Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO)
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/generic/gettitlestring\gettitlestring.sty
|
||||
Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/kvoptions\kvoptions.sty
|
||||
Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO)
|
||||
))
|
||||
\c@section@level=\count283
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/etoolbox\etoolbox.sty
|
||||
Package: etoolbox 2025/02/11 v2.5l e-TeX tools for LaTeX (JAW)
|
||||
\etb@tempcnta=\count284
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/generic/stringenc\stringenc.sty
|
||||
Package: stringenc 2019/11/29 v1.12 Convert strings between diff. encodings (HO
|
||||
)
|
||||
)
|
||||
\@linkdim=\dimen155
|
||||
\Hy@linkcounter=\count285
|
||||
\Hy@pagecounter=\count286
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/hyperref\pd1enc.def
|
||||
File: pd1enc.def 2025-05-20 v7.01m Hyperref: PDFDocEncoding definition (HO)
|
||||
Now handling font encoding PD1 ...
|
||||
... no UTF-8 mapping file for font encoding PD1
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/generic/intcalc\intcalc.sty
|
||||
Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
|
||||
)
|
||||
\Hy@SavedSpaceFactor=\count287
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/hyperref\puenc.def
|
||||
File: puenc.def 2025-05-20 v7.01m Hyperref: PDF Unicode definition (HO)
|
||||
Now handling font encoding PU ...
|
||||
... no UTF-8 mapping file for font encoding PU
|
||||
)
|
||||
Package hyperref Info: Hyper figures OFF on input line 4157.
|
||||
Package hyperref Info: Link nesting OFF on input line 4162.
|
||||
Package hyperref Info: Hyper index ON on input line 4165.
|
||||
Package hyperref Info: Plain pages OFF on input line 4172.
|
||||
Package hyperref Info: Backreferencing OFF on input line 4177.
|
||||
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
|
||||
Package hyperref Info: Bookmarks ON on input line 4424.
|
||||
\c@Hy@tempcnt=\count288
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/url\url.sty
|
||||
\Urlmuskip=\muskip17
|
||||
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
|
||||
)
|
||||
LaTeX Info: Redefining \url on input line 4763.
|
||||
\XeTeXLinkMargin=\dimen156
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/generic/bitset\bitset.sty
|
||||
Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/generic/bigintcalc\bigintcalc.sty
|
||||
Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO
|
||||
)
|
||||
))
|
||||
\Fld@menulength=\count289
|
||||
\Field@Width=\dimen157
|
||||
\Fld@charsize=\dimen158
|
||||
Package hyperref Info: Hyper figures OFF on input line 6042.
|
||||
Package hyperref Info: Link nesting OFF on input line 6047.
|
||||
Package hyperref Info: Hyper index ON on input line 6050.
|
||||
Package hyperref Info: backreferencing OFF on input line 6057.
|
||||
Package hyperref Info: Link coloring OFF on input line 6062.
|
||||
Package hyperref Info: Link coloring with OCG OFF on input line 6067.
|
||||
Package hyperref Info: PDF/A mode OFF on input line 6072.
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\atbegshi-ltx.sty
|
||||
Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi
|
||||
package with kernel methods
|
||||
)
|
||||
\Hy@abspage=\count290
|
||||
\c@Item=\count291
|
||||
\c@Hfootnote=\count292
|
||||
)
|
||||
Package hyperref Info: Driver (autodetected): hpdftex.
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/hyperref\hpdftex.def
|
||||
File: hpdftex.def 2025-05-20 v7.01m Hyperref driver for pdfTeX
|
||||
\Fld@listcount=\count293
|
||||
\c@bookmark@seq@number=\count294
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/rerunfilecheck\rerunfilecheck.sty
|
||||
Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\atveryend-ltx.sty
|
||||
Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac
|
||||
kage
|
||||
with kernel methods
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/generic/uniquecounter\uniquecounter.sty
|
||||
Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO)
|
||||
)
|
||||
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
|
||||
85.
|
||||
)
|
||||
\Hy@SectionHShift=\skip51
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics\graphicx.sty
|
||||
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics\graphics.sty
|
||||
Package: graphics 2024/08/06 v1.4g Standard LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics\trig.sty
|
||||
Package: trig 2023/12/02 v1.11 sin cos tan (DPC)
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics-cfg\graphics.cfg
|
||||
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
|
||||
)
|
||||
Package graphics Info: Driver file: pdftex.def on input line 106.
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics-def\pdftex.def
|
||||
File: pdftex.def 2024/04/13 v1.2c Graphics/color driver for pdftex
|
||||
))
|
||||
\Gin@req@height=\dimen159
|
||||
\Gin@req@width=\dimen160
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/tools\longtable.sty
|
||||
Package: longtable 2024-10-27 v4.22 Multi-page Table package (DPC)
|
||||
\LTleft=\skip52
|
||||
\LTright=\skip53
|
||||
\LTpre=\skip54
|
||||
\LTpost=\skip55
|
||||
\LTchunksize=\count295
|
||||
\LTcapwidth=\dimen161
|
||||
\LT@head=\box53
|
||||
\LT@firsthead=\box54
|
||||
\LT@foot=\box55
|
||||
\LT@lastfoot=\box56
|
||||
\LT@gbox=\box57
|
||||
\LT@cols=\count296
|
||||
\LT@rows=\count297
|
||||
\c@LT@tables=\count298
|
||||
\c@LT@chunks=\count299
|
||||
\LT@p@ftn=\toks21
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\textcomp.sty
|
||||
Package: textcomp 2024/04/24 v2.1b Standard LaTeX package
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/l3backend\l3backend-pdftex.def
|
||||
File: l3backend-pdftex.def 2025-04-14 L3 backend support: PDF output (pdfTeX)
|
||||
\l__color_backend_stack_int=\count300
|
||||
) (AI_Gen.aux)
|
||||
\openout1 = `AI_Gen.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 17.
|
||||
LaTeX Font Info: ... okay on input line 17.
|
||||
*geometry* driver: auto-detecting
|
||||
*geometry* detected driver: pdftex
|
||||
*geometry* verbose mode - [ preamble ] result:
|
||||
* driver: pdftex
|
||||
* paper: a4paper
|
||||
* layout: <same size as paper>
|
||||
* layoutoffset:(h,v)=(0.0pt,0.0pt)
|
||||
* modes:
|
||||
* h-part:(L,W,R)=(71.13188pt, 455.24411pt, 71.13188pt)
|
||||
* v-part:(T,H,B)=(71.13188pt, 702.78308pt, 71.13188pt)
|
||||
* \paperwidth=597.50787pt
|
||||
* \paperheight=845.04684pt
|
||||
* \textwidth=455.24411pt
|
||||
* \textheight=702.78308pt
|
||||
* \oddsidemargin=-1.1381pt
|
||||
* \evensidemargin=-1.1381pt
|
||||
* \topmargin=-38.1381pt
|
||||
* \headheight=12.0pt
|
||||
* \headsep=25.0pt
|
||||
* \topskip=11.0pt
|
||||
* \footskip=30.0pt
|
||||
* \marginparwidth=50.0pt
|
||||
* \marginparsep=10.0pt
|
||||
* \columnsep=10.0pt
|
||||
* \skip\footins=10.0pt plus 4.0pt minus 2.0pt
|
||||
* \hoffset=0.0pt
|
||||
* \voffset=0.0pt
|
||||
* \mag=1000
|
||||
* \@twocolumnfalse
|
||||
* \@twosidefalse
|
||||
* \@mparswitchfalse
|
||||
* \@reversemarginfalse
|
||||
* (1in=72.27pt=25.4mm, 1cm=28.453pt)
|
||||
|
||||
Package hyperref Info: Link coloring OFF on input line 17.
|
||||
(AI_Gen.out) (AI_Gen.out)
|
||||
\@outlinefile=\write3
|
||||
\openout3 = `AI_Gen.out'.
|
||||
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/context/base/mkii\supp-pdf.mkii
|
||||
[Loading MPS to PDF converter (version 2006.09.02).]
|
||||
\scratchcounter=\count301
|
||||
\scratchdimen=\dimen162
|
||||
\scratchbox=\box58
|
||||
\nofMPsegments=\count302
|
||||
\nofMParguments=\count303
|
||||
\everyMPshowfont=\toks22
|
||||
\MPscratchCnt=\count304
|
||||
\MPscratchDim=\dimen163
|
||||
\MPnumerator=\count305
|
||||
\makeMPintoPDFobject=\count306
|
||||
\everyMPtoPDFconversion=\toks23
|
||||
) (C:\Program Files\MiKTeX\tex/latex/epstopdf-pkg\epstopdf-base.sty
|
||||
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
|
||||
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
|
||||
85.
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/00miktex\epstopdf-sys.cfg
|
||||
File: epstopdf-sys.cfg 2021/03/18 v2.0 Configuration of epstopdf for MiKTeX
|
||||
))
|
||||
LaTeX Font Info: External font `cmex10' loaded for size
|
||||
(Font) <12> on input line 19.
|
||||
LaTeX Font Info: External font `cmex10' loaded for size
|
||||
(Font) <8> on input line 19.
|
||||
LaTeX Font Info: External font `cmex10' loaded for size
|
||||
(Font) <6> on input line 19.
|
||||
|
||||
|
||||
[1
|
||||
|
||||
{C:/Users/kech/AppData/Local/MiKTeX/fonts/map/pdftex/pdftex.map}]
|
||||
|
||||
[2]
|
||||
|
||||
[3]
|
||||
|
||||
[4]
|
||||
|
||||
[5] (AI_Gen.aux)
|
||||
***********
|
||||
LaTeX2e <2024-11-01> patch level 2
|
||||
L3 programming layer <2025-04-29>
|
||||
***********
|
||||
Package rerunfilecheck Info: File `AI_Gen.out' has not changed.
|
||||
(rerunfilecheck) Checksum: 98397D1D26258D766FC36BD7CFEC6FAB;2898.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
9343 strings out of 469923
|
||||
143002 string characters out of 5479241
|
||||
540633 words of memory out of 5000000
|
||||
36047 multiletter control sequences out of 15000+600000
|
||||
635136 words of font info for 58 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
75i,6n,79p,319b,587s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
<C:\Users\kech\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi600\ectt1
|
||||
095.pk> <C:\Users\kech\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi600\
|
||||
tcrm1095.pk> <C:\Users\kech\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen/ec/dp
|
||||
i600\ecbx1200.pk> <C:\Users\kech\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen/
|
||||
ec/dpi600\ecrm1095.pk> <C:\Users\kech\AppData\Local\MiKTeX\fonts/pk/ljfour/jkna
|
||||
ppen/ec/dpi600\ecbx1440.pk> <C:\Users\kech\AppData\Local\MiKTeX\fonts/pk/ljfour
|
||||
/jknappen/ec/dpi600\ecrm1200.pk> <C:\Users\kech\AppData\Local\MiKTeX\fonts/pk/l
|
||||
jfour/jknappen/ec/dpi600\ecrm1728.pk>
|
||||
Output written on AI_Gen.pdf (5 pages, 109855 bytes).
|
||||
PDF statistics:
|
||||
408 PDF objects out of 1000 (max. 8388607)
|
||||
30 named destinations out of 1000 (max. 500000)
|
||||
153 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
|
||||
19
dokumentation/AI_Gen.out
Executable file
19
dokumentation/AI_Gen.out
Executable file
@@ -0,0 +1,19 @@
|
||||
\BOOKMARK [1][-]{section.1}{\376\377\000Z\000i\000e\000l\000s\000e\000t\000z\000u\000n\000g}{}% 1
|
||||
\BOOKMARK [1][-]{section.2}{\376\377\000A\000r\000c\000h\000i\000t\000e\000k\000t\000u\000r\000\374\000b\000e\000r\000s\000i\000c\000h\000t\000\040\000\050\000f\000i\000n\000a\000l\000\051}{}% 2
|
||||
\BOOKMARK [2][-]{subsection.2.1}{\376\377\000D\000o\000m\000\344\000n\000e\000n\000s\000t\000r\000u\000k\000t\000u\000r}{section.2}% 3
|
||||
\BOOKMARK [2][-]{subsection.2.2}{\376\377\000H\000i\000g\000h\000-\000L\000e\000v\000e\000l\000\040\000A\000r\000c\000h\000i\000t\000e\000k\000t\000u\000r}{section.2}% 4
|
||||
\BOOKMARK [2][-]{subsection.2.3}{\376\377\000Z\000e\000n\000t\000r\000a\000l\000e\000\040\000P\000r\000i\000n\000z\000i\000p\000i\000e\000n}{section.2}% 5
|
||||
\BOOKMARK [1][-]{section.3}{\376\377\000A\000u\000t\000h\000e\000n\000t\000i\000f\000i\000k\000a\000t\000i\000o\000n\000\040\000\050\000V\000a\000r\000i\000a\000n\000t\000e\000\040\000A\000:\000\040\000a\000u\000t\000h\000\137\000r\000e\000q\000u\000e\000s\000t\000\051}{}% 6
|
||||
\BOOKMARK [2][-]{subsection.3.1}{\376\377\000P\000r\000i\000n\000z\000i\000p}{section.3}% 7
|
||||
\BOOKMARK [2][-]{subsection.3.2}{\376\377\000A\000b\000l\000a\000u\000f}{section.3}% 8
|
||||
\BOOKMARK [2][-]{subsection.3.3}{\376\377\000H\000e\000a\000d\000e\000r\000-\000W\000e\000i\000t\000e\000r\000g\000a\000b\000e}{section.3}% 9
|
||||
\BOOKMARK [1][-]{section.4}{\376\377\000N\000g\000i\000n\000x\000\040\000K\000o\000n\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n}{}% 10
|
||||
\BOOKMARK [2][-]{subsection.4.1}{\376\377\000W\000i\000l\000d\000c\000a\000r\000d\000\040\000S\000e\000r\000v\000e\000r\000\040\000B\000l\000o\000c\000k}{section.4}% 11
|
||||
\BOOKMARK [2][-]{subsection.4.2}{\376\377\000U\000p\000s\000t\000r\000e\000a\000m\000\040\000M\000a\000p\000p\000i\000n\000g}{section.4}% 12
|
||||
\BOOKMARK [1][-]{section.5}{\376\377\000D\000o\000c\000k\000e\000r\000\040\000C\000o\000m\000p\000o\000s\000e\000\040\000\050\000\334\000b\000e\000r\000s\000i\000c\000h\000t\000\051}{}% 13
|
||||
\BOOKMARK [1][-]{section.6}{\376\377\000U\000I\000-\000K\000o\000n\000z\000e\000p\000t\000\040\000\050\000N\000a\000v\000i\000g\000a\000t\000i\000o\000n\000s\000-\000P\000o\000r\000t\000a\000l\000\051}{}% 14
|
||||
\BOOKMARK [2][-]{subsection.6.1}{\376\377\000F\000u\000n\000k\000t\000i\000o\000n}{section.6}% 15
|
||||
\BOOKMARK [2][-]{subsection.6.2}{\376\377\000U\000I\000-\000L\000a\000y\000o\000u\000t}{section.6}% 16
|
||||
\BOOKMARK [2][-]{subsection.6.3}{\376\377\000H\000T\000M\000L\000-\000P\000r\000o\000t\000o\000t\000y\000p\000\040\000\050\000P\000o\000r\000t\000a\000l\000\051}{section.6}% 17
|
||||
\BOOKMARK [2][-]{subsection.6.4}{\376\377\000P\000o\000r\000t\000a\000l\000\040\000a\000l\000s\000\040\000D\000o\000c\000k\000e\000r\000\040\000C\000o\000n\000t\000a\000i\000n\000e\000r}{section.6}% 18
|
||||
\BOOKMARK [1][-]{section.7}{\376\377\000Z\000u\000s\000a\000m\000m\000e\000n\000f\000a\000s\000s\000u\000n\000g}{}% 19
|
||||
BIN
dokumentation/AI_Gen.pdf
Executable file
BIN
dokumentation/AI_Gen.pdf
Executable file
Binary file not shown.
BIN
dokumentation/AI_Gen.synctex.gz
Executable file
BIN
dokumentation/AI_Gen.synctex.gz
Executable file
Binary file not shown.
249
dokumentation/AI_Gen.tex
Executable file
249
dokumentation/AI_Gen.tex
Executable file
@@ -0,0 +1,249 @@
|
||||
\documentclass[a4paper,11pt]{article}
|
||||
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{geometry}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{longtable}
|
||||
\usepackage{textcomp}
|
||||
|
||||
\geometry{margin=2.5cm}
|
||||
|
||||
\title{Service-Portal Architektur}
|
||||
\author{schooltech.ch}
|
||||
\date{\today}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\section{Zielsetzung}
|
||||
Ziel ist der Aufbau eines zentralen Login- und Navigations-Portals für mehrere unabhängige Web-Services,
|
||||
die in Docker-Containern betrieben werden.
|
||||
Benutzer authentifizieren sich einmal zentral und können anschließend zwischen Services wechseln,
|
||||
die jeweils unter eigenen Subdomains bereitgestellt werden.
|
||||
|
||||
\section{Architekturübersicht (final)}
|
||||
|
||||
\subsection{Domänenstruktur}
|
||||
\begin{itemize}
|
||||
\item \texttt{server.schooltech.ch} – Login- und Navigations-Portal (SPA)
|
||||
\item \texttt{<service>.server.schooltech.ch} – einzelne Services (Docker Container)
|
||||
\end{itemize}
|
||||
|
||||
\subsection{High-Level Architektur}
|
||||
\begin{verbatim}
|
||||
Internet
|
||||
|
|
||||
| HTTPS (*.server.schooltech.ch)
|
||||
v
|
||||
+---------------------+
|
||||
| Nginx ReverseProxy |
|
||||
| TLS, Auth, Routing |
|
||||
+---------------------+
|
||||
| |
|
||||
| +--> Service Container (abc)
|
||||
| abc.server.schooltech.ch
|
||||
|
|
||||
+--> Portal / Auth Service
|
||||
server.schooltech.ch
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{Zentrale Prinzipien}
|
||||
\begin{itemize}
|
||||
\item Ein Einstiegspunkt (Nginx)
|
||||
\item Zentrale Authentifikation (auth\_request)
|
||||
\item Services kennen kein Login
|
||||
\item Keine iFrames, kein Subpath-Rewrite
|
||||
\item Services laufen auf Root-Pfad (\texttt{/})
|
||||
\end{itemize}
|
||||
|
||||
\section{Authentifikation (Variante A: auth\_request)}
|
||||
|
||||
\subsection{Prinzip}
|
||||
Nginx prüft jeden Request zu einem Service mittels \texttt{auth\_request} gegen den Auth-Service.
|
||||
Der Auth-Service entscheidet ausschließlich anhand der Session (Cookie).
|
||||
|
||||
\subsection{Ablauf}
|
||||
\begin{enumerate}
|
||||
\item Benutzer loggt sich am Portal ein
|
||||
\item Portal setzt Session-Cookie:
|
||||
\begin{verbatim}
|
||||
Domain=.server.schooltech.ch
|
||||
Secure; HttpOnly; SameSite=None
|
||||
\end{verbatim}
|
||||
\item Benutzer ruft Service-Subdomain auf
|
||||
\item Nginx fragt \texttt{/internal/auth} beim Auth-Service an
|
||||
\item Bei Erfolg: Request wird an Service weitergeleitet
|
||||
\end{enumerate}
|
||||
|
||||
\subsection{Header-Weitergabe}
|
||||
Optional injiziert Nginx folgende Header:
|
||||
\begin{itemize}
|
||||
\item \texttt{X-Remote-User}
|
||||
\item \texttt{X-User-Roles}
|
||||
\end{itemize}
|
||||
|
||||
\section{Nginx Konfiguration}
|
||||
|
||||
\subsection{Wildcard Server Block}
|
||||
\begin{verbatim}
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name *.server.schooltech.ch;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/server.schooltech.ch/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/server.schooltech.ch/privkey.pem;
|
||||
|
||||
location / {
|
||||
auth_request /internal/auth;
|
||||
proxy_pass http://$upstream;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
|
||||
location = /internal/auth {
|
||||
proxy_pass http://auth:3000/internal/auth;
|
||||
proxy_pass_request_body off;
|
||||
proxy_set_header Content-Length "";
|
||||
proxy_set_header X-Original-URI $request_uri;
|
||||
}
|
||||
}
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{Upstream Mapping}
|
||||
\begin{verbatim}
|
||||
map $host $upstream {
|
||||
default portal:3000;
|
||||
abc.server.schooltech.ch abc:8080;
|
||||
xyz.server.schooltech.ch xyz:8080;
|
||||
}
|
||||
\end{verbatim}
|
||||
|
||||
\section{Docker Compose (Übersicht)}
|
||||
|
||||
\begin{verbatim}
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:alpine
|
||||
ports:
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./nginx:/etc/nginx/conf.d
|
||||
- ./certs:/etc/letsencrypt
|
||||
depends_on:
|
||||
- auth
|
||||
- portal
|
||||
networks:
|
||||
- internal
|
||||
|
||||
auth:
|
||||
image: node:18
|
||||
command: node auth.js
|
||||
networks:
|
||||
- internal
|
||||
|
||||
portal:
|
||||
image: node:18
|
||||
command: node portal.js
|
||||
networks:
|
||||
- internal
|
||||
|
||||
abc:
|
||||
image: service-abc
|
||||
networks:
|
||||
- internal
|
||||
|
||||
networks:
|
||||
internal:
|
||||
driver: bridge
|
||||
\end{verbatim}
|
||||
|
||||
\section{UI-Konzept (Navigations-Portal)}
|
||||
|
||||
\subsection{Funktion}
|
||||
\begin{itemize}
|
||||
\item Login
|
||||
\item Anzeige verfügbarer Services
|
||||
\item Wechsel per Full Navigation
|
||||
\item Kollabierbare Kopfzeile
|
||||
\item Floating Launcher (Bookmark)
|
||||
\end{itemize}
|
||||
|
||||
\subsection{UI-Layout}
|
||||
\begin{verbatim}
|
||||
+------------------------------------------------+
|
||||
| LOGO | Service A | Service B | User |
|
||||
+------------------------------------------------+
|
||||
| |
|
||||
| Service Overview / Last Service / Status |
|
||||
| |
|
||||
+------------------------------------------------+
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{HTML-Prototyp (Portal)}
|
||||
\begin{verbatim}
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Service Portal</title>
|
||||
<style>
|
||||
header {
|
||||
position: fixed;
|
||||
top: 0; left: 0; right: 0;
|
||||
height: 60px;
|
||||
backdrop-filter: blur(6px);
|
||||
background: rgba(0,0,0,0.3);
|
||||
color: white;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 20px;
|
||||
}
|
||||
main {
|
||||
padding-top: 80px;
|
||||
}
|
||||
.service {
|
||||
display: inline-block;
|
||||
margin: 10px;
|
||||
padding: 20px;
|
||||
border: 1px solid #ccc;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<strong>Portal</strong>
|
||||
</header>
|
||||
<main>
|
||||
<div class="service" onclick="go('abc')">Service ABC</div>
|
||||
<div class="service" onclick="go('xyz')">Service XYZ</div>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
function go(name) {
|
||||
localStorage.setItem("lastService", name);
|
||||
window.location.href = "https://" + name + ".server.schooltech.ch";
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{Portal als Docker Container}
|
||||
Das Portal wird als eigener Container betrieben und statisch oder via Node.js ausgeliefert.
|
||||
Es besitzt keine direkte Kopplung zu den Services außer über URLs.
|
||||
|
||||
\section{Zusammenfassung}
|
||||
Diese Architektur ermöglicht:
|
||||
\begin{itemize}
|
||||
\item saubere Trennung von Portal und Services
|
||||
\item zentrale Sicherheit
|
||||
\item einfache Erweiterbarkeit
|
||||
\item wartbare Reverse-Proxy-Konfiguration
|
||||
\end{itemize}
|
||||
|
||||
\end{document}
|
||||
9
dokumentation/AI_Gen.txt
Executable file
9
dokumentation/AI_Gen.txt
Executable file
@@ -0,0 +1,9 @@
|
||||
Ich habe eine WEbPage hinter einer Firewall. Die besteht aus mehreren Services die in Docker Containern mit jeweils eine Einstiegs-Seite (an einem offenem Port) breitstehen.
|
||||
|
||||
Jetzt will ich für Kunden eine Login-Page aufbauen. Auf der Login-Page soll in der Kopfzeile ein transparenter Balken sein, mit User- und Passwort Authentifikation. Wenn der User angemeldet ist sollen in der Kopf-Zeile verschiedene Buttons (für verschiedene Services) erscheinen. Jeder dieser Services soll auf einen Container zeigen, so dass die Kopfzeile als Navigation der Services möglich ist.
|
||||
|
||||
Wenn auf eine der Services gedrückt wird, soll die Kopfzeile zur "kollabieren" und nur noch als "offnebares-bookmark" oder so bereitstehen. Die Haupt-Page soll eben auf diesen Service zeigen.
|
||||
|
||||
Ich gehe davon aus, dass dafür 1) eine Login-Site (eventuell mit NodeJS, da ich das kenne) mit Navigation nötig ist, 2) Nginx im Hintergrund die Pages weiterleitet.
|
||||
|
||||
Skizziere erst mal einen Aufbau, bevor ich über Implementationen nachdenke.
|
||||
Reference in New Issue
Block a user