Какие знаешь протоколы Аутентификации

«Какие знаешь протоколы Аутентификации» — вопрос из категории Безопасность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Веб-приложения используют разные протоколы аутентификации, вот основные:

  1. OAuth 2.0 – делегированный доступ к ресурсам (например, вход через Google/Facebook). Работает через токены (access/refresh).
    // Пример запроса access token
    fetch('https://oauth.provider/token', {
      method: 'POST',
      body: 'grant_type=authorization_code&code=...'
    });
  1. JWT (JSON Web Token) – токен в формате JSON с подписью (Header.Payload.Signature). Хранится в localStorage/cookies.
    // Пример декодирования JWT
    const payload = JSON.parse(atob(token.split('.')[1]));
  1. Basic Auth – логин/пароль в заголовке Authorization: Basic base64(login:password). Устарел из-за отсутствия безопасности.

  2. OpenID Connect – надстройка над OAuth 2.0 для аутентификации (ID-токен + userinfo).

  3. SAML – XML-протокол для enterprise (SSO в корпоративных системах).

Для SPA чаще используют OAuth 2.0 + JWT. Важно: токены должны передаваться по HTTPS, а JWT — подписываться (не использовать unsigned).