Опрос: Как бы вы выбрали выбор технологии OAuth2.0

Spring Boot Безопасность

1. Введение

в настоящее время используетOAuth2.0серединаAuthorization Server(Сервер авторизации) является неизбежным средством.В большинстве случаев мы вызываем некоторые известные, надежные и проверенные сторонние платформы, такие какQQ, WeChat, Weibo, гитхабЖдать. Наше приложение только какClientПросто зарегистрируйтесь и получите доступ. То есть нам нужно только реализоватьOAuth2.0Логика клиента в порядке, и вам не нужно заботиться о реализации сервера авторизации. Однако иногда нам все же хочется построить собственныйAuthorization Server. Как мы должны достичь этого? Я не буду сегодня обсуждать конкретные технические детали, давайте поговорим оOAuth2.0выбор технологии.

2. Статус Spring Security OAuth2

делаетУчебники, связанные с Spring Securityсначала рассмотрюSpringкоторый предоставилOAuth2.0Функции. Когда я зашел на официальный сайт Spring, чтобы узнать о соответствующих библиотеках классов, я обнаружил, чтоSpringизOAuth2.0Уведомление о том, что библиотека классов скоро истечет, есть картинки и правда:

Таким образом, срок действия модуля Spring Security OAuth скоро истечет, а последующие функции были перенесены в Spring Security 5.2.x, но функция сервера авторизации больше не будет предоставляться.В официальном заявлении также упоминалось, что нынешняяSpring Security OAuthфилиал2.3.xа также2.4.x.2.3.xВерсия завершится в марте 2020 года. Мы будем поддерживать версию 2.4.x в течение как минимум одного года после достижения паритета функций. Поэтому пользователям рекомендуется начать использовать свою устаревшую версию.OAuth 2.0Миграция приложений клиента и сервера ресурсов вSpring Security 5.2Новая поддержка в . Подробнее см.Официальный блог.

3. Выбор технологии для OAuth2.0

Из приведенной выше информации,Spring Securityвсе еще доступно в будущемOAuth2изПоддержка клиентова такжеПоддержка сервера ресурсов.Сервер авторизациибудет постепенно отходитьSpring Securityэкологическая среда. Поэтому, если нет требований к серверу авторизации, выберитеSpring SecurityПроблем пока нет, как нам выбирать, когда у нас есть этот спрос? Я исследовал здесь несколько бесплатных проектов с открытым исходным кодом.

3.1 keycloak

keycloakдаRedHatПроизводится компанией. Это инструмент с открытым исходным кодом, предназначенный для решения задач аутентификации приложений и служб и управления доступом. Цель защиты приложений и служб может быть достигнута с помощью простой настройки. Он предоставляет полезные функции для управления идентификацией и доступом:

  • войти(SSO), прокси-серверы идентификации и сторонние логины.
  • служба поддержкиOpenID Connect,OAuth 2.0а такжеSAML 2.0и другие стандартные протоколы.
  • Централизованное управление пользователями.
  • Клиентский адаптер для простой защиты приложений и служб.
  • Консоль визуального управления и консоль управления учетными записями.
  • Масштабируемость, высокая производительность и быстрое внедрение.

Документация завершена, и это зрелый бесплатный продукт коммерческого уровня.

3.2 Nimbus SDK

полное имяNimbus OAuth 2.0 / OpenID Connect SDK, который является библиотекой классов. Официальный представитель Spring упомянул в блоге, что эту библиотеку можно использовать для сборкиAuthorization Server, который поддерживает обаOAuth2.0а такжеOpenID Connect, два протокола были реализованы относительно полностью, и дополнительный протокол также активно развивается. Недостатком является то, что не так много китайских руководств, и это библиотека классов. Тем не менее, официальныйDEMO, Способным ученикам нетрудно начать.

3.3 Apache Oltu

Apache OltuЭто дипломный проект Apache Foundation. при условииOAuth2.0Согласно информации, представленной в документе, начать работу относительно просто, а модульность обеспечиваетСервер авторизации, Сервер ресурсов, Клиент, JOSE,служба поддержки. В сети до сих пор много китайских туториалов.Недостаток в том, что поддержка проекта относительно отстает.Последняя версия была выпущена в 2016 году.

3.4 Vertx-auth-oauth2

vertx-auth-oauth2принадлежатьVert.xЭкология обеспечивает относительно полную реализацию OAuth2.0, а поддержка проекта относительно активна, единственным недостатком является ограничение стека технологий.

4. Резюме

противJavaНекоторые изOAuth2.0Ссылка на технический выбор приведена выше. Не уверены, какой бы вы выбрали? Я в публичном аккаунте:FelordcnзапустилOAuth2.0Надеюсь, вы сможете принять участие в голосовании технического отбора.Портал для голосования [Скопируйте ссылку на WeChat, чтобы открыть опрос]

关注公众号:Felordcn获取更多资讯

Личный блог: https://felord.cn