Files
papers/lux-id-iam/sections/02-casdoor-foundation.tex
zeekay abf99d05fc papers: reorganize into per-paper dirs, add Antje Worring as co-author
Restructured from flat .tex/.pdf files into per-paper subdirectories.
Added Antje Worring as co-author on all papers.
Synced PDFs to pdfs/ for download site.
2026-04-18 21:50:07 -07:00

46 lines
1.7 KiB
TeX

\section{Casdoor Foundation}
\subsection{Architectural Decision}
Lux.id is built upon Casdoor, an open-source IAM platform written in Go. This decision was driven by several factors:
\begin{enumerate}
\item \textbf{Protocol completeness}: Casdoor provides mature implementations of essential authentication protocols
\item \textbf{Performance}: Go's compiled nature and efficient concurrency model enable high-throughput authentication
\item \textbf{Extensibility}: Plugin architecture allows addition of blockchain-specific features
\item \textbf{Multi-tenancy}: Native support for organizational isolation critical for enterprise deployment
\item \textbf{Active development}: Vibrant open-source community ensures continuous improvement
\end{enumerate}
\subsection{Multi-Tenancy Architecture}
Lux.id implements hierarchical multi-tenancy:
\begin{equation}
\text{Tenant}_i = \{\text{Org}_i, \text{Apps}_i, \text{Users}_i, \text{Policies}_i\}
\end{equation}
Where each tenant maintains isolated:
\begin{itemize}
\item Organizations ($\text{Org}_i$): Logical groupings of users
\item Applications ($\text{Apps}_i$): Protected resources and services
\item Users ($\text{Users}_i$): Identity principals
\item Policies ($\text{Policies}_i$): Access control rules
\end{itemize}
\subsection{Extensibility Framework}
The extension mechanism follows a provider pattern:
\begin{lstlisting}[language=C]
type Provider interface {
Authenticate(credentials interface{}) (*User, error)
Authorize(user *User, resource string) bool
GetUserInfo(token string) (*UserInfo, error)
}
\end{lstlisting}
This allows integration of new authentication methods including blockchain wallets, zero-knowledge proofs, and biometric systems.