Библиотеки OIDC
Авториза реализует стандарты OAuth 2.0 и OpenID Connect, поэтому для интеграции можно использовать стандартные библиотеки вашего языка или фреймворка.
Использовать SDK Авторизы необязательно. Если вы хотите самостоятельно управлять OIDC-интеграцией или в вашем проекте уже используется подходящая библиотека, подключите Авторизу как стандартного OIDC-провайдера.
Если вы разрабатываете веб-приложение на JavaScript или TypeScript и хотите добавить авторизацию максимально быстро, рекомендуем SDK для фронтенда. SDK не зависит от React, Vue, Angular и других фреймворков.
Что выбрать?
| Сценарий | Рекомендуемый вариант |
|---|---|
| JavaScript / TypeScript веб-приложение | SDK для фронтенда |
| Next.js | SDK для фронтенда / Auth.js / openid-client |
| React SPA | SDK для фронтенда / oidc-client-ts / react-oidc-context |
| Vue | SDK для фронтенда / oidc-client-ts |
| Angular | SDK для фронтенда / angular-oauth2-oidc |
| Node.js Backend | openid-client / Passport |
| NestJS | openid-client / Passport |
| Spring Boot | Spring Security |
| ASP.NET Core | Microsoft OpenID Connect |
| Android | AppAuth |
| iOS | AppAuth |
| Flutter | flutter_appauth |
SDK Авторизы предназначен для веб-приложений на JavaScript и TypeScript. Он не привязан к конкретному фронтенд-фреймворку.
Примеры интеграции
Мы подготовили примеры интеграции Авторизы для разных стеков.
Для JavaScript / TypeScript доступны оба варианта: с SDK Авторизы и напрямую через OIDC-библиотеку. Это позволяет выбрать подходящий уровень абстракции.
| Платформа | Вариант интеграции | Репозиторий |
|---|---|---|
| React SPA | SDK Авторизы | authoriza-spa-sdk-demo |
| React SPA | Без SDK, напрямую через OIDC | authoriza-demo-react-spa |
| Next.js | Auth.js | authoriza-nextjs-demo |
| FastAPI | Authlib | authoriza-fastapi-demo |
| Qt | QtNetworkAuth | authoriza-qt-demo |
| ASP.NET | Microsoft OpenIdConnect | authoriza-aspnet-demo |
| Spring Boot | Spring Security | authoriza-spring-demo |
| Django | mozilla-django-oidc | authoriza-django-demo |
| Laravel | kovah/laravel-socialite-oidc | authoriza-laravel-demo |
| Flutter | flutter_appauth | authoriza-flutter-demo |
| Kotlin | AppAuth for Android | authoriza-kotlin-demo |
Для React SPA особенно наглядно сравнить два подхода:
- SDK для фронтенда — SDK берет на себя работу с OIDC и позволяет добавить авторизацию с минимальным количеством кода.
- Интеграция без SDK — приложение самостоятельно работает с OIDC-библиотекой и управляет авторизацией.
Как выбрать библиотеку
При выборе библиотеки обратите внимание на то, какой тип приложения вы разрабатываете.
Для браузерных приложений используйте библиотеки, предназначенные для публичных OAuth 2.0 / OIDC-клиентов и поддерживающие Authorization Code Flow с PKCE.
Если вы используете JavaScript или TypeScript и не хотите разбираться в деталях OAuth 2.0 и OpenID Connect, можно использовать SDK для фронтенда. Он скрывает протокольные детали и предоставляет готовый API для авторизации.
Для серверных приложений доступны библиотеки с поддержкой OIDC, которые могут безопасно выполнять обмен authorization code на токены на сервере.
Для мобильных и desktop-приложений используйте библиотеки, предназначенные для соответствующей платформы и поддерживающие системный браузер и PKCE.
Некоторые библиотеки отмечены как OpenID Certified™. Это означает, что они прошли сертификацию OpenID Foundation на совместимость с OpenID Connect.
JavaScript / TypeScript
Веб-приложения
Рекомендуется для быстрой интеграции:
- SDK для фронтенда - для любого JavaScript / TypeScript веб-приложения. SDK не зависит от используемого фреймворка.
Если вы предпочитаете самостоятельно работать с OIDC, используйте стандартные библиотеки:
oidc-client-tsopenid-client— для серверной части
Next.js
Рекомендуется
- SDK для фронтенда
- Auth.js
openid-client
React SPA
Варианты
- SDK для фронтенда
oidc-client-tsreact-oidc-context
Vue
Рекомендуется
- SDK для фронтенда
oidc-client-ts
Angular
Рекомендуется
- SDK для фронтенда
angular-oauth2-oidc(OpenID Certified™)angular-auth-oidc-client
Node.js Backend
Рекомендуется
openid-clientpassport-openidconnect
NestJS
Рекомендуется
openid-client- Passport +
passport-openidconnect
Java
Spring Boot
Рекомендуется
- Spring Security OAuth2 Client
- Spring Security OIDC
Spring Security является стандартным способом интеграции OIDC в экосистеме Spring.
.NET
ASP.NET Core
Сертифицировано, рекомендуется
- Microsoft.AspNetCore.Authentication.OpenIdConnect (OpenID Certified™)
Desktop / MAUI
Сертифицировано
- IdentityModel.OidcClient (OpenID Certified™)
PHP
Рекомендуется
jumbojett/openid-connect-php- Laravel Socialite через OIDC-провайдеры
Python
Django
Рекомендуется
mozilla-django-oidc- Authlib
FastAPI
Рекомендуется
- Authlib
- fastapi-users
Go
Сертифицировано
- CAOS OIDC Library (OpenID Certified™)
Также популярны
coreos/go-oidcgolang.org/x/oauth2
Flutter
Сертифицировано
- Flutter AppAuth implementation (OpenID Certified™)
Рекомендуется
flutter_appauth
Android
Рекомендуется
- AppAuth Android
Стандартная библиотека для OpenID Connect и OAuth 2.0 на Android.
iOS
Рекомендуется
- AppAuth iOS
Стандартная библиотека для OpenID Connect и OAuth 2.0 на iOS.
React Native
Рекомендуется
react-native-app-auth
Machine-to-Machine
Для сервисов без пользовательского интерфейса рекомендуется использовать библиотеки OAuth 2.0 вашего языка с поддержкой:
- Client Credentials Flow
- JWT Validation
- JWKS