Создание клиентов OAuth и управление ими
OAuth — это протокол обеспечения безопасности для авторизации и делегирования. Он разрешает сторонним приложениям доступ к ресурсам API, не раскрывая учетных данных конечного пользователя. Клиент OAuth запрашивает код авторизации и обменивает его на токен доступа, который использует для доступа к содержимому Qlik Cloud через API-интерфейсы.
Типы клиентов OAuth
Клиент OAuth ― это веб-приложение или программное обеспечение, которое запрашивает доступ к ресурсам в Qlik Cloud от имени пользователя. OAuth определяет два типа клиентов (общедоступные и конфиденциальные клиенты), которые обеспечивают безопасную авторизацию между приложением (клиентом) и сервером авторизации (Qlik Cloud).
Qlik Cloud поддерживает конфиденциальные клиенты для традиционных веб-приложений (серверных) и общедоступные клиенты для собственных или одностраничных приложений с использованием определенных потоков авторизации.
Для ознакомления с официальной спецификацией OAuth 2.0 по типам клиентов см. Раздел 2.1 документа RFC 6749: Типы клиентов OAuth 2.0.
Общедоступные клиенты
Общедоступные клиенты — это приложения, которые не используют секрет клиента, так как они не могут обеспечивать конфиденциальность необходимых учетных данных. В Qlik Cloud к ним относятся клиентские приложения, например, одностраничные приложения (SPA) со встроенной аналитикой или пользовательские расширения визуализации в Qlik Sense, требующие проверки подлинности пользователя.
Конфиденциальные клиенты
Конфиденциальные клиенты могут надежно хранить идентификатор клиента и секрет клиента и использовать их для проверки подлинности на сервере авторизации. Эти клиенты имеют доступ к защищенным ресурсам, так как обладают секретом клиента.
Пример: веб-приложение с защищенной серверной частью, взаимодействующее с API-интерфейсами Qlik Cloud с целью управления доступом пользователей к содержимому и оркестрации задач обновления данных.
Потоки авторизации OAuth
Qlik поддерживает два потока авторизации (типы предоставления авторизации):
-
Поток кодов авторизации: для конфиденциальных клиентов.
-
Поток кода авторизации с ключом PKCE (Proof Key for Code Exchange, ключ подтверждения для обмена кодом): для общедоступных клиентов.
Поток кода авторизации
Этот поток используется в серверных приложениях, где исходный код не является общедоступным. Он подразумевает обмен кода авторизации на токен доступа, при этом секрет клиента используется для проверки подлинности. Веб-приложения, которые используют этот поток, должны быть серверными, так как секрет клиента приложения передается на сервер авторизации во время обмена на токен.
Для получения дополнительной информации о потоке кода авторизации см. официальную документацию OAuth 2.0: Поток кода авторизации.
Поток кода авторизации с PKCE
Собственные и одностраничные приложения не могут надежно хранить секрет клиента, поскольку их исходный код может быть декомпилирован или открыт для просмотра в браузере. PKCE повышает безопасность, так как требует использовать верификатор кода для получения токена доступа.
Для получения дополнительной информации о потоке с PKCE см. официальную документацию OAuth 2.0: Поток кода авторизации с PKCE (Proof Key for Code Exchange, ключ подтверждения для обмена кодом).
Области и разрешения OAuth
Области OAuth определяют уровень доступа, предоставляемый клиентским приложениям OAuth. Например, токен доступа может разрешать полный доступ к ресурсам или ограниченный доступ только для чтения. В Qlik Cloud область контролирует доступ клиента к имеющимся функциям и ресурсам. Без области клиенты не могут получить доступ ни к каким ресурсам.
Доступные области OAuth
В таблице перечислены доступные области и связанные с ними разрешения:
Область | Разрешение |
---|---|
user_default | Полный доступ к вашей учетной записи и содержимому |
admin_classic |
Полный доступ администратора к клиенту См. также: Развертывание и администрирование Qlik Cloud Примечание к информацииНе поддерживается в типах клиента Одностраничное приложение и Собственный.
|
admin.apps |
Чтение всех приложений в клиенте и управление ими. См. также: Управление приложениями |
|
Экспорт всех приложений в клиенте См. также: Экспорт приложений |
|
Чтение всех приложений в клиенте |
admin.automations |
Чтение всех автоматизаций в клиенте и управление ими См. также: Управление автоматизациями |
|
Чтение всех автоматизаций в клиенте |
admin.spaces |
Чтение всех пространств в клиенте и управление ими См. также: Управление пространствами |
|
Чтение всех пространств в клиенте |
приложения |
Чтение ваших приложений и управление ими См. также: Управление приложениями |
|
Экспорт ваших приложений См. также: Экспорт приложений |
|
Чтение ваших приложений |
automations |
Чтение ваших автоматизаций и управление ими См. также: Управление автоматизациями |
|
Чтение ваших автоматизаций |
automl-experiments | Чтение ваших экспериментов машинного обучения и управление ими |
automl-deployments | Чтение ваших развертываний машинного обучения и управление ими |
identity.email:read |
Чтение вашего адреса электронной почты См. также: Поставщики удостоверений в Qlik Cloud |
identity.name:read |
Чтение полного имени |
identity.picture:read |
Чтение фотографии профиля См. также: Поставщики удостоверений в Qlik Cloud |
identity.subject:read |
Чтение идентификатора темы пользователя |
spaces.data |
Чтение ваших пространств данных и управление ими См. также: Управление пространствами |
|
Чтение ваших пространств данных |
spaces.managed |
Чтение ваших управляемых пространств и управление ими См. также: Управление пространствами |
|
Чтение ваших управляемых пространств |
spaces.shared |
Чтение ваших общих пространств и управление ими См. также: Управление пространствами |
|
Чтение ваших общих пространств |
offline_access |
Доступ к ресурсам при нахождении в автономном режиме Примечание к информацииНе поддерживается для типа клиента Одностраничное приложение.
|
Создание клиентов OAuth
Администраторы клиента управляют клиентами OAuth на странице OAuth в центре активностиАдминистрирование. Клиент OAuth позволяет интегрировать клиентское приложение с Qlik Cloud для обеспечения безопасного доступа к ресурсам.
Ограничения для клиентов OAuth
Действуют следующие ограничения:
-
Максимум 5 URL-адресов перенаправления для одного клиента.
-
Максимум 5 разрешенных источников на одного клиента.
-
Максимум 5 клиентских секретов на одного клиента.
-
Максимум 200 клиентов OAuth на одного клиента.
Шаги по созданию клиента OAuth
Выполните следующие действия.
-
В центре активности Администрирование выберите OAuth.
-
Нажмите Создать.
-
Выберите тип клиента:
-
Веб-приложение для конфиденциальных клиентов.
-
Одностраничное приложение или Собственный для общедоступных клиентов.
-
-
В диалоговом окне введите имя для клиента OAuth.
-
Добавьте описание (необязательно).
-
Выберите любую из доступных областей в списке (используя полосу прокрутки) или с помощью поля поиска.
Примечание к подсказкеИспользуйте кнопки Все и Выбранные, чтобы отобразить все области или только выбранные области. -
Введите один или несколько URL-адресов перенаправления для клиентского приложения OAuth (максимум 5). Затем нажмите Добавить, чтобы добавить URL-адрес перенаправления в список разрешений.
-
Сервер авторизации перенаправляет браузер пользователя по этому URL-адресу после успешной проверки подлинности и предоставления разрешения на доступ к клиентскому приложению. Например, https://www.exampleapp.com/oauth/callback, где /oauth/callback обрабатывает обратные вызовы проверки подлинности от поставщика OAuth.
-
Qlik Cloud будет перенаправлять пользователя обратно в приложение после успешной авторизации, только если URL-адрес приложения находится в списке разрешенных URL-адресов перенаправления.
-
URL-адреса должны начинаться с https://, однако для домена localhost может использоваться префикс http://. Собственные приложения также могут использовать специальный формат ссылки на приложение, например exampleapp://.
-
-
Для клиента типов Веб-приложение или Одностраничное приложение укажите один или несколько разрешенных источников.
-
Доступ к приложению разрешается, только если URL-адрес добавлен в список разрешенных источников.
-
-
Для клиента типа Веб-приложение можно включить один из следующих параметров для автоматического доступа к системе без взаимодействия с пользователем:
-
Разрешить доступ «Машина-машина» (M2M): обеспечивает связь между системами без участия пользователя.
-
Разрешить олицетворение пользователя M2M: позволяет приложению проходить проверку подлинности от имени пользователей, выступая в их роли во время процесса проверки подлинности.
-
-
Нажмите кнопку Создать.
-
Нажмите Копировать в буфер, чтобы сохранить ИД и секрет клиента для будущего использования. Сохраните секрет клиента в надежном месте.
Примечание к информацииОбщедоступные клиенты не имеют секрета клиента. -
Щелкните Готово.
Клиенты OAuth для конкретных случаев использования
Для ознакомления с примерами использования клиента OAuth см. следующие ресурсы:
-
Обзор OAuth на портале разработчиков Qlik: обзор вариантов использования OAuth и различных типов OAuth.
-
Создание клиента OAuth для надстройки Qlik для Microsoft Excel: настройте клиент OAuth для установки надстройки Qlik для Microsoft Excel.
-
Создание клиента OAuth для анонимного встраивания содержимого приложений: создайте клиент OAuth, чтобы обеспечить анонимный доступ к содержимому встроенного приложения.
Создание клиента OAuth для надстройки Qlik для Microsoft Excel
Чтобы установить надстройку Qlik для Microsoft Excel, требуется конфигурация клиента OAuth. Надстройка используются разработчиками отчетов для подготовки шаблонов отчетов, которые контролируют вывод табличных отчетов из приложения Qlik Sense.
Чтобы в надстройке работал протокол OAuth, необходимо настроить клиент OAuth, в точности соблюдая приведенную ниже конфигурацию.
Выполните следующие действия.
-
В центре активности Администрирование в Qlik Cloud выберите OAuth.
-
Нажмите Создать.
-
В раскрывающемся списке Тип клиента выберите Одностраничное приложение. Появятся дополнительные поля.
-
Вставьте Имя. По желанию заполните поле Описание
-
Как минимум, установите флажок, чтобы включить область user_default. В конфигурацию можно включить другие области, но без user_default установленный экземпляр работать не будет.
Полное описание каждой доступной области см. в Доступные области OAuth.
-
В поле Добавить URL-адреса перенаправления вставьте URL клиента, за которым следует фиксированная строка: /office-add-ins/oAuthLoginSuccess.html
Результат должен выглядеть так, как показано ниже: https://YourServer/office-add-ins/oAuthLoginSuccess.html
-
Щелкните команду Добавить.
-
В поле Добавление разрешенных источников вставьте URL-адрес клиента и нажмите кнопку Добавить.
-
Щелкните Создать.
-
Откроется окно Копирование идентификатора клиента. По желанию можно скопировать идентификатор клиента в буфер обмена или нажать кнопку Готово, чтобы закрыть окно.
После создания клиента OAuth получите ссылку на обновленный файл манифеста XML из центра активности Администрирование. Перейдите на страницу Параметры, затем выберите Совместное использование и отчеты > Надстройка Excel в центре активности Администрирование. Используйте эту ссылку для развертывания и установки надстройки.
Для получения дополнительной информации о создании файла манифеста, а также о развертывании и установке надстройки см.:
-
Развертывание и установка надстройки Qlik для Microsoft Excel
-
Управление манифестами установки надстройки Qlik для Microsoft Excel
Создание клиента OAuth для анонимного встраивания содержимого приложений
Чтобы встроить содержимое приложения для анонимного доступа с помощью qlik-embed, необходимо создать клиент OAuth с типом, специально предназначенным для этого случая использования.
Выполните следующие действия.
-
В центре активности Администрирование откройте раздел OAuth.
-
Нажмите Создать.
-
В раскрывающемся списке Тип клиента выберите Анонимное встраивание.
-
Введите имя и, по желанию, описание для клиента OAuth.
-
В разделе Разрешенные источники введите каждый источник, который необходимо авторизовать. Это домены, которые будут обращаться к клиенту Qlik Cloud с целью получения информации для встроенной аналитики.
Щелкайте Добавить после вставки каждого URL-адреса.
-
После этого нажмите Создать.
-
Нажмите Копировать в буфер, чтобы сохранить идентификатор клиента для будущего использования. Он понадобится, когда содержимое приложения будет встроено в qlik-embed.
-
Щелкните Готово.
Редактирование клиентов OAuth
Можно переименовать клиент OAuth, обновить описание или управлять URL-адресами перенаправления.
Выполните следующие действия.
- В центре активности Администрирование выберите OAuth.
- Выберите клиент OAuth, который необходимо редактировать.
- Нажмите
и выберите Изменить.
- Внесите необходимые изменения в параметры клиента OAuth.
- Нажмите кнопку Сохранить.
Удаление клиентов OAuth
Можно удалить клиент OAuth, когда он больше не нужен или когда требуется отозвать доступ.
Выполните следующие действия.
-
В центре активности Администрирование выберите OAuth.
-
Выберите один или несколько клиентов OAuth, которые требуется удалить, и нажмите Удалить.
- Подтвердите удаление.
Публикация клиентов OAuth
Клиенты OAuth автоматически связываются с клиентом, который их создал. Однако можно настроить клиента OAuth так, чтобы он был общим для нескольких клиентов в одном регионе. Это позволяет сторонним приложениям использовать один и тот же идентификатор клиента на разных клиентах Qlik Cloud.
Владельцы приложений могут выполнять ротацию секретов и обновлять конфигурацию без взаимодействия с администратором клиента. Администраторам клиента не требуется управлять учетными данными или знать какие-либо детали конфигурации опубликованного клиента.
Чтобы позволить другим клиентам подключаться к определенному клиенту OAuth, его необходимо опубликовать.
Выполните следующие действия.
- В центре активности Администрирование выберите OAuth.
- Выберите клиент OAuth, который необходимо опубликовать.
- Щелкните
рядом с клиентом и выберите Опубликовать.
- Щелкните Опубликовать, чтобы подтвердить.
После публикации клиент OAuth становится доступным для внешнего использования другими клиентами. Когда пользователь переходит на внешний веб-сайт, на котором используется клиент OAuth, появляется запрос на ввод имени хоста клиента и учетных данных пользователя, если в данный момент отсутствует активный сеанс SaaS пользователя.
Для первоначального входа в систему потребуется согласие администратора клиента. После одобрения клиент OAuth появится в центре активности Администрирование клиента.
Методы согласия
По умолчанию Qlik Cloud запрашивает у пользователей согласие при проверке пользователей. Чтобы упростить этот процесс, особенно для доверенных приложений, можно установить метод согласия «Доверенный», что позволит пропустить запрос на согласие.
Предоставляется для варианта согласия:
-
Обязательное: запрос на согласие появляется каждый раз, когда клиент OAuth запрашивает новую область. Этот метод обеспечивает явное одобрение пользователем каждого уровня доступа.
-
Доверенное: пользователь не получает запросы согласия. Этот вариант доступен только для неопубликованных клиентов. Для опубликованных клиентов всегда используется метод согласия Обязательное, чтобы обеспечить безопасность нескольких клиентов.
Изменение метода согласия
Чтобы изменить метод согласия для клиента OAuth, выполните следующие действия.
- В центре активности Администрирование выберите OAuth.
- На клиенте OAuth щелкните
и выберите Изменить метод согласия.
- Выберите Обязательное или Доверенное и затем нажмите Изменить метод согласия.
Просмотр и копирование конфигурации OAuth
В разделе OAuth центра активности Администрирование выберите Просмотр конфигурации OAuth, чтобы отобразить данные для проверки подлинности клиента Qlik Cloud. Будет отображен фрагмент кода с конечными точками OAuth и параметрами, а также URL-адрес, который можно скопировать для использования во внешних приложениях.
Эту конфигурацию можно использовать для интеграции Qlik Cloud с приложениями сторонних разработчиков, автоматизации доступа к API или настройки проверки подлинности для встроенной аналитики.
Управление секретами клиента
Если секрет клиента скомпрометирован или если политика безопасности требует периодического обновления, можно добавить или удалить секреты. Чтобы избежать простоев, можно добавить несколько секретов клиента (максимум 5), обновить клиентское приложение, а затем удалить старый секрет.
Добавление секрета клиента
Выполните следующие действия.
- В центре активности Администрирование выберите OAuth.
- Найдите клиент OAuth.
- Нажмите
и выберите Управление секретами.
- Нажмите Создать новый секрет клиента.
-
Скопируйте секрет клиента и идентификатор клиента и храните их в надежном месте.
Примечание к информацииСекрет клиента будет невозможно просмотреть позже. - Нажмите Закрыть.
Добавление секрета клиента
Выполните следующие действия.
- В центре активности Администрирование выберите OAuth.
- Найдите клиент OAuth.
- Нажмите
и выберите Управление секретами.
- Нажмите
рядом с секретом клиента.
- Нажмите Закрыть.
Создание клиентских приложений OAuth для доступа к Qlik Cloud
После регистрации клиента OAuth в Qlik Cloud можно использовать связанные с ним идентификатор и секрет клиента в клиентском приложении OAuth.
Для получения пошагового руководства см. учебные пособия в разделе Обзор OAuth на портале разработчиков Qlik. В этих учебных пособиях рассказывается о том, как создавать клиентские приложения с помощью популярных языков программирования.