Конфигурация порта WSO2 Identity Server - PullRequest
0 голосов
/ 18 апреля 2020

Я использую WSO2 Identity Server 5.10.0. У меня есть очень классический сценарий, представленный на этом изображении enter image description here

В основном у меня на DMZ есть Apache веб-сервер, отвечающий по SSL через порт 443; в безопасной зоне у меня WSO2 IS сервер отвечает на порт 9443. Мне нужно поддерживать OAuth Open ID аутентификацию (но у меня та же проблема в случае SAML).

Я сконфигурировал мой deployment.toml файл в вот так:

[server]
hostname = "IAM01"
node_ip = "10.xxxx.yyyy.zzzz"
base_path = "https://$ref{server.hostname}:${carbon.management.port}"

Теперь, когда я звоню по URL https://mydomain/oauth2/token/.well-known/openid-configuration, чтобы получить всю информацию OAuth, запрос передается на веб-сервер и с веб-сервера на WSO2. Полный ответ WSO2 JSON здесь здесь

Как вы можете видеть, в этом JSON WSO2 отвечает мне, давая такие URL-адреса: https://IAM01:9443/oauth2/authorize. Это потому, что в моем deployment.toml я рассказал ему эти параметры. Конечно, я могу изменить имя хоста в mydomain, но это остается проблемой порта. Фактически, мои клиенты не смогут выполнить сопоставление с oauth-эмитентом, поскольку они проверяют наличие эмитента без порта. Что я хотел бы сделать, так это настроить WSO2 IS, чтобы он мог генерировать всю информацию о токенах, используя мою спецификацию, и я не хочу запускать WSO2 IS-сервер на порту 443 (кроме того, как пользователь root). Я попытался настроить резидентный поставщик удостоверений с помощью его интерфейса, как показано в следующем image

Также, таким образом, я не могу сказать WSO2 генерировать всю информацию, используя только https://mydomain/ без добавления порта и прочего.

Как я могу сделать эту конфигурацию? Более того, для политик безопасности я не могу запустить WSO2 IS на порту 443.

Спасибо

Angelo

1 Ответ

0 голосов
/ 22 апреля 2020

Я решил свои проблемы. Мне пришлось глубже исследовать документацию WSO2 IS.

Прежде всего, как сказал @Pubci в моем deploy.toml, мне пришлось добавить:

#https://is.docs.wso2.com/en/latest/administer/deployment-checklist/
[transport.https.properties]
proxyhost="you.proxy.host"
proxyPort="443"

Затем, чтобы использовать мой идентификатор объекта Identity Provider Entity в качестве эмитента в токенах JWT, мне пришлось добавить также

#https://is.docs.wso2.com/en/latest/learn/openid-connect-discovery/#openid-connect-discovery
[oauth]
use_entityid_as_issuer_in_oidc_discovery = true

. Используя эти настройки, все работало довольно хорошо. Я смог запустить WSO2 IS с обычным пользователем на порту 9443.

Angelo

...