Интеграция с сервисом аутентификации Cryptometrics
Обзор
Сервис аутентификации Cryptometrics предоставляет безопасную систему аутентификации на основе OAuth 2.0 и OpenID Connect. Вы можете интегрировать свое приложение с нашим сервисом двумя способами:
- Через автоматическое обнаружение конфигурации (рекомендуется)
- Через ручную настройку эндпоинтов
Автоматическое обнаружение конфигурации
Наш сервис поддерживает стандарт OpenID Connect Discovery, который позволяет вашему приложению автоматически получить всю необходимую информацию для интеграции.
Шаг 1: Получение конфигурации
Отправьте GET-запрос на эндпоинт обнаружения:
GET https://dev.cryptometrics.pro/.well-known/openid-configuration
Шаг 2: Использование полученной конфигурации
Ответ будет содержать все необходимые URL-адреса и параметры для настройки вашего клиента OAuth2:
{
"issuer": "https://dev.cryptometrics.pro",
"authorization_endpoint": "https://dev.cryptometrics.pro/oauth2/authorize",
"token_endpoint": "https://dev.cryptometrics.pro/oauth2/token",
"userinfo_endpoint": "https://dev.cryptometrics.pro/oauth2/userinfo",
"revocation_endpoint": "https://dev.cryptometrics.pro/oauth2/logout",
"jwks_uri": "https://dev.cryptometrics.pro/.well-known/jwks.json",
"response_types_supported": ["code"],
"subject_types_supported": ["public"],
"id_token_signing_alg_values_supported": ["ES256"],
"scopes_supported": ["openid", "email"],
"token_endpoint_auth_methods_supported": ["client_secret_post"],
"claims_supported": ["aud", "exp", "email", "iat", "iss", "sub", "name", "at_hash", "nonce"],
"code_challenge_methods_supported": ["plain"],
"grant_types_supported": ["authorization_code", "refresh_token"]
}
Шаг 3: Получение ключей для проверки подписи токенов
Для проверки подписи JWT-токенов используйте эндпоинт JWKS:
GET https://dev.cryptometrics.pro/.well-known/jwks.json
Ручная настройка эндпоинтов
Если вы предпочитаете настроить интеграцию вручную, используйте следующие эндпоинты:
| Назначение | URL | Метод |
|---|---|---|
| Авторизация | https://dev.cryptometrics.pro/oauth2/authorize | GET |
| Получение токенов | https://dev.cryptometrics.pro/oauth2/token | POST |
| Информация о пользователе | https://dev.cryptometrics.pro/oauth2/userinfo | GET |
| Выход | https://dev.cryptometrics.pro/oauth2/logout | GET |
| JWKS (ключи) | https://dev.cryptometrics.pro/.well-known/jwks.json | GET |
Пример интеграции
Ниже приведен пример кода для интеграции с нашим сервисом аутентификации:
JavaScript (с использованием библиотеки oidc-client)
// Настройка клиента OpenID Connect
const settings = {
authority: 'https://dev.cryptometrics.pro',
client_id: 'ваш-client-id',
redirect_uri: 'https://ваше-приложение.com/callback',
response_type: 'code',
scope: 'openid email',
automaticSilentRenew: true,
loadUserInfo: true
};
const userManager = new Oidc.UserManager(settings);
// Авторизация пользователя
function login() {
userManager.signinRedirect();
}
// Обработка callback
function handleCallback() {
userManager.signinRedirectCallback().then(user => {
console.log('Пользователь авторизован', user);
// Сохранение токенов и перенаправление
}).catch(err => {
console.error('Ошибка авторизации', err);
});
}
Регистрация клиентского приложения
Для использования сервиса аутентификации необходимо зарегистрировать ваше приложение и получить client_id и client_secret. Свяжитесь с администратором системы для получения учетных данных.
Безопасность
Рекомендации по безопасности:
- Всегда проверяйте подпись JWT-токенов с помощью публичных ключей из JWKS
- Используйте HTTPS для всех запросов
- Храните client_secret в безопасном месте
- Используйте state и nonce параметры для предотвращения CSRF-атак