WSO2 IS-KM и WSO2 AM с HA - PullRequest
       20

WSO2 IS-KM и WSO2 AM с HA

0 голосов
/ 10 октября 2019

Я пытаюсь реализовать решение двойной HA с WSO2AM и WSO2IS в качестве KeyManager.

На самом деле у меня есть 2 узла, WSO2AM и WSOIS-KM установлены на каждом и отлично работают. Оба узла имеют доступ и пишут в одну и ту же базу данных. Проблемы возникают, когда я пытаюсь получить доступ к приложению, зарегистрированному в хранилище, с другого созданного им узла.

Я установил WSO2AM 2.6.0 и IS-KM 5.7.0 в среде centos. И AM, и IS-KS работают на одном узле со смещением por. У меня есть 2 узла, настроенные таким образом.

Пример проблемы:

С узла 1 я получаю доступ к хранилищу узла 1 и создаю новое приложение. Я генерирую токены и ключи без каких-либо проблем. После этого я получаю доступ к хранилищу узла 2, я вижу то же самое приложение, но когда я пытаюсь получить доступ и просмотреть токены, оно выдает исключение, такое как токен OAuth не существует или что-то в этом роде (я забываю взять подтверждениечто).

Я понимаю, что мне нужно сделать WSO2AM в HA, но я не совсем уверен, нужно ли мне развертывать WSO2IS как HA и после этого конвертировать в KM или что именно мне нужно делать.

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

1 Ответ

0 голосов
/ 14 октября 2019

Вы можете сконфигурировать оба узла API Manager (node01 и node02) с IS в качестве Key Manager для достижения вашего варианта использования.

Если вы используете только один экземпляр диспетчера ключей IS и два узла диспетчера API, то необходимо подключить оба узла диспетчера API с помощью балансировщика нагрузки (развертывание высокой доступности с включенными липкими сеансами и источники данных являются общими для всехузлы) и настройте API Manager следующим образом

Узлы API Manager: api-manager.xml (допущение смещения порта IS-KM 1, следовательно, 9444)

<AuthManager>
  <!-- Server URL of the Authentication service -->
  <ServerURL>https://localhost:9444/services/</ServerURL>
  ...
</AuthManager>
...
<APIKeyValidator>
  <!-- Server URL of the API key manager -->
  <ServerURL>https://localhost:9444/services/</ServerURL>
  ...
</APIKeyValidator>

Узел управления ключами IS: api-manager.xml

<APIGateway>
  <Environments>
    <Environment type="hybrid" api-console="true">
      ...
      <!-- Server URL of the API gateway -->
      <ServerURL>https://loadbalancer/services/</ServerURL>
      ...
</APIGateway>

Образец NGINX

upstream mgtnode {
  server localhost:9443; # api manager node 01
  server localhost:9443; # api manager node 02
}

server {
  listen 443;
  server_name mgtgw.am.wso2.com;
  proxy_set_header X-Forwarded-Port 443;
  ...
  location / {
    ...
    proxy_pass https://mgtnode;
  }
}
...