\section{Authentikáció} \begin{frame}{Mi az authentikáció?} \begin{block}{Definíció} Folyamat, amely során a rendszer ellenőrzi egy felhasználó identitását. \end{block} \begin{itemize} \item \textbf{Kérdés:} Ki vagy? \item \textbf{Cél:} Felhasználó identitásának megállapítása \item \textbf{Eredmény:} Sikeres vagy sikertelen azonosítás \end{itemize} \begin{alertblock}{Fontos!} Authentikáció $\neq$ Autorizáció! \end{alertblock} \end{frame} \begin{frame}{Authentikáció vs. Autorizáció} \begin{columns} \begin{column}{0.48\textwidth} \begin{block}{Authentikáció} \begin{itemize} \item Ki vagy? \item Bejelentkezés \item Példa: Jelszó ellenőrzés \end{itemize} \end{block} \end{column} \begin{column}{0.48\textwidth} \begin{block}{Autorizáció} \begin{itemize} \item Mit tehetsz? \item Jogosultságok \item Példa: Admin jogosultság \end{itemize} \end{block} \end{column} \end{columns} \begin{center} \texttt{Authentikáció} $\rightarrow$ \texttt{Autorizáció} \end{center} \end{frame} \begin{frame}{Authentikációs módszerek} \begin{enumerate} \item \textbf{Tudás alapú} \begin{itemize} \item Példa: jelszó, PIN kód \end{itemize} \item \textbf{Tulajdon alapú} \begin{itemize} \item Példa: okostelefon, hardver token \end{itemize} \item \textbf{Inherencia alapú} \begin{itemize} \item Példa: ujjlenyomat, arcfelismerés \end{itemize} \end{enumerate} \end{frame} \begin{frame}{Többfaktoros authentikáció (MFA)} \begin{block}{Multi-Factor Authentication} Két vagy több független faktor kombinációja. \end{block} \begin{itemize} \item \textbf{2FA példák:} \begin{itemize} \item Jelszó + SMS kód \item Jelszó + Authenticator app \item Jelszó + ujjlenyomat \end{itemize} \item \textbf{Előnyök:} \begin{itemize} \item Magasabb biztonság \item Védelem jelszó kompromittálódás esetén \end{itemize} \end{itemize} \end{frame} \begin{frame}[fragile]{Jelszó alapú authentikáció} \begin{block}{Leggyakoribb módszer} Felhasználónév + jelszó párossal történő azonosítás. \end{block} \begin{itemize} \item \textbf{Folyamat:} \begin{enumerate} \item Felhasználó megadja username + password \item Rendszer összehasonlítja a hash-sel \item Sikeres/sikertelen válasz \end{enumerate} \item \textbf{Biztonság:} \begin{itemize} \item Soha ne tároljuk plain text-ben! \item Erős hash (bcrypt, Argon2) \item Salt minden jelszóhoz \end{itemize} \end{itemize} \end{frame} \begin{frame}{Token alapú authentikáció} \begin{block}{Modern megközelítés} Bejelentkezés után szerver tokent generál, kliens minden kéréshez csatolja. \end{block} \begin{enumerate} \item Bejelentkezés (username + password) \item Szerver ellenőrzi \item Token generálás \item Kliens eltárolja (localStorage, cookie) \item Token csatolása minden kéréshez \item Szerver validálja \end{enumerate} \begin{itemize} \item \textbf{Típusok:} JWT, OAuth, API keys \item \textbf{Előnyök:} Stateless, skálázható \end{itemize} \end{frame} \begin{frame}{Session alapú authentikáció} \begin{block}{Hagyományos megközelítés} Bejelentkezési információkat a szerver tárolja session-ökben. \end{block} \begin{enumerate} \item Bejelentkezés \item Szerver session létrehozás \item Session ID küldése cookie-ban \item Kliens csatolja minden kéréshez \item Szerver azonosítja a felhasználót \end{enumerate} \begin{columns} \begin{column}{0.48\textwidth} \textbf{Előnyök:} \begin{itemize} \item Biztonságosabb \item Könnyű visszavonás \end{itemize} \end{column} \begin{column}{0.48\textwidth} \textbf{Hátrányok:} \begin{itemize} \item Stateful \item Nehezebb skálázás \end{itemize} \end{column} \end{columns} \end{frame} \begin{frame}{OAuth 2.0 / OpenID Connect} \begin{block}{Harmadik fél authentikáció} Bejelentkezés külső szolgáltatókkal (Google, Facebook, GitHub). \end{block} \begin{itemize} \item \textbf{OAuth 2.0:} Autorizációs framework \item \textbf{OpenID Connect:} Authentikációs réteg \item \textbf{Előnyök:} \begin{itemize} \item Nincs jelszó kezelés \item Jobb UX \item Biztonságos protokoll \end{itemize} \item \textbf{Használat:} \begin{itemize} \item Social login \item SSO megoldások \end{itemize} \end{itemize} \end{frame} \begin{frame}[shrink=5]{Biztonsági megfontolások} \begin{alertblock}{Gyakori sebezhetőségek} \begin{itemize} \item Gyenge jelszavak \item Nincs rate limiting \item Token kiszivárogtatás \item Man-in-the-middle (nincs HTTPS) \end{itemize} \end{alertblock} \begin{block}{Best Practices} \begin{itemize} \item HTTPS mindig \item Erős jelszó policy \item Rate limiting \item MFA \item Token lejárati idő \item CSRF védelem \end{itemize} \end{block} \end{frame}