Вопрос или проблема
Какие серверы OpenID Connect с открытым исходным кодом, размещенные на собственных серверах, поддерживают такие расширенные функции, как напоминания о пароле, авторизация через Facebook и т. д. из коробки? Мне также нужна возможность контролировать их программным способом (через API).
Python, PHP, C# (хуже), Java или другие.
Ну, я думаю, что вы не найдете какого-либо пакета, который предоставит вам все эти возможности и функции, которые вы запрашиваете. Тем не менее, я рекомендую вам обратить внимание на некоторые из рекомендуемых библиотек для Python и JavaScript ниже для реализации поставщика OpenID Connect:
- Python:
Authlib
,OAuthlib
(Django OAuth Toolkit, если вы готовы использовать Django) &django-oidc-provider
- JavaScript (Node.js):
node-oidc-provider
Я советую вам также проверить некоторые библиотеки OAuth2.0 для реализации сервера авторизации OAuth2.0, такие как oauth2orize (с oauth2orize-openid) и node-oauth20-provider. Помните, что OpenID Connect (OIDC) является тонким слоем поверх протокола OAuth2.0.
Рекомендую вам посетить: https://openid.net/developers/certified/, чтобы найти сертифицированных поставщиков OpenID Connect для каждого языка программирования!
Надеюсь, это поможет, дайте знать, если у вас есть еще вопросы.
Ответ или решение
Выбор провайдера OpenID Connect: что учесть?
При выборе сервера OpenID Connect с открытым исходным кодом, который поддерживает такие продвинутые функции, как напоминания о паролях и аутентификация через Facebook, необходимо учитывать несколько ключевых факторов. В этом ответе мы рассмотрим доступные решения и их возможности, а также языки программирования, на которых они реализованы.
1. Изучение основных требований
Перед тем как рассматривать конкретные решения, можно выделить несколько требований, которые важны для вашего проекта:
- Поддержка OpenID Connect: Провайдер должен обеспечить совместимость с протоколом OpenID Connect (OIDC), который является расширением OAuth 2.0.
- Функционал напоминаний о паролях: Наличие встроенной функции, позволяющей пользователям восстанавливать доступ к своим учетным записям.
- Аутентификация через социальные сети: Возможность интеграции с такими платформами, как Facebook, что значительно упрощает процесс входа для пользователей.
- Программный контроль через API: Убедитесь, что выбранный провайдер предоставляет API для управления функциональностью и интеграции с другими системами.
- Открытый исходный код: Возможность модифицировать и адаптировать решение под ваши конкретные нужды.
2. Рекомендуемые решения
Python
-
Django OAuth Toolkit: Если вы планируете использовать Django, то эта библиотека станет отличным выбором. Она предоставляет мощные инструменты для реализации OAuth 2.0 и поддержки OIDC. Однако может потребоваться небольшая доработка, чтобы добавить функции напоминания о паролях и интеграцию с Facebook.
-
Authlib и OAuthlib: Эти библиотеки предоставляют более урезанные инструменты для создания OAuth 2.0 и OpenID Connect решений. Дополнительные возможности могут потребовать некоторой разработки, чтобы реализовать функционал по работе с паролями.
JavaScript (Node.js)
- node-oidc-provider: Эта библиотека позволяет вам быстро развернуть OpenID Connect провайдер с полным набором функций. Обратите внимание, что хотя она не включает из коробки функции напоминаний о паролях или аутентификацию через Facebook, вы можете легко интегрировать эти функции при помощи сторонних библиотек или путем написания собственного кода.
Java
- Keycloak: Это мощный сервер аутентификации и авторизации, который поддерживает OpenID Connect и OAuth 2.0, а также предоставляет встроенные возможности для аутентификации через социальные сети. Keycloak также поддерживает настройки напоминаний о паролях, а также возможность программного управления через REST API. Это решение представляет собой хороший вариант для более крупных и сложных систем, требующих высокой степени настройки.
3. Важно помнить
Несмотря на наличие функционала безопасности, возможностей интеграции и открытого исходного кода, стоит учитывать, что каждая библиотека или сервер имеют свои ограничения. Вам, возможно, придется потратить время на их настройку и адаптацию под ваши нужды. Пожалуйста, проверьте документацию каждого из предложенных решений и протестируйте их, чтобы понять, какое из них лучше всего отвечает вашим требованиям.
Заключение
В итоге, при выборе провайдера OpenID Connect с поддержкой продвинутого функционала, вы получите разнообразные возможности, от встроенных библиотек на Python и Node.js до более мощных решений, таких как Keycloak на Java. Уделяя внимание интеграции, функционалу и возможностям настройки, вы сможете создать безопасную и удобную платформу для своих пользователей.