Статьи

Реализация MuleSoft в качестве поставщика OAuth для защиты приложения Mule

Вступление

Модуль поставщика OAuth2 позволяет настроить приложение Mule runtime engine (Mule) в качестве диспетчера аутентификации в танце OAuth2. С этой ролью приложение сможет аутентифицировать ранее зарегистрированных клиентов, предоставлять токены, проверять токены или регистрировать и удалять клиентов — все это во время выполнения потока. 

MuleSoft поддерживает различные сторонние поставщики OAuth 2.0, как указано ниже:

  • Okta.
  • OpenID Connect.
  • Откройте AM.
  • PingFederate.

MuleSoft может также использоваться в качестве поставщика OAuth для защиты приложений. В этой статье мы увидим, как мы можем реализовать OAuth, используя OAuth-провайдер MuleSoft для защиты API приложений.

Настройка модуля поставщика OAuth2 в AnyPoint Studio

По умолчанию вы не найдете модуль поставщика OAuth2 в AnyPoint Studio. Вам нужно искать взамен и установить его в AnyPoint Studio. Этот модуль поставщика OAuth2 используется для создания клиентов, генерации токенов, проверки, удаления или отзыва токенов.

Добавление модуля OAUTH Provider

Поставщик OAuth2

Настройка хранилища объектов в AnyPoint Studio

Вам потребуется постоянное хранилище объектов для хранения клиентов и токенов. Итак, нам нужно установить Object Store Connector в AnyPoint Studio с биржи.

Установка ObjectStore Connector

Создание проекта в AnyPoint Studio и реализация MuleSoft в качестве поставщика OAuth

Создайте приложение MuleSoft в AnyPoint Studio (т.е. mule-oauth-provider ).

Создайте два постоянных хранилища объектов в глобальной конфигурации, одно для хранения клиентов, а другое для хранения токенов (то есть token_os и client_os ).

Создайте конфигурацию поставщика OAuth2 в глобальной конфигурации.

Конфигурация провайдера OAuth2
  • Настройте конфигурацию прослушивателя и оставьте все по умолчанию.
  • Установите Хранилище клиента в Хранилище объектов (т.е. client_os ) для хранения клиентов.

Настройка стратегии генерации токенов
  • Установите для поддерживаемых типов грантов значение CLIENT_CREDENTIALS .
  • Установите путь токена / токен . Это будет использоваться для генерации токена на предъявителя.
  • Установите Token store в Object Store (то есть token_os ) для хранения токенов.
  • Установите Token ttl на 86400 (т.е. это время истечения для токена).

Внедрение OAuth2-провайдера Создание потока клиентов

Перетащите HTTP-слушатель в поток Mule. Используйте тот же конфиг слушателя HTTP, который мы создали выше. Путь должен быть / createClient .

Настройка HTTP-слушателя

Перетащите клиентский компонент OAuth2 Provide Create в обработчик сообщений и настройте его. Это будет использоваться для генерации нашего client_idи client_secret.

Мы будем отправлять client_idи client_secretв заголовок, поэтому клиентский компонент будет читать client_idи client_secretиз заголовка в запросе.

Настройте клиентский компонент Create, как показано ниже на скриншоте.

Настройка Создать конфигурацию клиента

Наконец, поместите заданную полезную нагрузку в конец потока в обработчике сообщений и установите значение «Клиент создан».

Mule Auth Provider Flow

Внедрение OAuth2-провайдера проверяет поток клиентов

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

Настройка HTTP-слушателя

Перетащите клиентский компонент OAuth2 Provide Validate в обработчик сообщений и настройте его. Это будет использоваться для проверки токена.

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

Настройка Validate client

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

Mule OAuth Provider Flow

Теперь у нас есть три конечные точки, как показано ниже:

Конечная точка Описание
/ createClient Эта конечная точка будет использоваться для создания client_id и client_secret.
/ маркер Эта конечная точка будет использоваться для генерации токена на предъявителя.
/ Validate Эта конечная точка будет использоваться для проверки токена на предъявителя.

Код


XML