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