Сбербанк нет данных для аутентификации: К сожалению, нет данных для вашей аутентификации что это значит в Сбербанке

Сбербанк нет данных для аутентификации: К сожалению, нет данных для вашей аутентификации что это значит в Сбербанке

Содержание

К сожалению, нет данных для вашей аутентификации что это значит в Сбербанке

Многие из нас покупают товары на различных сетевых площадках. Присмотрев очередной товар, мы начинаем ввод реквизитов платежа, включая и информацию о нашей банковской карте. После заполнения указанных данных, и попытке осуществить платёж, мы можем столкнуться с сообщением «К сожалению, нет данных для вашей аутентификации. Пожалуйста, получите новый список одноразовых паролей в банкомате или зарегистрируйтесь в системе мобильных банковских услуг». Что значит это сообщение в Сбербанке, и как исправить возникшую проблему? Давайте разбираться.

Что нужно знать о защите данных в банке с помощью 3D-Secure

Безопасность покупок в сети – одна из самых важных задач для банков и платёжных систем. Рост количества таких покупок привлекает множество злоумышленников, желающих получить доступ к пользовательским данным, а затем и выполнить кражу денег с банковских счетов таких пользователей. Для предотвращения подобных сценариев банки активно задействуют разнообразные технологии, одной из которых является популярная технология «3Д-Secure».

«3D-Secure» — это специальный XML-протокол, поддерживающий безопасность расчётов в сети с применением платёжных карт. Кодификация «3D» означает использование трёх независимых доменов (D):

  • банка, обслуживающего конкретный сетевой магазин;
  • банка – эмитента платёжной карты;
  • домена платёжной системы (Visa, Master Card и других).

Важным этапом платёжной идентификации клиента в 3D-Secure является ввод подтверждающего пароля на защищённой странице в сети. Такой пароль можно получить только по телефону через смс, что существенно уменьшает шансы злоумышленника на перехват и подмену такого пароля. После ввода пароля осуществляется подтверждение платежа и оплата выбранного товара.

Использование смс с паролем позволяет обезопасить покупки в сети

Это будет интересно: Payment From 5110 – почему в Сбербанке сняли деньги.

Нет данных для вашей аутентификации – что это значит

Появление сообщения «К сожалению, нет данных для вашей аутентификации» обычно означает, что к вашей карте не подключена технология 3D-Secure. Соответственно, подтвердить вашу покупку через смс вы не можете. Идентификация вашей личности для системы также затруднена.

Кроме отсутствия 3Д-Secure причины проблемы могут быть следующие:

  • К вашей банковской карте не подключена система мобильного банкинга, в которой также используется подтверждение через смс. При этом, кроме верификации пользователя, мобильный банкинг предоставляет множество возможностей для мониторинга и контроля денежных средств, размещённых на ваших банковских счетах;
  • Ваша карта не предназначена для расчётов через сеть Интернет. Такое бывает с самыми простыми и дешёвыми электронными картами. В настоящее время такие карты встречаются довольно редко. Большинство банков перешло на выпуск карт Виза и Мастер Кард со стандартным базовым функционалом;
  • Ваша банковская карта не активирована, или строк её действия уже истёк. В этом случае вы также получите уведомление об отсутствии данных для аутентификации в Сбербанке.

Как же решить возникшую проблему с отсутствием данных для аутентификации? Давайте узнаем.

Читайте также: Ошибка 24 при инсталляции Сбербанк Онлайн.

Действие 1. Активируйте вашу карту

Если вы ещё не активировали вашу новую карту, необходимо будет провести процедуру её активации, включая и подтверждение через смс. Посетите ближайшее отделение Сбербанка для выполнения процедуры активации.

Действие 2. Проверьте срок действия вашей карты

Возьмите вашу карту и убедитесь, что срок её действия не истёк. Обычно на лицевой поверхности карты указан месяц и год окончания срока действия карты. Если данный срок подходит к концу, посетите Сбербанк и обновите вашу карту.

Срок действия данной карты истёк в ноябре 2017 года

Действие 3. Получите новую банковскую карту Сбербанка

Если вы до сих пор пользовались самой дешёвой (электронной) картой, рекомендуем заменить её современной банковской картой уровня Visa Classic или Mastercard Standart. Данные карты поддерживают весь набор базовых платёжных операций, включая и оплату товаров и услуг через Интернет.

Действие 4. Позвоните в контактный центр Сбербанка

Звонок в колл-центр Сбербанка по бесплатному номеру 900 позволит вам решить проблему «Нет данных для вашей аутентификации». Позвоните по указанному номеру и изложите специалисту суть возникшей дисфункции. Обычно после этого вам подключат услугу «Мобильный банкинг», и вы сможете осуществлять покупки через Интернет с помощью подтверждающего смс.

Выполните звонок на горячую линию

Действие 5. Подключите мобильный банкинг через банкомат Сбербанка

Также вы можете подключить услугу мобильного банкинга в ближайшем банкомате Сбербанка. Судя по отзывам владельцев карт, такая опция доступна далеко не в каждом банкомате, потому стоит попробовать несколько банкоматов.

Выполните следующее:

Одноразовые пароли в банкомате Сбербанка

До февраля 2016 года также была возможность получить 20 одноразовых паролей в банкомате Сбербанка, с помощью которых и осуществлялось подтверждение нужного Интернет-платежа.

Чек с перечнем паролей

Данная методика оказалась довольно уязвимой. Мошенник подбирал выброшенный чек с указанными 20 паролями, получал доступ к личному кабинету пользователя, после чего имел возможность снять деньги со счета такого пользователя 20 раз.

Учитывая столь печальную практику, Сбербанк решил отказаться от печати пароля с помощью банкомата. Теперь подтверждение платежа осуществляется исключительно с помощью смс на телефон клиента.

Мы рекомендуем: CH Debit RUS MOSCOW IDT:0513 1 — код в Сбербанке — тут.

Заключение

В нашей статье мы разобрали, что в Сбербанке значит «К сожалению, нет данных для вашей аутентификации», и как поступить при получении данного сообщения. Наиболее простым способом решения возникшей проблемы является подключение к вашей карте услуги мобильного банкинга. Такое подключение можно осуществить как через банкомат Сбербанка, так и с помощью звонка по бесплатному номеру поддержки 900. После осуществления подключения вы сможете осуществлять все необходимые покупки в сети Интернет.

 

Ошибка 4405 при оплате картой Сбербанк, ВТБ – как исправить?

При попытке осуществить какой-либо платёж в платёжной системе Сбербанка или ВТБ на телефоне или банковском терминале мы можем встретиться с сообщением об ошибке. Они имеют спорадический характер, и обычно связана с проблемами связи и сбоями в работе банковских серверов. Ниже разберём суть ошибки 4405 при оплате картой банков ВТБ или Сбербанка, а также рассмотрим, каким образом исправить возникшую дисфункцию.

Причины ошибки 4405 при оплате картой

Обычно ошибка 4405 появляется при попытке выполнить платёж с помощью банковского мобильного приложения или терминала. Дисфункция связана с отказом системы в проведении транзакции, при этом повторная попытка выполнить платёж не даёт какого-либо результата.

Ошибка обычно связана со сбоем при отправке платежей

Причины ошибки 4405 при осуществлении оплаты с карточки обычно сводятся к следующему:

Давайте разберёмся, каким образом можно исправить ошибку с кодом 4405 при оплате покупки картой популярных банков Сбербанк или ВТБ.

Это полезно знать: Что значит в системе Сбербанка «К сожалению, нет данных для вашей аутентификации».

Звонок на горячую линию Сбербанка или ВТБ для исправления ошибки

Довольно унифицированным советом при появлении уведомления 4405 является обращение с телефонным звонком на горячую линию банка.

Номера горячей линии ВТБ:Номер горячей лини Сбербанка:
8-800-100-24-24

8-800-2007799

8-800-2002326

8-800-555-55-50

Обратитесь на горячую линию ВТБ

Свяжитесь со специалистами банка, и обрисуйте суть возникшей проблемы. Обычно вы получите ряд советов по устранению ошибки, и нужный вам платёж будет проведён.

Перезапуск или переустановка мобильного приложения при ошибке 4405

Также исправить проблему с кодом 4405 может перезапуск мобильного приложения «Сбербанк Онлайн» или «ВТБ-онлайн». Полностью закройте ваше приложение, перезагрузите телефон, а затем запустите приложение заново.

Перезапустите ваше мобильное банковское приложение

Неплохим решением также может стать полная переустановка банковского приложения. Для этого необходимо удалить приложение «Сбербанк-Онлайн» (ВТБ-Онлайн) с вашего телефона, перезагрузить девайс, и установить приложение заново с цифрового магазина. Предоставляем ссылки для скачивания приложения «Сбербанк Онлайн» (Андроид, iOS) и «ВТБ-Онлайн» (Андроид, iOS).

Установите самую свежую версию мобильного приложения

Повтор оплаты картой через несколько часов

Время от времени возникающие сбои в банковской электронной системе – вещь довольно привычная. Потому если вы встретились с рассматриваемой нами ошибкой, рекомендуем подождать несколько часов, пока служба поддержки банка ВТБ или Сбербанк не исправит возникшую проблему. Иногда ликвидация проблемы может затянуться на примерно сутки, и на следующий день вы сможете пользоваться функционалом мобильного приложения в прежнем объёме.

Подождите несколько часов пока техподдержка банка не устранит возникшую проблему

Обращение в техподдержку Сбербанка или ВТБ из-за ошибки 4405

Также устранить ошибку 4405 может помочь личное обращение в техническую поддержку вашего банка. Воспользуйтесь формой обратной связи Сбербанк Онлайн или напишите письмо на [email protected] для обращения в поддержку ВТБ. Ждать ответа придётся 1-2 суток.

Обратитесь в техподдержку вашего банка и ожидайте ответа от компетентного специалиста

Личное посещение офис вашего банка при ошибке 4405 во время оплаты

Также вы можете непосредственно посетить офис банка, и описать ответственному специалисту суть возникшей проблемы. Вам помогут провести необходимые вам платежи.

Обратитесь за помощью в ближайший офис вашего банка

Читайте также: как устранить ошибку 24 при установке Сбербанк Онлайн.

Заключение

Выше мы рассмотрели, почему возникает ошибка с кодом 4405 во время оплаты покупки картой Сбербанка или ВТБ, а также каким способом исправить возникшую проблему. В большинстве случаев помогает звонок на горячую линию банка, после чего ситуация обычно бывает решена.

 

К сожалению нет данных для вашей аутентификации

Покупки через интернет давно стали обыденностью для современного человека. Но не всегда они проходят гладко. Некоторые пользователи сталкиваются с ошибкой, которая не позволяет подтвердить платеж, высвечивая сообщение «К сожалению нет данных для вашей аутентификации». Для решения этой проблемы следует глубже взглянуть на процедуру оплаты и проверить возможные причины возникновения ошибки.

Возможные причины возникновения ошибки

Денежные операции, проводимые через интернет, часто становятся мишенями для хакерских атак. Теоретически, киберпреступники могут не только получить всю скрытую информацию от конкретного пользователя, но и завладеть его деньгами. Но развитие информационных технологий не стоит на месте, и почти все интернет-ресурсы, связанные с электронными платежами обзавелись достойной защитой.

Основная причина возникновения ошибок при проведении платежей как раз и заключается в защите. При ошибках в паролях или защитных кодах платеж будет отменен – система перестрахуется и не допустит утерю важных данных. Стоит понимать, что сложные системы безопасности создаются именно для сохранности средств пользователя, и лучше столкнуться с ошибкой платежа, чем с кражей денег с карты.

Ошибка с текстом «К сожалению, нет ваших данных для вашей аутентификации» также происходит из-за проблем с безопасностью. Причины для ее возникновения таковы:

  • К карте, с которой производилась оплата, не была подключена защита (3D-Secure).Не активна услуга интернет-банкинга.
  • Отключена возможность проводить платежи через интернет.
  • Срок действия карты уже истек, или она не была активирована.
  • Сбои в работе системы мобильного оператора, который не дает пользователю получить нужное СМС-сообщение.

Также система оплаты может выдать сообщение об ошибке, если были задействована функция одноразовых паролей (распространяемых через банкомат). Об этом говорится в тексте ошибки, в просьбе пользователю получить новый список одноразовых паролей. Дело в том, что по соображениям безопасности этот способ защиты отключили еще в 2016 году. Но такие случаи также крайне редки.

3D-Secure

3D-Secure – система идентификации пользователя, которая является наиболее распространенной. С ее помощью можно пресечь любой платеж, в том числе и несанкционированный. Защита производится следующим способом: на завершающем этапе оплаты товара/услуги на телефон покупателя приходит уникальный код. Код поступает в виде обычного СМС-сообщения или пуш-уведомления. Пользователь вводит код в нужное поле и оплата подтверждается.

Код приходит только на телефон владельца карточки. Сменить номер получателя, или каким либо образом переадресовать уникальное сообщение без его ведома не получится. Не выйдет подгадать или перехватить сам код – он генерируется случайным образом. Таким образом пользователь стопроцентно подтверждает, что именно он является организатором платежа со своей банковской карты.

Если посторонний человек получил данные карточки и попытался произвести онлайн-платеж – владельцу (и только ему) придет сообщение с кодом, без которого операция не будет произведена. И если к телефону владельца никто из посторонних не будет иметь прямого доступа – без его ведома с банковской карты не пройдет ни один платеж.

Как исправить эту ошибку?

Исправить ошибку довольно просто. Достаточно следовать этой инструкции:

  1. Для начала нужно убедиться, что карта была активирована. Это касается новых карт, с которых еще не производилось никаких банковских операций. Активировать карту можно разными способами, например, через банкомат «Сбербанка» («Альфа-банка», «ВТБ» или других банков-партнеров), или непосредственно в отделение банка.
  2. Если карточка уже использовалась по назначению длительное время, то возможно что у нее истек срок действия. Дата истечения срока всегда указывается на лицевой стороне карты. Если срок уже вышел или подходит к концу, то следует прийти в отделение и заменить ее на новую.
  3. Самые дешевые электронные карты могут не поддерживать платежи через интернет. В таком случае ее нужно заменить на более современную, подключенную к системе Visa или Mastercard, и поддерживающую нужную систему защиты платежей.
  4. Подключить карту к системе интернет-банкинга.
  5. В крайнем случае, если ни один способ не работает, стоит обратиться в колл-центр банка. У каждого есть свой номер,по которому можно обратиться (например, для «Сбербанка» – 900).

Набрав номер, оператору нужно разъяснить возникшую ситуацию с ошибкой, а также какие действия уже были выполнены для ее решения.

Подключение услуги через мобильный банк на примере «Сбербанк Онлайн»

Подключить услугу банкинга к карте очень просто. Рассмотрим, как это можно сделать для карты полученной в «Сбербанке». Для этого понадобится банкомат и сама карта. Судя по отзывам пользователей, не во всех банкоматах доступна данная услуга, так что вполне возможно, что придется искать другой.

Алгоритм действий следующий:

  1. Вставить карту в банкомат.
  2. Ввести корректный пин-код.
  3. Зайти в опции карты.
  4. Найти и выбрать строку подключения мобильного банкинга.
  5. Указать один из доступных тарифов.
  6. Получить СМС-сообщение с подтверждением подключения услуги.

Заключение

Проблему при онлайн оплате, вызванную ошибкой «К сожалению нет данных для вашей аутентификации» можно решить быстро и легко. Для начала нужно определиться, что именно вызвало ошибку с оплатой, а после сделать нужной действие. Чаще всего достаточно только активировать или заменить просроченную карту на новую.

4768 (S, F) Запрошен билет проверки подлинности Kerberos (TGT). (Windows 10) — Безопасность Windows

Билет

0x0 KDC_ERR_NONE Нет ошибки Ошибок не обнаружено.
0x1 KDC_ERR_NAME_EXP Срок действия записи клиента в базе данных KDC истек Нет информации.
0x2 KDC_ERR_SERVICE_EXP Срок действия записи сервера в базе данных KDC истек Нет информации.
0x3 KDC_ERR_BAD_PVNO Запрошенный номер версии Kerberos не поддерживается Нет информации.
0x4 KDC_ERR_C_OLD_MAST_KVNO Ключ клиента зашифрован старым мастер-ключом Нет информации.
0x5 KDC_ERR_S_OLD_MAST_KVNO Ключ сервера зашифрован старым мастер-ключом Нет информации.
0x6 KDC_ERR_C_PRINCIPAL_UNKNOWN Клиент не найден в базе данных Kerberos Имя пользователя не существует.
0x7 KDC_ERR_S_PRINCIPAL_UNKNOWN Сервер не найден в базе данных Kerberos Эта ошибка может возникнуть, если контроллер домена не может найти имя сервера в Active Directory. Эта ошибка аналогична KDC_ERR_C_PRINCIPAL_UNKNOWN, за исключением того, что она возникает, когда имя сервера не может быть найдено.
0x8 KDC_ERR_PRINCIPAL_NOT_UNIQUE Несколько основных записей в базе данных KDC Эта ошибка возникает, если существуют повторяющиеся основные имена.Уникальные основные имена имеют решающее значение для обеспечения взаимной аутентификации. Таким образом, строго запрещены повторяющиеся основные имена даже в нескольких сферах. Без уникальных основных имен клиент не может гарантировать, что сервер, с которым он взаимодействует, является правильным.
0x9 KDC_ERR_NULL_KEY Клиент или сервер имеет нулевой ключ (мастер-ключ) Не найден главный ключ для клиента или сервера. Обычно это означает, что администратор должен сбросить пароль к учетной записи.
0xA KDC_ERR_CANNOT_POSTDATE (TGT) не подходит для постдатирования Эта ошибка может возникнуть, если клиент запрашивает публикацию билета Kerberos. Постдатирование — это запрос на перенос времени начала тикета в будущее.
Это также может произойти, если есть разница во времени между клиентом и KDC.
0xB KDC_ERR_NEVER_VALID Запрошенное время начала позже, чем время окончания Существует разница во времени между KDC и клиентом.
0xC KDC_ERR_POLICY Запрошенное время начала позже, чем время окончания Эта ошибка обычно является результатом ограничений входа в систему для учетной записи пользователя. Например, ограничение рабочей станции, требование проверки подлинности смарт-карты или ограничение времени входа в систему.
0xD KDC_ERR_BADOPTION KDC не поддерживает запрошенную опцию Приближается истечение срока действия TGT.
SPN, которому клиент пытается делегировать учетные данные, отсутствует в его списке разрешенных для делегирования
0xE KDC_ERR_ETYPE_NOTSUPP KDC не поддерживает тип шифрования Обычно эта ошибка возникает, когда KDC или клиент получает пакет, который он не может расшифровать.
0xF KDC_ERR_SUMTYPE_NOSUPP KDC не поддерживает тип контрольной суммы KDC, сервер или клиент получает пакет, для которого у него нет ключа соответствующего типа шифрования. В результате компьютер не может расшифровать билет.
0x10 KDC_ERR_PADATA_TYPE_NOSUPP KDC не поддерживает тип PADATA (данные предварительной аутентификации) Предпринята попытка входа со смарт-картой, и не удается найти нужный сертификат.Это может произойти из-за того, что запрашивается неправильный центр сертификации (ЦС) или невозможно связаться с надлежащим ЦС.
Это также может произойти, если на контроллере домена не установлен сертификат для смарт-карт (шаблоны проверки подлинности контроллера домена или контроллера домена).
Этот код ошибки не может возникнуть в событии «4768. Был запрошен билет проверки подлинности Kerberos (TGT) ». Встречается в «4771. Ошибка предварительной проверки подлинности Kerberos ».
0x11 KDC_ERR_TRTYPE_NO_SUPP KDC не поддерживает транзитный тип Нет информации.
0x12 KDC_ERR_CLIENT_REVOKED Учетные данные клиента отозваны Это может быть из-за явного отключения или из-за других ограничений, установленных для учетной записи. Например: учетная запись отключена, срок ее действия истек или заблокирован.
0x13 KDC_ERR_SERVICE_REVOKED Учетные данные для сервера отозваны Нет информации.
0x14 KDC_ERR_TGT_REVOKED TGT отозвано Поскольку удаленный KDC может изменить свой ключ PKCROSS, пока есть активные билеты PKCROSS, ему СЛЕДУЕТ кэшировать старые ключи PKCROSS до истечения срока действия последнего выданного билета PKCROSS.В противном случае удаленный KDC ответит клиенту сообщением KRB-ERROR типа KDC_ERR_TGT_REVOKED. См. RFC1510 для более подробной информации.
0x15 KDC_ERR_CLIENT_NOTYET Клиент еще не действителен — повторите попытку позже Нет информации.
0x16 KDC_ERR_SERVICE_NOTYET Сервер еще не действителен — повторите попытку позже Нет информации.
0x17 KDC_ERR_KEY_EXPIRED Срок действия пароля истек — измените пароль, чтобы сбросить Срок действия пароля пользователя истек.
Этот код ошибки не может возникнуть в событии «4768. Был запрошен билет проверки подлинности Kerberos (TGT) ». Встречается в «4771. Ошибка предварительной проверки подлинности Kerberos ».
0x18 KDC_ERR_PREAUTH_FAILED Информация предварительной аутентификации недействительна Был введен неверный пароль.
Этот код ошибки не может возникнуть в событии «4768. Был запрошен билет проверки подлинности Kerberos (TGT) ». Встречается в «4771. Ошибка предварительной проверки подлинности Kerberos ».
0x19 KDC_ERR_PREAUTH_REQUIRED Требуется дополнительная предварительная аутентификация Эта ошибка часто возникает в сценариях взаимодействия UNIX. Клиенты MIT-Kerberos не запрашивают предварительную аутентификацию при отправке сообщения KRB_AS_REQ. Если требуется предварительная проверка подлинности (по умолчанию), системы Windows отправят эту ошибку. Большинство клиентов MIT-Kerberos ответят на эту ошибку, предоставив предварительную аутентификацию, и в этом случае ошибку можно игнорировать, но некоторые клиенты могут не реагировать таким образом.
0x1A KDC_ERR_SERVER_NOMATCH KDC не знает о запрошенном сервере Нет информации.
0x1D KDC_ERR_SVC_UNAVAILABLE KDC недоступен Нет информации.
0x1F KRB_AP_ERR_BAD_INTEGRITY Ошибка проверки целостности расшифрованного поля Аутентификатор был зашифрован не с помощью сеансового ключа.В результате клиент не может расшифровать полученное сообщение. Изменение сообщения может быть результатом атаки или из-за шума сети.
0x20 KRB_AP_ERR_TKT_EXPIRED Срок действия билета истек Чем меньше значение параметра политики Kerberos «Максимальный срок действия билета пользователя», тем больше вероятность возникновения этой ошибки. Поскольку продление билетов происходит автоматически, вам не нужно ничего делать, если вы получите это сообщение.
0x21 KRB_AP_ERR_TKT_NYV Билет еще не действителен Билет, представленный серверу, еще не действителен (по отношению к времени сервера). Наиболее вероятная причина заключается в том, что часы на KDC и на клиенте не синхронизированы.
Если предпринимается попытка проверки подлинности Kerberos между областями, вам следует также проверить синхронизацию времени между KDC в целевой области и KDC в клиентской области.
0x22 KRB_AP_ERR_REPEAT Запрос повторный Эта ошибка означает, что конкретный аутентификатор обнаружился дважды — KDC обнаружил, что этот билет сеанса дублирует тот, который он уже получил.
0x23 KRB_AP_ERR_NOT_US Билет не для нас Сервер получил билет, предназначенный для другой области.
0x24 KRB_AP_ERR_BADMATCH Билет и аутентификатор не соответствуют KRB_TGS_REQ отправляется неправильному KDC.
Несоответствие учетной записи при смене протокола.
0x25 KRB_AP_ERR_SKEW Слишком большой перекос часов Эта ошибка регистрируется, если клиентский компьютер отправляет отметку времени, значение которой отличается от отметки времени сервера более чем на количество минут, указанное в параметре «Максимальный допуск для синхронизации часов компьютера» в политике Kerberos.
0x26 KRB_AP_ERR_BADADDR Сетевой адрес в заголовке сетевого уровня не соответствует адресу внутри билета Сессионные билеты МОГУТ включать адреса, с которых они действительны. Эта ошибка может возникнуть, если адрес компьютера, отправившего билет, отличается от действительного адреса в билете. Возможной причиной этого могло быть изменение адреса Интернет-протокола (IP). Другая возможная причина — когда билет проходит через прокси-сервер или NAT.Клиент не знает адресную схему, используемую прокси-сервером, поэтому, если программа не заставила клиента запросить билет прокси-сервера с исходным адресом прокси-сервера, билет мог быть недействительным.
0x27 KRB_AP_ERR_BADVERSION Номера версий протокола не совпадают (PVNO) Когда приложение получает сообщение KRB_SAFE, оно проверяет его. Если возникает какая-либо ошибка, приложение сообщает код ошибки.
Сообщение сначала проверяется путем проверки, что поля версии и типа протокола соответствуют текущей версии и KRB_SAFE, соответственно.Несоответствие генерирует KRB_AP_ERR_BADVERSION.
Подробнее см. RFC4120.
0x28 KRB_AP_ERR_MSG_TYPE Тип сообщения не поддерживается Это сообщение генерируется, когда целевой сервер обнаруживает, что формат сообщения неправильный. Это относится к сообщениям KRB_AP_REQ, KRB_SAFE, KRB_PRIV и KRB_CRED.
Эта ошибка также возникает при попытке использования протокола UDP с аутентификацией «пользователь-пользователь».
0x29 KRB_AP_ERR_MODIFIED Поток сообщений изменен и контрольная сумма не соответствует Данные аутентификации были зашифрованы неверным ключом для предполагаемого сервера.
Данные аутентификации были изменены во время передачи из-за аппаратной или программной ошибки или злоумышленником.
Клиент отправил данные аутентификации не на тот сервер, потому что из-за неправильных данных DNS клиент отправил запрос на неправильный сервер.
Клиент отправил данные аутентификации не на тот сервер, потому что данные DNS на клиенте устарели.
0x2A KRB_AP_ERR_BADORDER Сообщение вышло из строя (возможно вмешательство) Это событие генерируется для сообщений KRB_SAFE и KRB_PRIV, если включен неправильный порядковый номер или если порядковый номер ожидается, но отсутствует.См. RFC4120 для более подробной информации.
0x2C KRB_AP_ERR_BADKEYVER Указанная версия ключа недоступна Эта ошибка может быть сгенерирована на стороне сервера при получении недопустимого сообщения KRB_AP_REQ. Если версия ключа, указанная в билете в KRB_AP_REQ, не является той, которую сервер может использовать (например, она указывает на старый ключ, и сервер больше не обладает копией старого ключа), возвращается ошибка KRB_AP_ERR_BADKEYVER.
0x2D KRB_AP_ERR_NOKEY Сервисный ключ недоступен Эта ошибка может быть сгенерирована на стороне сервера при получении недопустимого сообщения KRB_AP_REQ.Поскольку сервер может быть зарегистрирован в нескольких областях с разными ключами в каждой, поле области в незашифрованной части билета в KRB_AP_REQ используется для указания секретного ключа, который сервер должен использовать для дешифрования этого билета. Код ошибки KRB_AP_ERR_NOKEY возвращается, если сервер не имеет надлежащего ключа для расшифровки билета.
0x2E KRB_AP_ERR_MUT_FAIL Ошибка взаимной аутентификации Нет информации.
0x2F KRB_AP_ERR_BADDIRECTION Неправильное направление сообщения Нет информации.
0x30 KRB_AP_ERR_METHOD Требуется альтернативный метод аутентификации Согласно RFC4120 это сообщение об ошибке устарело.
0x31 KRB_AP_ERR_BADSEQ Неверный порядковый номер в сообщении Нет информации.
0x32 KRB_AP_ERR_INAPP_CKSUM Неподходящий тип контрольной суммы в сообщении (контрольная сумма может не поддерживаться) Когда KDC получает сообщение KRB_TGS_REQ, он расшифровывает его, и после этого предоставленная пользователем контрольная сумма в аутентификаторе ДОЛЖНА быть проверена на соответствие содержимому запроса.Сообщение ДОЛЖНО быть отклонено, если контрольные суммы не совпадают (с кодом ошибки KRB_AP_ERR_MODIFIED) или если контрольная сумма не является защищенной от коллизий (с кодом ошибки KRB_AP_ERR_INAPP_CKSUM).
0x33 KRB_AP_PATH_NOT_ACCEPTED Желаемый путь недоступен Нет информации.
0x34 KRB_ERR_RESPONSE_TOO_BIG Слишком много данных Размер билета слишком велик для надежной передачи через UDP.В среде Windows это сообщение носит чисто информационный характер. Компьютер под управлением операционной системы Windows автоматически попробует TCP, если UDP не работает.
0x3C KRB_ERR_GENERIC Общая ошибка Членство в группе перегрузило PAC.
Несколько недавних изменений пароля не распространены.
Ошибка подсистемы шифрования, вызванная нехваткой памяти.
SPN слишком длинный.
SPN имеет слишком много частей.
0x3D KRB_ERR_FIELD_TOOLONG Поле слишком длинное для этой реализации Каждому запросу (KRB_KDC_REQ) и ответу (KRB_KDC_REP или KRB_ERROR), отправляемому через поток TCP, предшествует длина запроса в виде 4 октета в сетевом порядке байтов.Старший бит длины зарезервирован для будущего расширения и в настоящее время ДОЛЖЕН быть установлен в ноль. Если KDC, который не понимает, как интерпретировать установленный старший бит кодирования длины, получает запрос с старшим битом установленной длины, он ДОЛЖЕН вернуть сообщение KRB-ERROR с ошибкой KRB_ERR_FIELD_TOOLONG и ДОЛЖЕН закрыть поток TCP.
0x3E KDC_ERR_CLIENT_NOT_TRUSTED Доверие клиента не удалось или не реализовано Обычно это происходит, когда сертификат смарт-карты пользователя отозван или корневой центр сертификации, выдавший сертификат смарт-карты (в цепочке), не пользуется доверием со стороны контроллера домена.
0x3F KDC_ERR_KDC_NOT_TRUSTED Доверие сервера KDC не удалось или не удалось проверить Поле trustCertifiers содержит список центров сертификации, которым доверяет клиент, в случае, если у клиента нет сертификата открытого ключа KDC. Если KDC не имеет сертификата, подписанного каким-либо из доверенных сертификатов, он возвращает ошибку типа KDC_ERR_KDC_NOT_TRUSTED. См. RFC1510 для более подробной информации.
0x40 KDC_ERR_INVALID_SIG Подпись недействительна Эта ошибка связана с PKINIT.Если существует доверительное отношение PKI, KDC затем проверяет подпись клиента на AuthPack (подпись запроса TGT). Если это не удается, KDC возвращает сообщение об ошибке типа KDC_ERR_INVALID_SIG.
0x41 KDC_ERR_KEY_TOO_WEAK Требуется более высокий уровень шифрования Если поле clientPublicValue заполнено, показывая, что клиент желает использовать соглашение о ключах Диффи-Хеллмана, то KDC проверяет, соответствуют ли параметры его политике.Если они этого не делают (например, основной размер недостаточен для ожидаемого типа шифрования), то KDC отправляет обратно сообщение об ошибке типа KDC_ERR_KEY_TOO_WEAK.
0x42 KRB_AP_ERR_USER_TO_USER_REQUIRED Требуется авторизация пользователя В случае, если клиентское приложение не знает, что служба требует аутентификации между пользователями, и запрашивает и получает обычный KRB_AP_REP, клиент отправит запрос KRB_AP_REP, а сервер ответит токеном KRB_ERROR, как описано в RFC1964 с типом сообщения KRB_AP_ERR_USER_TO_USER_REQUIRED.
0x43 KRB_AP_ERR_NO_TGT TGT не был представлен или доступен При межпользовательской аутентификации, если служба не имеет билета для выдачи билетов, она должна вернуть ошибку KRB_AP_ERR_NO_TGT.
0x44 KDC_ERR_WRONG_REALM Неверный домен или принципал Хотя эта ошибка возникает редко, она возникает, когда клиент представляет TGT между областями области, отличной от указанной в TGT.Обычно это происходит из-за неправильно настроенного DNS.

Шифрование и аутентификация с помощью SSL — Confluent Documentation 6.0.0

Обзор SSL

При использовании SSL-аутентификации сервер аутентифицирует клиента (также называется «двусторонней
аутентификация»). Поскольку для проверки подлинности SSL требуется шифрование SSL, эта страница
показывает, как настраивать и то и другое одновременно, и представляет собой надмножество
конфигурации, необходимые только для шифрования SSL.

По умолчанию Apache Kafka® обменивается данными в PLAINTEXT , что означает, что все данные
отправлено в открытом виде.Чтобы зашифровать связь, вы должны настроить
все компоненты Confluent Platform в вашем развертывании для использования SSL-шифрования.

Secure Sockets Layer (SSL) является предшественником Transport Layer Security (TLS),
и устарел с июня 2015 года. Однако по историческим причинам Kafka
(например, Java) использует термин / акроним «SSL» вместо «TLS» в конфигурации и
код. В этом разделе используется только аббревиатура «SSL».

Вы можете настроить SSL для шифрования или аутентификации. Вы можете просто настроить
SSL-шифрование (по умолчанию SSL-шифрование включает проверку подлинности сертификата)
сервера) и самостоятельно выбрать для клиента отдельный механизм
аутентификация (например, SSL, SASL).Технически говоря, шифрование SSL уже позволяет одностороннюю аутентификацию в
который клиент аутентифицирует сертификат сервера. Итак, в этой теме «SSL
аутентификация », на самом деле относится к двухсторонней аутентификации, когда брокер
также проверяет подлинность сертификата клиента.

Включение SSL может повлиять на производительность из-за накладных расходов на шифрование.

SSL использует пары закрытый ключ / сертификат, которые используются во время подтверждения SSL.
процесс.

  • Каждому брокеру нужна своя собственная пара закрытый ключ / сертификат, и клиент использует
    сертификат для аутентификации брокера.
  • Каждому логическому клиенту нужна пара закрытый ключ / сертификат, если клиент
    аутентификация включена, и брокер использует сертификат для аутентификации
    клиент.

Вы можете настроить каждого брокера и логического клиента с хранилищем доверенных сертификатов, которое используется
чтобы определить, каким сертификатам (брокеру или логическим идентификаторам клиентов) доверять
(подтвердить). Вы можете настроить хранилище доверенных сертификатов разными способами. Рассмотрим
следующие два примера:

  • Доверенное хранилище содержит один или несколько сертификатов: брокер или логический клиент
    будет доверять любому сертификату, указанному в хранилище доверенных сертификатов.
  • Склад доверенных сертификатов содержит центр сертификации (ЦС): брокер или логический
    клиент будет доверять любому сертификату, подписанному ЦС в хранилище доверенных сертификатов.

Использование метода CA удобнее, потому что добавление нового брокера или клиента
не требует смены доверительного хранилища. Метод CA представлен на этой диаграмме.

Однако при использовании метода CA Kafka не поддерживает блокировку.
аутентификация для отдельных брокеров или клиентов, которые ранее пользовались доверием
этот механизм (отзыв сертификата обычно выполняется с помощью отзыва сертификата
Списки или протокол статуса онлайн-сертификатов), поэтому вам придется полагаться на
авторизация на блокировку доступа.

Напротив, если вы используете один или несколько сертификатов, блокировка
аутентификация достигается путем удаления сертификата брокера или клиента из
магазин доверия.

Брокеры

Настройте всех брокеров в кластере Kafka для приема защищенных подключений от клиентов. Любые изменения конфигурации, внесенные в брокер, потребуют последовательного перезапуска.

Включите безопасность для брокеров Kafka, как описано в разделе ниже. Кроме того, если вы используете Confluent Control Center или Auto Data Balancer, настройте своих брокеров для:

  1. Настройте хранилище доверенных сертификатов, хранилище ключей и пароль на сервере .недвижимость
    файл каждого брокера. Потому что это хранит пароли прямо в брокере
    файл конфигурации, важно ограничить доступ к этим файлам с помощью
    разрешения файловой системы.

     ssl.truststore.location = / var / private / ssl / kafka.server.truststore.jks
    ssl.truststore.password = test1234
    ssl.keystore.location = / var / private / ssl / kafka.server.keystore.jks
    ssl.keystore.password = test1234
    ssl.key.password = test1234
     

    Обратите внимание, что ssl.truststore.password технически необязателен, но строго
    рекомендуемые.Если пароль не установлен, доступ к хранилищу доверенных сертификатов остается.
    доступно, но проверка целостности отключена.

  2. Если вы хотите включить SSL для связи между брокерами, добавьте следующие
    в файл свойств брокера, по умолчанию PLAINTEXT :

     security.inter.broker.protocol = SSL
     
  3. Настройте порты для брокеров Apache Kafka® для прослушивания клиента и межброкера
    SSL подключений. Вы должны настроить слушателей и, при необходимости,
    рекламируется.слушатели , если значение отличается от слушателей .

     слушателей = SSL: // kafka1: 9093
    Advertised.listeners = SSL: // localhost: 9093
     
  4. Настройте порты SSL и PLAINTEXT , если:

    • SSL не включен для связи между брокерами
    • Некоторые клиенты, подключающиеся к кластеру, не используют SSL
     слушателей = PLAINTEXT: // kafka1: 9092, SSL: // kafka1: 9093
    Advertised.listeners = PLAINTEXT: // localhost: 9092, SSL: // localhost: 9093
     

    Обратите внимание, что рекламируется.host.name и Advertised.port настраивает
    один порт PLAINTEXT и несовместим с безопасными протоколами. Использовать
    Рекламируется слушателей вместо .

  5. Чтобы брокер мог аутентифицировать клиентов (двусторонняя аутентификация), вы должны
    настроить всех брокеров для аутентификации клиентов. Настроить
    для использования требуется , а не , запрашиваемый , потому что неправильно настроен
    клиенты по-прежнему могут успешно подключаться, и это дает ложное ощущение
    безопасность.

    Примечание

    Если для данного слушателя включены какие-либо механизмы аутентификации SASL,
    тогда проверка подлинности клиента SSL отключена, даже если вы указали
    ssl.client.auth = required и брокер аутентифицирует только клиентов
    используя SASL для этого слушателя.

Дополнительные настройки

ssl.endpoint.identification.algorithm
Алгоритм идентификации конечной точки, используемый клиентами для проверки хоста сервера.
название.Значение по умолчанию — https . Клиенты, включая клиентские подключения
созданный брокером для связи между брокерами, убедитесь, что узел брокера
name совпадает с именем хоста в сертификате брокера. Отключить имя хоста сервера
проверка путем установки ssl.endpoint.identification.algorithm в пустую строку.
  • Тип: шнур
  • По умолчанию: https
  • Значение: среднее
ssl.cipher.suites
Набор шифров — это именованная комбинация аутентификации, шифрования, MAC и
алгоритм обмена ключами, используемый для согласования настроек безопасности для сети
подключение (с использованием сетевого протокола TLS или SSL).
  • Тип: список
  • По умолчанию: null (по умолчанию включены все поддерживаемые наборы шифров)
  • Значение: среднее
ssl.enabled.protocols
Список протоколов, разрешенных для SSL-соединений.
  • Тип: список
  • По умолчанию: TLSv1.2, TLSv1.1, TLSv1
  • Значение: среднее
ssl.truststore.type
Формат файла хранилища доверенных сертификатов.
  • Тип: шнур
  • По умолчанию: JKS
  • Значение: среднее

Из-за правил импорта в некоторых странах внедрение Oracle ограничивает
мощность криптографических алгоритмов, доступных по умолчанию. Если сильнее
алгоритмы (например, AES с 256-битными ключами),
Файлы политики юрисдикции JCE Unlimited Strength
необходимо получить и установить в JDK / JRE. Дополнительную информацию см. В документации поставщиков JCA.

Клиенты

Новые клиенты Producer и Consumer поддерживают безопасность для Kafka версий 0.9.0 и выше.

Если вы используете Kafka Streams API, вы можете прочитать, как настроить эквивалентные параметры SSL и SASL.

В следующем примере конфигурации предполагается, что клиент
аутентификация требуется брокеру, чтобы вы могли сохранить ее в файле свойств клиента
client-ssl.properties . Потому что это хранит пароли прямо в брокере
файл конфигурации, важно ограничить доступ к этим файлам с помощью файла
системные разрешения.

Важно

Если вы настраиваете это для реестра схемы или прокси-сервера REST, вы должны добавить к каждому параметру префикс
confluent.license . Например, security.protocol становится
confluent.license.security.protocol .

 bootstrap.servers = kafka1: 9093
security.protocol = SSL
ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
ssl.truststore.password = test1234
ssl.keystore.location = / var / private / ssl / kafka.client.keystore.JKS
ssl.keystore.password = test1234
ssl.key.password = test1234
 

Обратите внимание, что ssl.truststore.password технически необязателен, но строго
рекомендуемые. Если пароль не установлен, доступ к хранилищу доверенных сертификатов остается.
доступно, но проверка целостности отключена.

В следующих примерах используются kafka-console-maker и kafka-console-consumer ,
и передайте client-ssl.properties , определенный выше:

 bin / kafka-console-maker --broker-list kafka1: 9093 --topic test --producer.config client-ssl.properties
bin / kafka-console-consumer --bootstrap-server kafka1: 9093 --topic test --consumer.config client-ssl.properties --from-begin
 

Дополнительные настройки

ssl.endpoint.identification.algorithm
Алгоритм идентификации конечной точки, используемый клиентами для проверки хоста сервера.
название. Значение по умолчанию — https . Клиенты, включая клиентские подключения
созданный брокером для связи между брокерами, убедитесь, что узел брокера
name совпадает с именем хоста в сертификате брокера.Отключить имя хоста сервера
проверка путем установки ssl.endpoint.identification.algorithm в пустую строку.
  • Тип: шнур
  • По умолчанию: https
  • Значение: среднее
ssl.provider
Имя поставщика безопасности, используемого для соединений SSL. Значение по умолчанию —
поставщик безопасности по умолчанию для JVM.
  • Тип: шнур
  • По умолчанию: null
  • Значение: среднее
ssl.cipher.suites
Набор шифров — это именованная комбинация аутентификации, шифрования, MAC и
алгоритм обмена ключами, используемый для согласования настроек безопасности для сети
подключение (с использованием сетевого протокола TLS или SSL).
  • Тип: список
  • По умолчанию: null (по умолчанию включены все поддерживаемые наборы шифров)
  • Значение: среднее
ssl.enabled.protocols
Список протоколов, разрешенных для SSL-соединений.
  • Тип: список
  • По умолчанию: TLSv1.2, TLSv1.1, TLSv1
  • Значение: среднее
ssl.truststore.type
Формат файла хранилища доверенных сертификатов.
  • Тип: шнур
  • По умолчанию: JKS
  • Значение: среднее

ZooKeeper

Начиная с Confluent Platform версии 5.5.0, версия ZooKeeper, связанная с Kafka, поддерживает TLS.
Дополнительные сведения см. В разделе «Добавление безопасности к работающему кластеру».

Kafka Connect

В этом разделе описывается, как включить безопасность для Kafka Connect. Для обеспечения безопасности Kafka Connect необходимо настроить безопасность для:

  1. Рабочие группы Kafka Connect: часть API Kafka Connect, рабочий на самом деле является просто продвинутым клиентом, скрытым под крышками
  2. Соединители Kafka Connect: соединители могут иметь встроенных производителей или потребителей, поэтому необходимо переопределить конфигурации по умолчанию для производителей Connect, используемых с исходными соединителями, и Connect потребителей, используемых с соединителями-приемниками
  3. Kafka Connect REST: Kafka Connect предоставляет REST API, который можно настроить для использования SSL с помощью дополнительных свойств

Настройте безопасность для Kafka Connect, как описано в разделе ниже.Кроме того, если вы используете мониторинг потоков Confluent Control Center для Kafka Connect, настройте безопасность для:

Настройте параметры верхнего уровня в Connect worker для использования SSL, добавив
эти свойства в connect-distributed.properties . Эти настройки верхнего уровня
используются работником Connect для координации группы, а также для чтения и записи
внутренние темы, которые используются для отслеживания состояния кластера (например,
конфиги и офсеты). Здесь предполагается, что аутентификация клиента
требуется брокерами.

 bootstrap.servers = kafka1: 9093
security.protocol = SSL
ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
ssl.truststore.password = test1234
ssl.keystore.location = / var / private / ssl / kafka.client.keystore.jks
ssl.keystore.password = test1234
ssl.key.password = test1234
 

Работники Connect управляют производителями, используемыми соединителями источников, и потребителями.
используется в разъемах для раковины. Таким образом, чтобы соединители могли усилить безопасность, они также должны
переопределить конфигурацию производителя / потребителя по умолчанию, которую использует рабочий.Здесь предполагается, что брокеры требуют аутентификации клиента.

Confluent Replicator

Confluent Replicator — это тип коннектора источника Kafka, который реплицирует данные из источника в целевой кластер Kafka. Встроенный потребитель внутри Replicator потребляет данные из исходного кластера, а встроенный производитель внутри рабочего Kafka Connect производит данные в целевой кластер.

Replicator версии 4.0 и более ранних требует подключения к ZooKeeper в исходном и целевом кластерах Kafka.Если ZooKeeper настроен для аутентификации, клиент настраивает учетные данные безопасности ZooKeeper с помощью глобального параметра конфигурации JAAS -Djava.security.auth.login.config на рабочих процессах Connect, а учетные данные безопасности ZooKeeper в исходном и целевом кластерах должны быть то же.

Для настройки безопасности Confluent Replicator необходимо настроить соединитель Replicator, как показано ниже, и дополнительно настроить:

Чтобы добавить SSL к встроенному потребителю Confluent Replicator, измените репликатор JSON.
файл свойств.

Этот пример представляет собой подмножество свойств конфигурации, которые необходимо добавить для шифрования SSL.
и аутентификация. Предполагается, что требуется аутентификация клиента.
брокерами.

 {
  "имя": "репликатор",
    "config": {
      ....
      "src.kafka.ssl.truststore.location": "/ etc / kafka / secrets / kafka.connect.truststore.jks",
      "src.kafka.ssl.truststore.password": "сливной",
      "src.kafka.ssl.keystore.location": "/ etc / kafka / secrets / kafka.connect.keystore.jks",
      "src.kafka.ssl.keystore.password ":" сливной ",
      "src.kafka.ssl.key.password": "сливной",
      "src.kafka.security.protocol": "SSL"
      ....
    }
  }
}
 

Чтобы настроить Confluent Replicator для целевого кластера с аутентификацией SSL, измените
конфигурация репликатора JSON должна включать следующее:

 {
  "имя": "репликатор",
    "config": {
      ....
      "dest.kafka.ssl.truststore.location": "/ etc / kafka / secrets / kafka.connect.truststore.jks",
      "дест.кафка.ssl.truststore.password ":" сливной ",
      "dest.kafka.ssl.keystore.location": "/ etc / kafka / secrets / kafka.connect.keystore.jks",
      "dest.kafka.ssl.keystore.password": "сливной",
      "dest.kafka.ssl.key.password": "сливной",
      "dest.kafka.security.protocol": "SSL"
      ....
    }
  }
}
 

Кроме того, для работника Connect требуются следующие свойства:

 security.protocol = SSL
ssl.truststore.location = / etc / kafka / secrets / kafka.connect.truststore.jks
ssl.truststore.пароль = сливной
ssl.keystore.location = / etc / kafka / secrets / kafka.connect.keystore.jks
ssl.keystore.password = сливной
ssl.key.password = сливной
Producer.security.protocol = SSL
Producer.ssl.truststore.location = / etc / kafka / secrets / kafka.connect.truststore.jks
производитель.ssl.truststore.password = сливающийся
Producer.ssl.keystore.location = / etc / kafka / secrets / kafka.connect.keystore.jks
производитель.ssl.keystore.password = сливающийся
производитель.ssl.key.password = сливной
 

Дополнительные сведения см. В общей конфигурации безопасности для работников Connect.
Вот.

Центр управления Confluent

Confluent Control Center использует Kafka Streams в качестве хранилища состояний, поэтому, если все брокеры Kafka в Центре управления, поддерживающем кластер, защищены, то приложение Control Center также должно быть защищено.

Примечание

Когда RBAC включен, Центр управления
нельзя использовать вместе с Kerberos, потому что Центр управления не может
поддерживают любой механизм SASL, кроме OAUTHBEARER.

Включите безопасность для приложения Control Center, как описано в разделе ниже.Кроме того, настройте безопасность для следующих компонентов:

Включите SSL для Confluent Control Center в файле etc / confluent-control-center / control-center.properties .
Здесь предполагается, что брокеры требуют аутентификации клиента.

 confluent.controlcenter.streams.security.protocol = SSL
confluent.controlcenter.streams.ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
confluent.controlcenter.streams.ssl.truststore.password = test1234
сливной.controlcenter.streams.ssl.keystore.location = / var / private / ssl / kafka.client.keystore.jks
confluent.controlcenter.streams.ssl.keystore.password = test1234
confluent.controlcenter.streams.ssl.key.password = test1234
 

Confluent Metrics Reporter

В этом разделе описывается, как включить SSL-шифрование и аутентификацию для Confluent Metrics Reporter,
который используется для Confluent Control Center и Auto Data Balancer.

Чтобы добавить SSL для Confluent Metrics Reporter, добавьте следующее на сервер .недвижимость на
брокеры в кластере Kafka, за которым ведется мониторинг. Здесь предполагается, что
Брокеры требуют аутентификации клиента.

 confluent.metrics.reporter.bootstrap.servers = kafka1: 9093
confluent.metrics.reporter.security.protocol = SSL
confluent.metrics.reporter.ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
confluent.metrics.reporter.ssl.truststore.password = test1234
confluent.metrics.reporter.ssl.keystore.location = / var / private / ssl / kafka.client.keystore.jks
confluent.metrics.reporter.ssl.keystore.password = test1234
confluent.metrics.reporter.ssl.key.password = test1234
 

Конфлюэнтные перехватчики для мониторинга

Перехватчики Confluent Monitoring используются для мониторинга потоков Confluent Control Center. Этот
В разделе описывается, как включить безопасность для перехватчиков Confluent Monitoring.
в трех местах:

  1. Обычные клиенты
  2. Kafka Connect
  3. Репликатор Confluent

Важно

Типичный вариант использования перехватчиков Confluent Monitoring — обеспечение мониторинга
данные в отдельный кластер мониторинга, который, скорее всего, имеет другую конфигурацию.Конфигурации перехватчика не наследуют конфигурации отслеживаемого компонента.
Если вы хотите использовать конфигурации из отслеживаемого компонента, вы должны добавить
соответствующий префикс. Например, параметр confluent.monitoring.interceptor.security.protocol = SSL ,
если используется для производителя, должен иметь префикс производителя . и будет выглядеть как
продюсер.confluent.monitoring.interceptor.security.protocol = SSL .

Перехватчики для обычных клиентов

Чтобы мониторинг потока Confluent Control Center работал с клиентами Kafka, необходимо настроить SSL.
шифрование и аутентификация для перехватчиков Confluent Monitoring на каждом клиенте.

  1. Убедитесь, что клиент настроил перехватчики.
  • Производитель:

     interceptor.classes = io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor
     
  • Потребитель:

     interceptor.classes = io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
     

Настройте шифрование SSL и аутентификацию для перехватчика. Предположение
вот что аутентификация клиента требуется брокерами.

 confluent.monitoring.interceptor.bootstrap.servers = kafka1: 9093
confluent.monitoring.interceptor.security.protocol = SSL
confluent.monitoring.interceptor.ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
confluent.monitoring.interceptor.ssl.truststore.password = test1234
confluent.monitoring.interceptor.ssl.keystore.location = / var / private / ssl / kafka.client.keystore.jks
confluent.monitoring.interceptor.ssl.keystore.password = test1234
confluent.monitoring.interceptor.ssl.key.пароль = test1234
 

Перехватчики для Kafka Connect

Чтобы мониторинг потока Confluent Control Center работал с Kafka Connect, необходимо настроить SSL.
для Confluent Monitoring Interceptors в Kafka Connect. Предположение
вот что аутентификация клиента требуется брокерами. Настроить
Подключите рабочих, добавив эти свойства в connect-distributed.properties ,
в зависимости от того, являются ли разъемы источниками или стоками.

  • Разъем источника: настройте перехватчики Confluent Monitoring для SSL-шифрования и аутентификации с префиксом производителя .

     maker.interceptor.classes = io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor
    производитель.confluent.monitoring.interceptor.bootstrap.servers = kafka1: 9093
    Producer.confluent.monitoring.interceptor.security.protocol = SSL
    продюсер.confluent.monitoring.interceptor.ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
    Manufacturer.confluent.monitoring.interceptor.ssl.truststore.password = test1234
    Producer.confluent.monitoring.interceptor.ssl.keystore.location = / var / private / ssl / kafka.client.keystore.jks
    производитель.confluent.monitoring.interceptor.ssl.keystore.password = test1234
    производитель.confluent.monitoring.interceptor.ssl.key.password = test1234
     
  • Sink connector: настройте перехватчики Confluent Monitoring для SSL-шифрования и аутентификации с префиксом потребителей .

     consumer.interceptor.classes = io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
    consumer.confluent.monitoring.interceptor.bootstrap.серверы = kafka1: 9093
    consumer.confluent.monitoring.interceptor.security.protocol = SSL
    consumer.confluent.monitoring.interceptor.ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
    consumer.confluent.monitoring.interceptor.ssl.truststore.password = test1234
    consumer.confluent.monitoring.interceptor.ssl.keystore.location = / var / private / ssl / kafka.client.keystore.jks
    consumer.confluent.monitoring.interceptor.ssl.keystore.password = test1234
    потребитель.confluent.monitoring.interceptor.ssl.key.password = test1234
     

Перехватчики для репликатора

Чтобы мониторинг потока Confluent Control Center работал с Replicator, необходимо настроить SSL для
Confluent Monitoring Interceptors в файле конфигурации Replicator JSON.Вот пример подмножества свойств конфигурации, которые нужно добавить для шифрования SSL.
и аутентификация:

 {
  "имя": "репликатор",
    "config": {
      ....
      "src.consumer.group.id": "репликатор",
      "src.consumer.interceptor.classes": "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor",
      "src.consumer.confluent.monitoring.interceptor.security.protocol": "SSL",
      "src.consumer.confluent.monitoring.interceptor.bootstrap.servers": "kafka1: 9093",
      "src.consumer.confluent.monitoring.interceptor.ssl.truststore.location ":" /var/private/ssl/kafka.client.truststore.jks ",
      "src.consumer.confluent.monitoring.interceptor.ssl.truststore.password": "test1234",
      "src.consumer.confluent.monitoring.interceptor.ssl.keystore.location": "/var/private/ssl/kafka.client.keystore.jks",
      "src.consumer.confluent.monitoring.interceptor.ssl.keystore.password": "test1234",
      "src.consumer.confluent.monitoring.interceptor.ssl.key.password": "test1234",
      ....
    }
  }
}
 

Реестр схем

Реестр схем

использует Kafka для сохранения схем и поэтому действует как клиент для записи данных в кластер Kafka. Следовательно, если брокеры Kafka настроены для обеспечения безопасности, вам также следует настроить реестр схем для использования безопасности. Вы также можете обратиться к полному списку параметров конфигурации реестра схем.

Ниже приведен пример подмножества конфигурации schema-registry.properties .
параметры, которые нужно добавить для SSL-шифрования и аутентификации.Предположение
вот что аутентификация клиента требуется брокерами.

 kafkastore.bootstrap.servers = SSL: // kafka1: 9093
kafkastore.security.protocol = SSL
kafkastore.ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
kafkastore.ssl.truststore.password = test1234
kafkastore.ssl.keystore.location = / var / private / ssl / kafka.client.keystore.jks
kafkastore.ssl.keystore.password = test1234
kafkastore.ssl.key.password = test1234
 

REST прокси

Для обеспечения безопасности Confluent REST Proxy с шифрованием и аутентификацией SSL требуется, чтобы вы
настроить безопасность между:

  1. REST-клиенты и REST-прокси (HTTPS)
  2. REST-прокси и кластер Kafka

См. Также полный список параметров конфигурации REST Proxy.

  1. Настройте HTTPS между клиентами REST и прокси-сервером REST. Ниже приводится
    пример подмножества параметров конфигурации kafka-rest.properties для настройки HTTPS.

     ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
    ssl.truststore.password = test1234
    ssl.keystore.location = / var / private / ssl / kafka.client.keystore.jks
    ssl.keystore.password = test1234
    ssl.key.password = test1234
     
  2. Настройка SSL-шифрования и аутентификации между REST-прокси и Kafka
    кластер.Ниже приведен пример подмножества kafka-rest.properties .
    параметры конфигурации, которые нужно добавить для SSL-шифрования и аутентификации.
    Здесь предполагается, что брокеры требуют аутентификации клиента.

     client.bootstrap.servers = kafka1: 9093
    client.security.protocol = SSL
    client.ssl.truststore.location = / var / private / ssl / kafka.client.truststore.jks
    client.ssl.truststore.password = test1234
    client.ssl.keystore.location = / var / private / ssl / kafka.client.keystore.jks
    client.ssl.keystore.password = test1234
    client.ssl.key.password = test1234
     

Ведение журнала SSL

Включите ведение журнала отладки SSL на уровне JVM, запустив брокер Kafka и / или клиенты с системным свойством javax.net.debug . Например:

 экспорт KAFKA_OPTS = -Djavax.net.debug = все
бен / кафка-запуск сервера и т. д. / кафка / server.properties
 

Наконечник

В этих инструкциях предполагается, что вы устанавливаете Confluent Platform с использованием архивов ZIP или TAR.Дополнительные сведения см. В разделе «Локальные развертывания».

После запуска брокера вы должны увидеть в журнале server.log :

 с адресами: PLAINTEXT -> EndPoint (192.168.64.1,9092, PLAINTEXT), SSL -> EndPoint (192.168.64.1,9093, SSL)
 

Чтобы проверить правильность настройки хранилища ключей и хранилища доверенных сертификатов сервера, вы можете выполнить следующую команду:

 openssl s_client -debug -connect localhost: 9093 -tls1
 

Примечание. TLSv1 должен быть указан под ssl.включены протоколы 906 10.

В выводе этой команды вы должны увидеть сертификат сервера:

 ----- НАЧАТЬ СЕРТИФИКАТ -----
{случайные байты переменного размера}
----- КОНЕЦ СЕРТИФИКАТА -----
subject = / C = US / ST = CA / L = Санта-Клара / O = org / OU = org / CN = Джо Смит
эмитент = / C = US / ST = CA / L = Santa Clara/O=org/OU=org/CN=kafka/[email protected]
 

Более подробную информацию об этом можно найти в документации Oracle по отладке соединений SSL / TLS.

Если сертификат не отображается с командой openssl или есть другие сообщения об ошибках, значит, ваши ключи или сертификаты настроены неправильно.Проверьте свои конфигурации.

Аутентификация только для приложений | Документы | Разработчик Twitter

Об аутентификации только для приложений

Токены - это пароли

Имейте в виду, что ключ и секрет потребителя и сам токен-носитель предоставляют доступ для выполнения запросов от имени приложения. Эти значения должны считаться такими же конфиденциальными, как и пароли, и не должны передаваться или распространяться среди ненадежных сторон.

Требуется SSL

Все запросы (как для получения, так и для использования токенов) должны использовать конечные точки HTTPS.Следуйте рекомендациям, подробно описанным в разделе «Подключение к Twitter API с использованием TLS» - узлы всегда должны проверять .

Нет пользовательского контекста

При отправке запросов с использованием проверки подлинности только приложения отсутствует понятие «текущий пользователь». Следовательно, конечные точки, такие как статусы POST / обновление, не будут работать с аутентификацией только для приложений. См. Использование OAuth для получения дополнительной информации о выполнении запросов от имени пользователя.

Ограничение скорости

У приложений есть два типа пулов с ограничением скорости.

Запросы, сделанные от имени пользователей с маркерами доступа, также известными как контекст пользователя, исчерпываются из контекста ограничения скорости, отличного от контекста, используемого при аутентификации только приложения. Другими словами, запросы, сделанные от имени пользователей, не будут исчерпаны из лимитов скорости, доступных через аутентификацию только для приложений, а запросы, сделанные через аутентификацию только для приложений, не будут исчерпаны из лимитов скорости, используемых в пользовательской аутентификации.

Вы можете просмотреть ограничение скорости с помощью конечной точки GET application / rate_limit_status, которая поддерживает аутентификацию только для приложений.Отправляя запросы к этому методу с токеном носителя приложения, вы получите ответ, в котором указывается контекст ограничения скорости для каждого ресурса текущего окна. Вместо того чтобы получать поле rate_limit_context, указывающее на используемый токен доступа, вместо этого вы получите поле «application», значение которого будет ключом потребителя вашего приложения.

{
  "rate_limit_context": {
      "application": "nXtEH7H0mi0qT8kSyo7DQ"
  },
  "Ресурсы": {
    "search": {
      "/ search / tweets": {
        «предел»: 450,
        «Осталось»: 420,
        "сброс": 1362436375}
    }
  }
}
 

Узнайте больше об ограничении скорости API и ознакомьтесь с ограничениями.

Выдача запросов только для приложений

Шаг 1. Закодируйте ключ и секрет потребителя

Шаги по кодированию ключа и секрета потребителя приложения в набор учетных данных для получения токена носителя:

  1. URL-адрес кодирует ключ потребителя и секрет потребителя в соответствии с RFC 1738. Обратите внимание, что на момент написания это фактически не изменит ключ и секрет потребителя, но этот шаг все равно следует выполнить в случае изменения формата этих значений в будущее.
  2. Объедините закодированный ключ потребителя, двоеточие «:» и закодированный секрет потребителя в одну строку.
  3. Base64 кодирует строку из предыдущего шага.

Ниже приведены примерные значения, показывающие результат этого алгоритма. Обратите внимание, что секрет потребителя, используемый на этой странице, предназначен для тестовых целей и не будет работать для реальных запросов.

Потребительский ключ xvz1evFS4wEEPTGEFPHBog
Потребительская тайна L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg
Потребитель в кодировке RFC 1738
ключ (не меняется)
xvz1evFS4wEEPTGEFPHBog
Потребитель в кодировке RFC 1738
секрет (не изменяется)
L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg
Учетные данные токена на предъявителя xvz1evFS4wEEPTGEFPHBog: L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg
Учетные данные токена носителя в кодировке Base64 :: eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw ==
Шаг 2: Получите жетон на предъявителя

Значение, вычисленное на шаге 1, необходимо обменять на токен-носитель, отправив запрос на POST oauth3 / token:

  • Запрос должен быть запросом HTTP POST.
  • Запрос должен включать заголовок Authorization со значением Basic <значение в кодировке base64 из шага 1>.
  • Запрос должен включать заголовок Content-Type со значением application / x-www-form-urlencoded; charset = UTF-8.
  • Тело запроса должно быть grant_type = client_credentials .

Пример запроса (заголовок авторизации заключен в оболочку):

POST / oauth3 / токен HTTP / 1.1
Хост: api.twitter.com
Пользовательский агент: My Twitter App v1.0.23
Авторизация: Базовая eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJn
                     NmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw ==
Content-Type: application / x-www-form-urlencoded; кодировка = UTF-8
Длина содержимого: 29
Принятие кодировки: gzip

grant_type = client_credentials
 

Если запрос был отформатирован правильно, сервер ответил бы полезной нагрузкой в ​​кодировке JSON:

Пример ответа:

HTTP / 1.1 200 ОК
Статус: 200 ОК
Тип содержимого: приложение / json; charset = utf-8
...
Кодирование содержимого: gzip
Длина содержимого: 140

{"token_type": "bearer", "access_token": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA% 2FAAAAAAAAAAAAAAAAAAAA% 3DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 

Приложения должны проверить, что значение, связанное с ключом token_type возвращаемого объекта, является носителем . Значение, связанное с ключом access_token , является токеном носителя.

Обратите внимание, что для приложения одновременно действителен один токен на предъявителя. Отправка другого запроса с теми же учетными данными на / oauth3 / token вернет тот же токен, пока он не станет недействительным.

Шаг 3. Аутентификация запросов API с помощью токена носителя

Маркер носителя может использоваться для отправки запросов к конечным точкам API, которые поддерживают аутентификацию только для приложений. Чтобы использовать токен носителя, создайте обычный запрос HTTPS и включите заголовок Authorization со значением Bearer <значение токена носителя base64 из шага 2>.Подпись не требуется.

Пример запроса (заголовок авторизации упакован):

GET /1.1/statuses/user_timeline.json?count=100&screen_name=twitterapi HTTP / 1.1
Хост: api.twitter.com
Пользовательский агент: My Twitter App v1.0.23
Авторизация: предъявитель AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA% 2FAAAAAAAAAAAA
                      AAAAAAAA% 3DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Принятие кодировки: gzip
 

Аннулирование жетона на предъявителя

Если токен-носитель скомпрометирован или его необходимо сделать недействительным по какой-либо причине, вызовите POST oauth3 / invalidate_token.

Пример запроса (заголовок авторизации упакован):

POST / oauth3 / invalidate_token HTTP / 1.1
Авторизация: Базовая eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJn
                     NmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw ==
Пользовательский агент: My Twitter App v1.0.23
Хост: api.twitter.com
Принять: * / *
Длина содержимого: 119
Тип содержимого: application / x-www-form-urlencoded

access_token = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA% 2FAAAAAAAAAAAAAAAAAAAA% 3DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 

Пример ответа:

HTTP / 1.1 200 ОК
Тип содержимого: приложение / json; charset = utf-8
Длина содержимого: 127
...

{"access_token": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA% 2FAAAAAAAAAAAAAAAAAAAAA% 3DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 

Распространенные случаи ошибок

В этом разделе описаны некоторые распространенные ошибки, связанные с согласованием и использованием токенов на предъявителя. Имейте в виду, что здесь описаны не все возможные ответы на ошибки - обратите внимание на необработанные коды ошибок и ответы.

Недействительные запросы на получение или отзыв жетонов на предъявителя

Попыток:

  • Получите токен-носитель с недопустимым запросом (например, пропустив grant_type = client_credentials ).
  • Получить или отозвать токен-носитель с неверными или просроченными учетными данными приложения.
  • Сделать недействительным неверный или отозванный токен на предъявителя.
  • Получайте жетон на предъявителя слишком часто за короткий период времени.

Результат:

HTTP / 1.1 403 Запрещено
Длина содержимого: 105
Тип содержимого: приложение / json; charset = utf-8
...

{"errors": [{"code": 99, "label": "Authentity_token_error", "message": "Не удалось проверить ваши учетные данные"}]}
 
Запрос API содержит недопустимый токен на предъявителя

Использование неверного или отозванного токена-носителя для выполнения запросов API приведет к:

HTTP / 1.1 401 Неавторизованный
Тип содержимого: приложение / json; charset = utf-8
Длина содержимого: 61
...

{"errors": [{"message": "Недействительный токен или просроченный токен", "code": 89}]}
 
Bearer Token, используемый на конечной точке, которая не поддерживает аутентификацию только для приложений

Запрос конечной точки, которая требует пользовательского контекста (например, statuses / home_timeline ) с токеном-носителем, приведет к получению:

HTTP / 1.1 403 Запрещено
Тип содержимого: приложение / json; charset = utf-8
Длина содержимого: 91
...

{"errors": [{"message": "Ваши учетные данные не разрешают доступ к этому ресурсу", "code": 220}]}
 

Аутентификация

OAS 3 Эта страница относится к OpenAPI 3 - последней версии спецификации OpenAPI. Если вы используете OpenAPI 2 (fka Swagger), посетите страницы OpenAPI 2.

Аутентификация и авторизация

OpenAPI использует термин схема безопасности для схем аутентификации и авторизации. OpenAPI 3.0 позволяет описывать защищенные API с помощью следующих схем безопасности:

Перейдите по ссылкам выше, чтобы ознакомиться с руководствами по определенным типам безопасности, или продолжайте читать, чтобы узнать, как описывать безопасность в целом.

Изменения по сравнению с OpenAPI 2.0

Если вы раньше использовали OpenAPI 2.0, вот сводка изменений, которые помогут вам начать работу с OpenAPI 3.0:

  • securityDefinitions были переименованы в securitySchemes и перемещены внутрь компонентов .
  • тип: базовый был заменен на тип: http и схема : базовый .
  • Новый тип : http является зонтичным типом для всех схем безопасности HTTP, включая базовую, однонаправленную и другие, а ключевое слово scheme указывает тип схемы.
  • API-ключи теперь можно отправлять в: cookie .
  • Добавлена ​​поддержка OpenID Connect Discovery (тип : openIdConnect ).
  • Схемы безопасности

  • OAuth 2 теперь могут определять несколько потоков .
  • Потоки

  • OAuth 2 были переименованы в соответствии со спецификацией OAuth 2: accessCode теперь authorizationCode , а application теперь clientCredentials .

Описание безопасности

Безопасность описывается с использованием ключевых слов securitySchemes и security .Вы используете securitySchemes для определения всех схем безопасности, поддерживаемых вашим API, а затем используете security для применения определенных схем ко всему API или отдельным операциям.

Шаг 1. Определение схем безопасности

Все схемы безопасности, используемые API, должны быть определены в глобальном разделе components / securitySchemes . Этот раздел содержит список именованных схем безопасности, каждая из которых может иметь тип и :

Другие необходимые свойства для схем безопасности зависят от типа .В следующем примере показано, как определяются различные схемы безопасности. Имена BasicAuth , BearerAuth и другие - это произвольные имена, которые будут использоваться для ссылки на эти определения из других мест в спецификации.

  компонентов:
  securitySchemes:

    BasicAuth:
      тип: http
      схема: базовая

    BearerAuth:
      тип: http
      схема: предъявитель

    ApiKeyAuth:
      тип: apiKey
      в: заголовок
      имя: X-API-Key

    OpenID:
      тип: openIdConnect
      openIdConnectUrl: https: // пример.com /. хорошо известный / openid-configuration

    OAuth3:
      тип: oauth3
      потоки:
        Код авторизации:
          authorizationUrl: https://example.com/oauth/authorize
          tokenUrl: https://example.com/oauth/token
          объемы:
            читать: Предоставляет доступ для чтения
            write: Предоставляет доступ на запись
            admin: Предоставляет доступ к операциям администратора  
Шаг 2. Применение безопасности

После того, как вы определили схемы безопасности в разделе securitySchemes , вы можете применить их ко всему API или отдельным операциям, добавив раздел security на корневой уровень или уровень операции, соответственно.При использовании на корневом уровне, безопасность применяет указанные схемы безопасности глобально ко всем операциям API, если они не отменены на уровне операции. В следующем примере вызовы API могут быть аутентифицированы с помощью ключа API или OAuth 2. Имена ApiKeyAuth и OAuth3 относятся к схемам, ранее определенным в securitySchemes .

  безопасность:
  - ApiKeyAuth: []
  - OAuth3:
      - читать
      - записывать

# Синтаксис:
# - название схемы:
# - сфера 1
# - объем 2  

Для каждой схемы вы указываете список областей безопасности, необходимых для вызовов API (см. Ниже).Области используются только для OAuth 2 и OpenID Connect Discovery; другие схемы защиты используют вместо этого пустой массив [] . Глобальная безопасность может быть переопределена в отдельных операциях для использования другого типа аутентификации, различных областей OAuth / OpenID или отсутствия аутентификации вообще:

  путей:
  / billing_info:
    получить:
      Summary: Получает платежную информацию аккаунта
      безопасность:
        - OAuth3: [admin] # Использовать OAuth с другой областью действия
      ответы:
        '200':
          описание: ОК
        '401':
          описание: не аутентифицирован
        '403':
          описание: токен доступа не имеет требуемой области

  /пинг:
    получить:
      Сводка: Проверяет, работает ли сервер
      security: [] # Нет безопасности
      ответы:
        '200':
          описание: Сервер запущен и работает
        по умолчанию:
          описание: Что-то не так  

Области применения

OAuth 2 и OpenID Connect используют области для управления разрешениями на различные пользовательские ресурсы.Например, области для зоомагазина могут включать в себя read_pets , write_pets , read_orders , write_orders , admin . При применении безопасности записи, соответствующие OAuth 2 и OpenID Connect, должны указывать список областей, необходимых для конкретной операции (если на уровне операции используется безопасность , ) или все вызовы API (если используется безопасность , ) на корневом уровне).

  безопасность:
  - OAuth3:
      - scope1
      - scope2
  - OpenId:
      - scopeA
      - scopeB
  - BasicAuth: []  
  • В случае OAuth 2 области, используемые в security , должны быть предварительно определены в securitySchemes .
  • В случае обнаружения OpenID Connect возможные области перечислены в конечной точке обнаружения, указанной в openIdConnectUrl .
  • В других схемах (Basic, Bearer, API-ключи и другие) не используются области, поэтому их записи безопасности вместо этого указывают пустой массив [] .

Для разных операций обычно требуются разные области действия, например чтение, запись или администратор. В этом случае вам следует применить ограниченную безопасность к определенным операциям вместо того, чтобы делать это глобально.

  # Вместо этого:
# безопасность:
# - OAuth3:
#       - читать
#       - записывать

# Сделай это:
пути:
  / пользователи:
    получить:
      сводка: получить список пользователей
      безопасность:
        - OAuth3: [читать] # <------
      ...

    Почта:
      Сводка: Добавить пользователя
      безопасность:
        - OAuth3: [запись] # <------
      ...  

Использование нескольких типов аутентификации

Некоторые REST API поддерживают несколько типов аутентификации.Раздел security позволяет комбинировать требования безопасности с помощью логических операций ИЛИ и И для достижения желаемого результата. Безопасность использует следующую логику:

  безопасность: # A OR B
  - А
  - В  
  безопасность: # A И B
  - А
    B
  
  безопасность: # (A AND B) OR (C AND D)
  - А
    B
  - С
    D  

То есть безопасность - это массив хэш-карт, где каждая хэш-карта содержит одну или несколько именованных схем безопасности.Элементы в хэш-карте объединяются с помощью логического И, а элементы массива объединяются с помощью логического ИЛИ. Схемы безопасности, объединенные с помощью ИЛИ, являются альтернативными - в данном контексте можно использовать любую из них. Схемы безопасности, объединенные посредством AND, должны использоваться одновременно в одном запросе. Здесь мы можем использовать либо обычную аутентификацию, либо ключ API:

  безопасность:
  - basicAuth: []
  - apiKey: []
  

Здесь API требует, чтобы пара ключей API была включена в запросы:

  безопасность:
  - apiKey1: []
    apiKey2: []
  

Здесь мы можем использовать либо OAuth 2, либо пару ключей API:

  безопасность:
  - oauth3: [scope1, scope2]
  - apiKey1: []
    apiKey2: []
  

Номер ссылки

Объект схемы безопасности

Объект требований безопасности

Не нашли то, что искали? Спросите у сообщества
Нашли ошибку? Сообщите нам

Аутентификация | Разработчики Twitch

Введение

В этом руководстве описывается, как использовать аутентификацию Twitch, чтобы ваше приложение могло выполнять действия от имени учетной записи Twitch или получать доступ к определенным данным об учетных записях пользователей.Предпочтительный метод аутентификации - OAuth. Мы используем части протокола OAuth 2.0.

Помимо OAuth, Twitch поддерживает OIDC (OpenID Connect) для более безопасного потока OAuth 2.0. Токены OIDC совместимы со службами, созданными для соответствия требованиям OIDC, такими как Cognito от Amazon Web Services.

Аутентификация включает:

  1. Регистрация вашего приложения для получения идентификатора клиента и секрета клиента.
  2. Получение жетона. Это включает в себя определение областей и разрешений, необходимых вашему приложению.
  3. Отправка токена в вашем запросе API для аутентификации запросов API.

Примеры кода доступны для Go и Node.js.

Предупреждение: Обращайтесь с токеном как с паролем. Например, никогда не используйте токены доступа в каких-либо общедоступных URL-адресах и никогда не отображайте токены на какой-либо веб-странице, не требуя щелчка для деобфускации.

Проверочные запросы

Если вы используете аутентификацию Twitch только для входа в систему, токены доступа должны проверяться через повторяющийся интервал.Периодическая проверка ранее выпущенных токенов OAuth гарантирует, что пользователи, авторизовавшие ваше приложение, не решили отключить интеграцию.

Вы должны проверить токены доступа перед выполнением запросов API, которые изменяют или получают доступ к конфиденциальной информации пользователей, если с момента последней проверки прошло более одного часа.

Twitch периодически проводит аудит. Если мы обнаружим приложение, которое не выполняет повторную проверку токенов доступа (то есть приложение, которое проверяет только вход в систему, а не после этого), мы свяжемся с разработчиками и будем работать над их решением.Если проблема не будет решена, мы можем принять меры наказания, например отозвать API-ключ разработчика или снизить производительность приложения.

Проверка важна из-за того, как работают токены доступа OAuth, и ожидания конечного пользователя от управления сеансом OAuth. Например, пользователи, которые решили отключить вашу интеграцию от своих учетных записей Twitch, могут сделать это в настройках своей учетной записи на Twitch. Когда пользователь отключается от интеграции, все токены OAuth между этим пользователем и этой интеграцией становятся недействительными.В этом сценарии ожидается, что токены OAuth привязаны к сеансам сторонних служб; Таким образом, любые существующие сеансы между отключенным пользователем и этими службами также должны быть аннулированы.

При проверке каждого из ваших запросов отправьте запрос в конечную точку проверки ( https://id.twitch.tv/oauth3/validate ) с вашим токеном OAuth в заголовке. Если вы прошли аутентификацию, ответ будет содержать статус вашего токена. Успешный ответ означает, что ваш токен доступа действителен.

Вот пример запроса:

  curl -H "Авторизация: OAuth <токен доступа>" https://id.twitch.tv/oauth3/validate
  

А вот и образец ответа:

  {
  "client_id": "<ваш идентификатор клиента>",
  "логин": "<авторизованный логин пользователя>",
  "области": [
    "<запрошенные области>"
  ],
  "user_id": ""
}
  

Регистрация

Чтобы создать приложение, использующее Twitch API, вам сначала необходимо зарегистрировать приложение на сайте разработчика Twitch.При создании этого приложения введите свой URI перенаправления, куда будут перенаправляться ваши пользователи после авторизации. Вы можете предоставить несколько URI перенаправления, например, если вы хотите использовать один и тот же клиент для разных сред.

После создания приложения разработчика вам присваивается идентификатор клиента. Для некоторых потоков аутентификации также требуется секрет клиента, который можно сгенерировать на той же странице, что и идентификатор клиента.

  • Идентификаторы клиентов являются общедоступными и могут совместно использоваться (например, встроены в источник веб-страницы).
  • Клиентские секреты эквивалентны паролю для вашего приложения и должны храниться в тайне. Никогда не раскрывайте его пользователям, даже в скрытом виде.

Поскольку секрет вашего клиента является конфиденциальным, мы не сможем показать его вам, когда вы покинете страницу, поэтому обязательно сохраните его в безопасном месте. Кроме того, создание нового секрета клиента немедленно делает недействительным текущий, что может привести к сбою ваших запросов API, пока ваше приложение не будет обновлено.

Предупреждение: Идентификаторы клиентов должны быть уникальными для каждого приложения: не используйте идентификаторы клиентов повторно в нескольких приложениях.Кроме того, приложения должны запрашивать соответствующие области для предполагаемых целевых API. Несоблюдение этих правил может привести к приостановке доступа вашего приложения к Twitch API.

Типы жетонов

Twitch поддерживает несколько типов токенов:

Тип токена Описание
ID токенов (OIDC) Набор утверждений о конечном пользователе для данной авторизации.Использование токенов OIDC ID (JWT) позволяет вам получить подробную информацию о вашем пользователе (например, адрес электронной почты) для конкретной авторизации. Эти сведения представлены утверждениями в полезной нагрузке токена ID.

Наша конечная точка обнаружения находится по адресу https://id.twitch.tv/oauth3/.well-known/openid-configuration. Его можно использовать со стандартными клиентами OIDC, такими как AWS Cognito.

Токены доступа пользователей Аутентифицируйте пользователей и разрешите вашему приложению делать запросы от их имени. Если ваше приложение использует Twitch для входа в систему или делает запросы в контексте аутентифицированного пользователя, вам необходимо сгенерировать токен доступа пользователя.
Токены доступа к приложениям Аутентифицируйте свое приложение и разрешите ему доступ к ресурсам, которыми оно владеет. Поскольку токены доступа к приложениям не связаны с пользователем, их нельзя использовать с конечными точками, требующими аутентификации пользователя.

Некоторые конечные точки API Twitch требуют аутентификации приложения (не аутентификации пользователя). Если ваше приложение использует эти конечные точки, вам необходимо сгенерировать токен доступа приложения. Токены доступа к приложениям получают учетные данные клиента (а не учетные данные пользователя).Они позволяют вам делать безопасные запросы API, которые не от имени конкретного пользователя. Учетные данные клиента также могут использоваться вместо заголовков идентификаторов клиентов для безопасной идентификации вашего приложения.

Срок действия токенов доступа к приложениям истекает примерно через 60 дней, поэтому вам следует проверить, действителен ли токен доступа к приложению, отправив запрос в конечную точку проверки (см. «Запросы проверки»). Если срок действия вашего токена истек, создайте новый.

Маркеры доступа к приложениям предназначены только для межсерверных запросов API и никогда не должны включаться в клиентский код.

Маркеры доступа пользователей и маркеры доступа приложений являются токенами на предъявителя. «Bearer» происходит из заголовка авторизации; см. Отправка токенов доступа пользователей и приложений.

Получение жетонов

Домен, предназначенный для аутентификации Twitch: https://id.twitch.tv.

Примечание. URL-адресов были обновлены для замены https://api.twitch.tv/kraken на https://id.twitch.tv. Код, который использует старый домен kraken для аутентификации Twitch, будет продолжать работать до тех пор, пока не будет удален Twitch API v.5 функциональных возможностей. Twitch API v. 5 в настоящее время устарел.

Мы поддерживаем несколько потоков аутентификации:

Тип потока Описание
Неявный поток кода Ваше приложение не использует сервер, например клиентское приложение JavaScript или мобильное приложение. Этот подход не требует сервера, который должен делать запросы к API.
Поток кода авторизации Ваше приложение использует сервер, может безопасно хранить секреты клиента и может выполнять межсерверные запросы.
Поток учетных данных клиента Вам нужен токен доступа к приложению.

Процедура, которую вы должны использовать для получения токенов, зависит от типа (ов) токенов, которые вы хотите:

Процедура Токен доступа пользователя Идентификационный жетон Токен доступа к приложению
Неявный поток кода OIDC
Неявный поток кода OAuth
Поток кода авторизации OIDC
Поток кода авторизации OAuth
Поток учетных данных клиента OAuth

В целях безопасности в примерах в этих разделах используется поддельный токен доступа, 0123456789abcdefghijABCDEFGHIJ .

Отправка токенов доступа пользователей и приложений

Если для запроса API требуется аутентификация, отправьте маркер доступа в качестве заголовка. Заголовок различается в зависимости от того, какой API вы используете:

В API Twitch:
curl -H "Авторизация: предъявитель <токен доступа>" https://api.twitch.tv/helix/

В Twitch API v5 (устарело):
curl -H "Авторизация: OAuth <токен доступа>" https://api.twitch.tv/kraken/

Отзыв токенов доступа

Чтобы очистить ранее полученные токены доступа, используйте конечную точку отзыва токена Twitch OAuth.Реализация соответствует стандарту OAuth.

На вашем сервере отмените токен доступа, выполнив этот запрос:

  ЗАПИСЬ https://id.twitch.tv/oauth3/revoke
    ? client_id = <ваш идентификатор клиента>
    & token = <ваш токен OAuth>
  

Например, при использовании нашего ранее аутентифицированного пользователя запрос:

  ЗАПИСЬ https://id.twitch.tv/oauth3/revoke?client_id=uo6dggojyb8d6soh92zknwmi5ej1q2&token=0123456789abcdefghijABCDEFGHIJ
  

Этот запрос также работает для токенов доступа приложения.Чтобы отозвать токен доступа к приложению, который мы создали ранее, сделайте следующий запрос:

 ЗАПИСЬ  https://id.twitch.tv/oauth3/revoke?client_id=uo6dggojyb8d6soh92zknwmi5ej1q2&token=prau3ol6mg5glgek8m89ec2s9q5i3i
  

И успешные запросы, и запросы с неверными токенами возвращают 200 OK без тела. Запросы с плохими токенами возвращают тот же ответ, так как клиент не может предпринять никаких значимых действий после отправки плохого токена.

Неправильные запросы возвращают 400 Плохой запрос вместе с информацией о том, как исправить запрос, обычно напоминая запрашивающей стороне включить client_id .

Обновление токенов доступа

Срок действия новых токенов доступа OAuth3 истек. Сроки истечения срока действия токенов различаются по продолжительности в зависимости от того, как токен был приобретен. Токены возвращают поле expires_in , указывающее, как долго токен должен длиться. Однако, , вы должны создавать свои приложения таким образом, чтобы они были устойчивы к ошибкам аутентификации токена. Другими словами, приложение, способное обновлять токены, не должно знать, как долго токен будет жить.Скорее, он должен быть готов к тому, что токен станет недействительным в любое время.

Чтобы приложения оставались аутентифицированными в течение длительного времени в мире истекающих токенов, мы разрешаем обновлять сеансы в соответствии с руководящими принципами в «Обновление токена доступа» в OAuth3 RFC. Как правило, токены обновления используются для продления срока действия данной авторизации.

Примечание : жетоны доступа к приложениям и жетоны идентификатора не могут быть обновлены.

Как обновить

Чтобы обновить токен, вам нужна пара токен доступа / токен обновления, поступающая из тела.Например:

  {
  "access_token": "0123456789abcdefghijABCDEFGHIJ",
  "refresh_token": "eyJfaWQmNzMtNGCJ9% 6VFV5LNrZFUj8oU231 / 3Aj",
  "expires_in": 3600,
  "scope": "view_activity_read",
  "token_type": "предъявитель"
}
  

Вам также понадобятся client_id и client_secret , используемые для создания указанной выше пары токен доступа / токен обновления

Для обновления используйте этот запрос:

  ЗАПИСЬ https://id.twitch.tv/oauth3/token
    --data-urlencode
    ? grant_type = refresh_token
    & refresh_token = <ваш токен обновления>
    & client_id = <ваш идентификатор клиента>
    & client_secret = <секрет вашего клиента>
  

Есть несколько обязательных параметров и один необязательный параметр:

Обязательные параметры Тип Описание
client_id строка Ваш идентификатор клиента.
client_secret строка Секрет вашего клиента.
grant_type строка Должен быть refresh_token .
refresh_token строка Маркер обновления выдан клиенту.

Ваш токен обновления может содержать символы, которые не являются безопасными для URL-адресов, поэтому убедитесь, что URL-адрес кодирует символы вашего токена обновления, прежде чем вставлять его в тело запроса обновления. В противном случае вы можете получить сообщение об ошибке («Недействительный токен обновления») при попытке обновления.

Дополнительный параметр Тип Описание
объем строка Список областей, разделенных пробелами. Это должен быть весь набор или любое подмножество областей, назначенных исходному предоставлению токена. Он не может включать любую область, изначально не предоставленную владельцем ресурса.По умолчанию: весь набор изначально предоставленных областей.

Пример:

  ЗАПИСЬ https://id.twitch.tv/oauth3/token
    --data-urlencode
    ? grant_type = refresh_token
    & refresh_token = eyJfaWQmNzMtNGCJ9% 6VFV5LNrZFUj8oU231 / 3Aj
    & client_id = fooid
    & client_secret = barbazsecret
  

Вот пример ответа об успехе. Он содержит новый токен доступа, токен обновления и области, связанные с новым предоставлением. Затем ваше приложение должно обновить свою запись токена обновления до значения, указанного в этом ответе, поскольку токен обновления может изменяться между запросами.

  {
  "access_token": "asdfasdf",
  «refresh_token»: «eyJfMzUtNDU0OC04MWYwLTQ5MDY5ODY4NGNlMSJ9% asdfasdf =»,
  "scope": "view_activity_read"
}
  

Тело неудачного ответа:

  {
  "error": "Неверный запрос",
  «статус»: 400,
  "message": "Недействительный токен обновления"
}
  

Когда пользователь меняет свой пароль или отключает приложение, мы удаляем все токены для этого пользователя. Жетоны обновления и доступа для этого пользователя вернут 401 Unauth .

Обновление в ответ на отказ сервера из-за неправильной аутентификации

Мы рекомендуем вам обновить свои токены в ответ на отказ сервера из-за неправильной аутентификации. Хорошей практикой является предположение, что ваш токен доступа может истечь или быть отозван в любое время, а реактивное обновление гарантирует, что ваше приложение готово справиться с такими ситуациями как можно более изящно. По этой причине обновление в ответ на отказ сервера предпочтительнее, чем обновление заранее по фиксированному расписанию.

Когда вы делаете запрос с просроченными или неверными учетными данными, API возвращает заголовок WWW-Authenticate (с ошибкой invalid_token ) и статус 401 Unauthorized :

  УДАЛИТЬ / kraken / users / test_user1 / следует / каналы / test_channel HTTP / 1.1
Хост: api.twitch.tv
Пользовательский агент: curl / 7.43.0
Принять: application / vnd.twitchtv.v3 + json
Авторизация: OAuth 
Идентификатор клиента: retgzhvpsxjwun0rvrb1rfwheegu1yw

HTTP / 1.1 401 Неавторизованный
Accept-Ranges: байты
Доступ-Контроль-Разрешить-Заголовки:
Доступ-Контроль-Разрешить-Методы:
Доступ-Контроль-Разрешить-Происхождение: *
Возраст: 0
Cache-Control: max-age = 0, частный, необходимо перепроверить
Тип содержимого: приложение / json; charset = utf-8
Дата: среда, 12 октября 2016 г., 22:25:10 GMT
Сервер: nginx
Статус: 401 Неавторизованный
Vary: Accept-Encoding
Через: 1.1 лак
WWW-аутентификация: OAuth realm = 'TwitchTV', error = 'invalid_token'
Длина содержимого: 89
Подключение: keep-alive

{
    "error": "Неавторизовано",
    "message": "Токен недействителен или отсутствует необходимая область действия",
    «статус»: 401
}
  

При обнаружении ошибки 401 с заголовком WWW-Authenticate приложение должно попытаться обновить сеанс, если присутствует токен обновления.Если обновление не удалось, приложение должно повторно запросить конечного пользователя с другим диалоговым окном аутентификации через стандартный поток OAuth 2.

Обработка обновлений токена в приложении

Мы рекомендуем вам выполнять обновление маркера доступа синхронно по отношению ко всем потребителям данного маркера доступа. То есть не отправляйте несколько одновременных запросов на обновление для одного и того же токена. Отправьте один запрос на обновление, а затем распространите новый токен, возвращенный из этого запроса, всем потребителям, если это необходимо.

API ограничивает количество активных токенов доступа, связанных с данным токеном обновления. Ограничение составляет 50 токенов на клиента / пользователя (то есть у пользователя может быть только 50 токенов одновременно на один идентификатор клиента). Если несколько потоков, использующих одну и ту же авторизацию, должны были обновляться одновременно, некоторые из них могли не иметь рабочих учетных данных в конце обновления. Синхронизация операции обновления предотвращает непреднамеренное превышение приложением своего лимита.

Области применения

Как упоминалось выше, когда вы запрашиваете авторизацию у пользователей, параметр URL scope позволяет вам указать, какие разрешения требуются вашему приложению.Эти области привязаны к токену доступа, который вы получаете при успешной авторизации. Без указания областей ваше приложение может получить доступ только к базовой информации об аутентифицированном пользователе.

Области действия указываются в виде списка, разделенного пробелами, в параметре URL scope , при запросе авторизации:

& scope = user: edit + user: read: email

Запрашивайте только те разрешения, которые вам нужны, поскольку пользователи могут просматривать каждое запрошенное разрешение при авторизации вашего приложения.

При запросе токенов доступа приложения не требуются области.

Twitch API

Эти области применяются к запросам токенов OAuth и OIDC. Вы можете указать любую или все из этих областей:

Название области Тип доступа
аналитика: читать: расширения Просмотр данных аналитики для ваших расширений.
аналитика: читать: игры Просматривайте данные аналитики для своих игр.
бит: чтение Просмотр информации о битах для вашего канала.
канал: редактировать: коммерческий Показывать рекламу на канале.
канал: управление: трансляция Управляйте конфигурацией трансляции вашего канала, включая обновление конфигурации канала и управление маркерами и тегами потоков.
канал: управление: добавочный номер Управляйте конфигурацией расширений вашего канала, включая активацию расширений.
канал: управление: погашения Управляйте персонализированными наградами в баллах канала и их получением на канале.
канал: читать: hype_train Получает самый последний ажиотаж на канале.
канал: чтение: погашения Просмотр пользовательских вознаграждений в баллах канала и их использования на канале.
канал: чтение: stream_key Считывает ключ потока авторизованного пользователя.
канал: читать: подписки Получите список всех подписчиков вашего канала и проверьте, подписан ли пользователь на ваш канал
клипов: редактировать Управление объектом клипа.
пользователь: редактировать Управление пользовательским объектом.
пользователь: редактировать: следует Отредактируйте подписку.
пользователь: чтение: трансляция Просмотрите конфигурацию широковещательной передачи, включая конфигурации расширений.
пользователь: читать: электронная почта Прочтите адрес электронной почты авторизованного пользователя.

Устаревшая версия Twitch API v5

С прекращением поддержки Twitch API v.5 области были сопоставлены областям в Twitch API. В следующей таблице показано сопоставление:

API v5 (устарело) API Twitch
channel_subscriptions
Чтение всех подписчиков на ваш канал.
канал: читать: подписки
Получите список всех подписчиков на ваш канал и проверьте, подписан ли пользователь на ваш канал.
channel_commercial
Запускать рекламу на канале.
канал: редактировать: реклама
Показывать рекламу на канале.
channel_editor
Запись метаданных канала (игры, статуса и т. Д.).
channel: manage: broadcast
Управляйте конфигурацией трансляции вашего канала, включая обновление конфигурации канала и управление маркерами и тегами потоков.
user_follows_edit
Управляйте каналами, на которые подписаны пользователи.
пользователь: изменить: следует
Отредактируйте подписку.
channel_read
Просмотр адреса электронной почты вашего канала и ключа потока $ $
channel: read: stream_key
Получить ключ потока пользователя

user: read: email
Получить свой адрес электронной почты

Это сопоставление влияет на следующие конечные точки:

Конечная точка Объем API Twitch API v5 Scope (не рекомендуется)
Каналы обновления канал: управление: трансляция channel_editor
Получить маркеры потока канал: управление: трансляция channel_editor
Создать маркеры потока канал: управление: трансляция channel_editor
Обновить теги потока канал: управление: добавочный номер channel_editor
Список добавочных номеров пользователей канал: управление: добавочный номер н / д
Активировать добавочные номера пользователей канал: управление: добавочный номер н / д

Чат и PubSub

Имя области Тип доступа
канал: средний Выполнение модерационных действий в канале.Пользователь, запрашивающий объем, должен быть модератором канала.
чат: редактировать Отправить чат в прямом эфире и сообщения комнат.
чат: читать Просмотр чата в прямом эфире и сообщений комнат.
шепотом: прочтите Просмотрите свои шепотом сообщения.
шепотом: редактировать Отправлять шепотом сообщения.

Оставить отзыв об этой странице

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *