Files
2026-02-24 01:29:59 +01:00

191 lines
5.4 KiB
TeX

\section{Autorizáció}
\begin{frame}{Mi az autorizáció?}
\begin{block}{Definíció}
Meghatározza, hogy egy azonosított felhasználó milyen erőforrásokhoz férhet hozzá és milyen műveleteket végezhet.
\end{block}
\begin{itemize}
\item \textbf{Kérdés:} Mit tehetsz?
\item \textbf{Cél:} Jogosultságok szabályozása
\item \textbf{Eredmény:} Engedélyezett vagy tiltott művelet
\end{itemize}
\begin{alertblock}{Fontos!}
Autorizáció az authentikáció után történik.
\end{alertblock}
\end{frame}
\begin{frame}{Autorizációs modelljei}
\begin{enumerate}
\item \textbf{RBAC (Role-Based Access Control)}
\begin{itemize}
\item Szerepkörök alapján
\item Példa: Admin, Editor, User
\end{itemize}
\item \textbf{ABAC (Attribute-Based)}
\begin{itemize}
\item Attribútum alapján (user, resource, context)
\item Példa: "Department = IT és 9-17 között"
\end{itemize}
\item \textbf{ACL (Access Control List)}
\begin{itemize}
\item Erőforrás-szintű lista
\item Példa: fájlrendszer jogosultságok
\end{itemize}
\end{enumerate}
\end{frame}
\begin{frame}{RBAC - Szerepkör alapú}
\begin{block}{Lényege}
Felhasználók szerepköröket kapnak, ez határozza meg a jogosultságokat.
\end{block}
\begin{columns}
\begin{column}{0.48\textwidth}
\textbf{Előnyök:}
\begin{itemize}
\item Könnyű adminisztráció
\item Átlátható
\item Gyors ellenőrzés
\end{itemize}
\end{column}
\begin{column}{0.48\textwidth}
\textbf{Hátrányok:}
\begin{itemize}
\item Skálázhatóság
\item Kevesebb rugalmasság
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\begin{frame}{ABAC - Attribútum alapú}
\begin{block}{Lényege}
Hozzáférési szabályok attribútumok alapján.
\end{block}
\begin{itemize}
\item \textbf{User:} szerepkör, osztály, beosztás
\item \textbf{Resource:} tulajdonos, típus
\item \textbf{Context:} idő, hely, eszköz
\end{itemize}
\begin{exampleblock}{Példa szabály}
\texttt{(role=Manager) AND (resource.owner = user) AND (time < 18:00)}
\end{exampleblock}
\end{frame}
\begin{frame}{ACL - Access Control List}
\begin{block}{Lényege}
Erőforrásonként tárolt lista a hozzáférési jogokról.
\end{block}
\begin{itemize}
\item \textbf{Példa:} fájlrendszer (read, write, execute)
\item \textbf{Előny:} finém hozzáférés
\item \textbf{Hátrány:} nagy rendszereknelnehéz kezelni
\end{itemize}
\end{frame}
\begin{frame}{Autorizáció webalkalm azásban}
\begin{block}{Tipikus folyamat}
Szerver minden kérésnél ellenőrzi a jogosultságot.
\end{block}
\begin{enumerate}
\item Authnentikáció után szerepkör kiosztás
\item Tokenben vagy session-ben tárolás
\item Middleware ellenőrzi a hozzáférést
\item Nincs jog: \texttt{403 Forbidden}
\end{enumerate}
\begin{alertblock}{HTTP státuszkód}
\texttt{401} = nincs auth, \texttt{403} = nincs jogosultság
\end{alertblock}
\end{frame}
\begin{frame}[fragile,shrink=10]{Autorizációs middleware (RBAC)}
\begin{exampleblock}{Egyszerű szerepkör ellenőrzés}
\tiny
\begin{verbatim}
const authorize = (...roles) => {
return (req, res, next) => {
const { role } = req.user; // pl. JWT-ből
if (!roles.includes(role)) {
return res.status(403).json({ error: 'Forbidden' });
}
next();
};
};
app.get('/admin', auth, authorize('Admin'), (req, res) => {
res.json({ data: 'Admin content' });
});
\end{verbatim}
\end{exampleblock}
\end{frame}
\begin{frame}[fragile,shrink=10]{Policy alapú autorizáció (ABAC)}
\begin{exampleblock}{Szabály központú hozzáférés}
\tiny
\begin{verbatim}
const canAccess = (user, resource) => {
return user.department === resource.department &&
user.level >= resource.requiredLevel &&
new Date().getHours() < 18;
};
app.get('/reports/:id', auth, async (req, res) => {
const report = await getReport(req.params.id);
if (!canAccess(req.user, report)) {
return res.status(403).json({ error: 'Forbidden' });
}
res.json(report);
});
\end{verbatim}
\end{exampleblock}
\end{frame}
\begin{frame}{Legkisebb jogosultság elve}
\begin{block}{Principle of Least Privilege}
Mindenki csak a feladatohoz szükséges minimális jogokat kapja.
\end{block}
\begin{itemize}
\item Csökkenti a kockázatot
\item Korlátozza a hibák hatását
\item Egyszerűbb auditálás
\end{itemize}
\begin{alertblock}{Gyakori hiba}
\textbf{Mindenki admin} = gyors fejlesztés, de veszélyes élesben!
\end{alertblock}
\end{frame}
\begin{frame}{Autorizáció Best Practices}
\begin{itemize}
\item Minden érzékeny végpontot ellenőrizz
\item Middleware vagy policy réteg
\item Role/policy központi kezelés
\item Logolás
\item Admin funkciók külön kezelése
\item RBAC + ABAC kombináció
\end{itemize}
\end{frame}
\begin{frame}{Összefoglalás - Autorizáció}
\begin{itemize}
\item Autorizáció = hozzáférések és jogosultságok kezelése
\item 401 vs 403: authentikáció hiánya vs jogosultság hiánya
\item Fő modellek: RBAC, ABAC, ACL
\item Middleware-ekkel megvalósítható a gyakorlatban
\item Least Privilege elv alkalmazása
\end{itemize}
\vspace{0.5cm}
\end{frame}