Сбербанк нет данных для аутентификации: К сожалению, нет данных для вашей аутентификации что это значит в Сбербанке
К сожалению, нет данных для вашей аутентификации что это значит в Сбербанке
Многие из нас покупают товары на различных сетевых площадках. Присмотрев очередной товар, мы начинаем ввод реквизитов платежа, включая и информацию о нашей банковской карте. После заполнения указанных данных, и попытке осуществить платёж, мы можем столкнуться с сообщением «К сожалению, нет данных для вашей аутентификации. Пожалуйста, получите новый список одноразовых паролей в банкомате или зарегистрируйтесь в системе мобильных банковских услуг». Что значит это сообщение в Сбербанке, и как исправить возникшую проблему? Давайте разбираться.
Что нужно знать о защите данных в банке с помощью 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 – система идентификации пользователя, которая является наиболее распространенной. С ее помощью можно пресечь любой платеж, в том числе и несанкционированный. Защита производится следующим способом: на завершающем этапе оплаты товара/услуги на телефон покупателя приходит уникальный код. Код поступает в виде обычного СМС-сообщения или пуш-уведомления. Пользователь вводит код в нужное поле и оплата подтверждается.
Код приходит только на телефон владельца карточки. Сменить номер получателя, или каким либо образом переадресовать уникальное сообщение без его ведома не получится. Не выйдет подгадать или перехватить сам код – он генерируется случайным образом. Таким образом пользователь стопроцентно подтверждает, что именно он является организатором платежа со своей банковской карты.
Если посторонний человек получил данные карточки и попытался произвести онлайн-платеж – владельцу (и только ему) придет сообщение с кодом, без которого операция не будет произведена. И если к телефону владельца никто из посторонних не будет иметь прямого доступа – без его ведома с банковской карты не пройдет ни один платеж.
Как исправить эту ошибку?
Исправить ошибку довольно просто. Достаточно следовать этой инструкции:
- Для начала нужно убедиться, что карта была активирована. Это касается новых карт, с которых еще не производилось никаких банковских операций. Активировать карту можно разными способами, например, через банкомат «Сбербанка» («Альфа-банка», «ВТБ» или других банков-партнеров), или непосредственно в отделение банка.
- Если карточка уже использовалась по назначению длительное время, то возможно что у нее истек срок действия. Дата истечения срока всегда указывается на лицевой стороне карты. Если срок уже вышел или подходит к концу, то следует прийти в отделение и заменить ее на новую.
- Самые дешевые электронные карты могут не поддерживать платежи через интернет. В таком случае ее нужно заменить на более современную, подключенную к системе Visa или Mastercard, и поддерживающую нужную систему защиты платежей.
- Подключить карту к системе интернет-банкинга.
- В крайнем случае, если ни один способ не работает, стоит обратиться в колл-центр банка. У каждого есть свой номер,по которому можно обратиться (например, для «Сбербанка» – 900).
Набрав номер, оператору нужно разъяснить возникшую ситуацию с ошибкой, а также какие действия уже были выполнены для ее решения.
Подключение услуги через мобильный банк на примере «Сбербанк Онлайн»
Подключить услугу банкинга к карте очень просто. Рассмотрим, как это можно сделать для карты полученной в «Сбербанке». Для этого понадобится банкомат и сама карта. Судя по отзывам пользователей, не во всех банкоматах доступна данная услуга, так что вполне возможно, что придется искать другой.
Алгоритм действий следующий:
- Вставить карту в банкомат.
- Ввести корректный пин-код.
- Зайти в опции карты.
- Найти и выбрать строку подключения мобильного банкинга.
- Указать один из доступных тарифов.
- Получить СМС-сообщение с подтверждением подключения услуги.
Заключение
Проблему при онлайн оплате, вызванную ошибкой «К сожалению нет данных для вашей аутентификации» можно решить быстро и легко. Для начала нужно определиться, что именно вызвало ошибку с оплатой, а после сделать нужной действие. Чаще всего достаточно только активировать или заменить просроченную карту на новую.
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, настройте своих брокеров для:
Настройте хранилище доверенных сертификатов, хранилище ключей и пароль на сервере
.недвижимость
файл каждого брокера. Потому что это хранит пароли прямо в брокере
файл конфигурации, важно ограничить доступ к этим файлам с помощью
разрешения файловой системы.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
технически необязателен, но строго
рекомендуемые.Если пароль не установлен, доступ к хранилищу доверенных сертификатов остается.
доступно, но проверка целостности отключена.Если вы хотите включить SSL для связи между брокерами, добавьте следующие
в файл свойств брокера, по умолчаниюPLAINTEXT
:security.inter.broker.protocol = SSL
Настройте порты для брокеров Apache Kafka® для прослушивания клиента и межброкера
SSL
подключений. Вы должны настроитьслушателей
и, при необходимости,
рекламируется.слушатели
, если значение отличается отслушателей
.слушателей = SSL: // kafka1: 9093 Advertised.listeners = SSL: // localhost: 9093
Настройте порты
SSL
иPLAINTEXT
, если:- SSL не включен для связи между брокерами
- Некоторые клиенты, подключающиеся к кластеру, не используют SSL
слушателей = PLAINTEXT: // kafka1: 9092, SSL: // kafka1: 9093 Advertised.listeners = PLAINTEXT: // localhost: 9092, SSL: // localhost: 9093
Обратите внимание, что
рекламируется.host.name
иAdvertised.port
настраивает
один портPLAINTEXT
и несовместим с безопасными протоколами. Использовать
Рекламируетсяслушателей вместо
.Чтобы брокер мог аутентифицировать клиентов (двусторонняя аутентификация), вы должны
настроить всех брокеров для аутентификации клиентов. Настроить
для использованиятребуется
, а не, запрашиваемый
, потому что неправильно настроен
клиенты по-прежнему могут успешно подключаться, и это дает ложное ощущение
безопасность.Примечание
Если для данного слушателя включены какие-либо механизмы аутентификации 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 необходимо настроить безопасность для:
- Рабочие группы Kafka Connect: часть API Kafka Connect, рабочий на самом деле является просто продвинутым клиентом, скрытым под крышками
- Соединители Kafka Connect: соединители могут иметь встроенных производителей или потребителей, поэтому необходимо переопределить конфигурации по умолчанию для производителей Connect, используемых с исходными соединителями, и Connect потребителей, используемых с соединителями-приемниками
- 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.
в трех местах:
- Обычные клиенты
- Kafka Connect
- Репликатор Confluent
Важно
Типичный вариант использования перехватчиков Confluent Monitoring — обеспечение мониторинга
данные в отдельный кластер мониторинга, который, скорее всего, имеет другую конфигурацию.Конфигурации перехватчика не наследуют конфигурации отслеживаемого компонента.
Если вы хотите использовать конфигурации из отслеживаемого компонента, вы должны добавить
соответствующий префикс. Например, параметр confluent.monitoring.interceptor.security.protocol = SSL
,
если используется для производителя, должен иметь префикс производителя .
и будет выглядеть как
продюсер.confluent.monitoring.interceptor.security.protocol = SSL
.
Перехватчики для обычных клиентов
Чтобы мониторинг потока Confluent Control Center работал с клиентами Kafka, необходимо настроить SSL.
шифрование и аутентификация для перехватчиков Confluent Monitoring на каждом клиенте.
- Убедитесь, что клиент настроил перехватчики.
Производитель:
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 требуется, чтобы вы
настроить безопасность между:
- REST-клиенты и REST-прокси (HTTPS)
- REST-прокси и кластер Kafka
См. Также полный список параметров конфигурации REST Proxy.
Настройте 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
Настройка 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. Закодируйте ключ и секрет потребителя
Шаги по кодированию ключа и секрета потребителя приложения в набор учетных данных для получения токена носителя:
- URL-адрес кодирует ключ потребителя и секрет потребителя в соответствии с RFC 1738. Обратите внимание, что на момент написания это фактически не изменит ключ и секрет потребителя, но этот шаг все равно следует выполнить в случае изменения формата этих значений в будущее.
- Объедините закодированный ключ потребителя, двоеточие «:» и закодированный секрет потребителя в одну строку.
- Base64 кодирует строку из предыдущего шага.
Ниже приведены примерные значения, показывающие результат этого алгоритма. Обратите внимание, что секрет потребителя, используемый на этой странице, предназначен для тестовых целей и не будет работать для реальных запросов.
Потребительский ключ | xvz1evFS4wEEPTGEFPHBog |
Потребительская тайна | L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| xvz1evFS4wEEPTGEFPHBog |
| 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.
Аутентификация включает:
- Регистрация вашего приложения для получения идентификатора клиента и секрета клиента.
- Получение жетона. Это включает в себя определение областей и разрешений, необходимых вашему приложению.
- Отправка токена в вашем запросе 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 Получить ключ потока пользователя |
Это сопоставление влияет на следующие конечные точки:
Конечная точка | Объем API Twitch | API v5 Scope (не рекомендуется) |
---|---|---|
Каналы обновления | канал: управление: трансляция | channel_editor |
Получить маркеры потока | канал: управление: трансляция | channel_editor |
Создать маркеры потока | канал: управление: трансляция | channel_editor |
Обновить теги потока | канал: управление: добавочный номер | channel_editor |
Список добавочных номеров пользователей | канал: управление: добавочный номер | н / д |
Активировать добавочные номера пользователей | канал: управление: добавочный номер | н / д |
Чат и PubSub
Имя области | Тип доступа |
---|---|
канал: средний | Выполнение модерационных действий в канале.Пользователь, запрашивающий объем, должен быть модератором канала. |
чат: редактировать | Отправить чат в прямом эфире и сообщения комнат. |
чат: читать | Просмотр чата в прямом эфире и сообщений комнат. |
шепотом: прочтите | Просмотрите свои шепотом сообщения. |
шепотом: редактировать | Отправлять шепотом сообщения. |
Оставить отзыв об этой странице
.