Схема внешней аутентификации

внешний интерфейс

   Существует несколько распространенных интерфейсных решений: HTTP Basic Authentication, session-cookie, аутентификация Token, OAuth (открытая авторизация), JWT и т. д.

1. Базовая HTTP-аутентификация

1. Концепция базовой HTTP-аутентификации

Метод авторизации   Базовая аутентификация HTTP — это базовый метод авторизации, реализуемый браузером в соответствии с протоколом http.В процессе обмена данными по протоколу HTTP протокол HTTP определяет метод, позволяющий HTTP-серверу аутентифицировать клиента.

2. Процесс аутентификации HTTP Basic Authenticatio

   Шаг 1: клиент запрашивает данные с сервера. Запрошенный контент может быть веб-страницей или асинхронным запросом ajax. В это время предполагается, что клиент не прошел аутентификацию;
   Шаг 2: сервер отправляет клиенту код запроса подтверждения 401, после чего открывается интерфейс входа пользователя;
Шаг 3: Пользователь вводит информацию о пользователе и пароль, и браузер автоматически выполняет шифрование в форме Base64;
Шаг 4: После того, как сервер получает запрос, он расшифрует информацию, сравнивает ее с пользовательской информацией в базе данных и возвращает запрошенный контент, который потребности пользователей.
Решение проблемы с входом в систему: во время выхода из системы на сервере создается специальная учетная запись для выхода.Когда полученная информация для аутентификации представляет собой имя пользователя и пароль для выхода, выход из системы проходит успешно, а когда клиент выходит из системы, вручную Аутентификация в заголовке запроса, установите для него учетную запись и пароль для выхода из системы по умолчанию.

2. Сессионные файлы cookie

1. Концепция сеансовых файлов cookie

Сеанс на стороне сервера (сеанс) и файл cookie на стороне браузера используются для обеспечения внешней и внутренней аутентификации.Поскольку HTTP-запрос не имеет состояния, сеанс (сеанс) необходимо создать на стороне сервера, а запросы одного и того же клиента поддерживаются в соответствующих сеансах.В сеансе всякий раз, когда запрос поступает на сервер, сначала проверьте, создал ли клиент сеанс на сервере.Если это так, аутентификация прошла успешно, в противном случае нет аутентификация.

1. Процесс аутентификации сеансовых файлов cookie

  Первый шаг: сервер создает сеанс на стороне сервера, когда он принимает первый доступ клиента, затем сохраняет сеанс в памяти, затем генерирует уникальную строку идентификации для сеанса, а затем подставляет уникальную строку идентификации в заголовок ответа.
   Шаг 2: когда браузер получает ответ на запрос, он анализирует заголовок ответа, а затем сохраняет идентификатор session_id в локальном файле cookie.Браузер передаст информацию о файле cookie под именем домена в заголовке запроса в следующем HTTP-запросе.
  Третий шаг: когда сервер принимает запрос клиента, он анализирует session_id в файле cookie заголовка запроса, а затем находит сеанс клиента, сохраненный сервером, в соответствии с session_id, а затем решает, является ли запрос законным.

3. Верификация токена

1. Процесс аутентификации токена

  Первый шаг: клиент запрашивает авторизацию, используя логин и пароль;
   Шаг 2: Сервер получает запрос на проверку имени пользователя и пароля;
Третий шаг: после успешной аутентификации сервер выдает токен, после чего токен отправляется клиенту;
   Шаг 4: После того, как клиент получит токен, он может сохранить его, например, в файлах cookie или локальном хранилище;
   Шаг 5: Клиент должен приносить токен, выданный сервером, каждый раз, когда он запрашивает ресурсы с сервера;    Шаг 6: сервер получает запрос, а затем проверяет токен, переданный в клиентском запросе.Если проверка прошла успешно, он возвращает запрошенные данные клиенту.

Во-вторых, схема проверки токена JWT

1. Концепция JWT
JWT — это схема, предложенная Auth0 для реализации проверки авторизации путем шифрования и подписи JSON.После успешного входа в систему соответствующая информация формируется в объект json, а затем объект каким-то образом шифруется и возвращается клиенту.Клиент запрашивает в следующий раз. Когда токен приносится с собой, сервер проверяет действительность токена при получении запроса. Фактически, он проверяет действительность запроса.
2. Состав JWT
Заголовки: включает в себя категорию (типы), алгоритм шифрования (ALG);
 Заявления: включая информацию о пользователе, которую необходимо передать;
 Подпись: строка подписи, зашифрованная в соответствии с алгоритмом alg и закрытым ключом, этот раздел является наиболее важной конфиденциальной информацией и может быть расшифрован только на стороне сервера;

4. OAuth (открытая авторизация)

Во-первых, концепция OAuth

OAuth (открытая авторизация) — это открытый стандарт, который позволяет пользователям разрешать сторонним веб-сайтам доступ к информации, которую они хранят у другого поставщика услуг, без необходимости предоставлять имена пользователей и пароли сторонним веб-сайтам или делиться всеми своими данными, чтобы защищать безопасность и конфиденциальность пользовательских данных, сторонние веб-сайты должны явно запрашивать у пользователей авторизацию перед доступом к пользовательским данным. Среди наших общих поставщиков, предоставляющих услуги аутентификации OAuth, Alipay, QQ и WeChat.

Во-вторых, процесс аутентификации OAuth.

  Первый шаг: запросите авторизацию у пользователя, и когда мы нажмем на сторонний портал, сторонняя служба авторизации направит нас на стороннюю страницу авторизации входа;
   Шаг 2: Когда пользователь щелкает авторизацию и входит в систему, сервер авторизации сгенерирует учетные данные пользователя (код). Учетные данные пользователя будут добавлены к перенаправленному адресу redirect_uri;
   Шаг 3: Пользователь использует учетные данные пользователя (код) при выполнении запроса, и сервер проверки возвращает токен доступа (токен доступа);
   Шаг 4: Когда вы запрашиваете ресурсы с токеном, вы получаете информацию о защищенных ресурсах.