Интеграция с сервисом аутентификации 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-атак