Три варианта: где обмен, refresh и выдача

Три варианта: где обмен, refresh и выдача An architecture diagram generated by Archify. Ainima · обмен, RT, refresh, выбор, выдача · V1. Всё в Ainima Ainima обмен, RT, refresh, выбор, выдача Proxy · Acquire/Report по REST · V1. Всё в Ainima Proxy Acquire/Report по REST Вендоры · token endpoint, API · V1. Всё в Ainima Вендоры token endpoint, API Ainima · обмен callback; RT хранит · V2. SMS, учётки в Ainima Ainima обмен callback; RT хранит CMS · риск: RT в конфиге CMS · V2. SMS, учётки в Ainima CMS риск: RT в конфиге CMS SMS · риск: потеря RT при сбое SMS · V2. SMS, учётки в Ainima SMS риск: потеря RT при сбое SMS Proxy · Acquire/Report по gRPC · V2. SMS, учётки в Ainima Proxy Acquire/Report по gRPC Вендоры · token endpoint, API · V2. SMS, учётки в Ainima Вендоры token endpoint, API Ainima · обмен callback; RT, refresh по расписанию · V3 (рекомендован): OAuth в Ainima Ainima обмен callback; RT, refresh по расписанию CMS · только AT и пулы · V3 (рекомендован): OAuth в Ainima CMS только AT и пулы SMS · выбор, выдача (Redis) · V3 (рекомендован): OAuth в Ainima SMS выбор, выдача (Redis) Proxy · Acquire/Report по gRPC · V3 (рекомендован): OAuth в Ainima Proxy Acquire/Report по gRPC Вендоры · token endpoint, API · V3 (рекомендован): OAuth в Ainima Вендоры token endpoint, API REST RT, refresh API учётки с RT fanout Acquire / Report обмен API refresh AT и пулы fanout Acquire / Report RT, refresh API usage V1. Всё в Ainima V2. SMS, учётки в Ainima V3 (рекомендован): OAuth в Ainima Legend интерфейс сервис безопасность внешнее

Владелец refresh token

  • • V1 и V3: Ainima, рядом с постоянным хранилищем
  • • V2: SMS получает новый RT, а хранит Ainima; сбой SMS до события теряет одноразовый RT и ведёт к переподключению

Через CMS

  • • V1: ничего секретного
  • • V2: RT и AT в конфиге, в Redis CMS и у всех получателей
  • • V3: только AT с коротким сроком, отдельный документ только для SMS

На один запрос

  • • V1: REST Proxy → SimpleOne и записи в SimpleOne; SimpleOne недоступен — все подписочные запросы отказывают
  • • V2 и V3: gRPC Proxy → SMS, записей в SimpleOne нет; V3 работает, пока живы выданные AT

Итог

  • • V3 — единственный вариант без окна потери RT, без RT в CMS и без синхронного вызова SimpleOne; цена — refresh в low-code SimpleOne
  • • Спринты: V1 5–7, V2 7–9, V3 6–8; обратимость: V3 высокая, V2 низкая