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获取更多资讯