Параметр "Регистрация нового пользователя" не доступен через пользовательский интерфейс
Я установил api man, как определено в http://www.apiman.io/latest/download.html
Я выполнил следующие инструкции.
mkdir ~/apiman-1.2.5.Final
cd ~/apiman-1.2.5.Final
curl http://download.jboss.org/wildfly/10.0.0.Final/wildfly-10.0.0.Final.zip -o wildfly-10.0.0.Final.zip
curl http://downloads.jboss.org/apiman/1.2.5.Final/apiman-distro-wildfly10-1.2.5.Final-overlay.zip -o apiman-distro-wildfly10-1.2.5.Final-overlay.zip
unzip wildfly-10.0.0.Final.zip
unzip -o apiman-distro-wildfly10-1.2.5.Final-overlay.zip -d wildfly-10.0.0.Final
cd wildfly-10.0.0.Final
./bin/standalone.sh -c standalone-apiman.xml
После этого я могу войти в систему как администратор, который предопределен и создать организацию, API и остальные.
но на странице входа в систему опция регистрации нового пользователя не появится. здесь логин страницы оснастки
Как я могу получить новую опцию регистрации пользователя? Я использую Apache Tomcat. Вот оснастка чего не хватает
Опция "Зарегистрироваться? Новый пользователь" не появится
2 ответа
обоснование
В наших дистрибутивах WildFly мы используем Keycloak для управления идентификацией и аутентификации; все это объединено в один сервер, включая все компоненты apiman и Keycloak. Однако Keycloak не может работать на Tomcat, поэтому по умолчанию наш быстрый запуск Tomcat просто использует встроенные механизмы аутентификации tomcat (которые вы можете настроить для использования LDAP, JDBC и т. Д.).
Итак, если вы хотите Keycloak plus apiman, вам нужно немного поработать. Тем не менее, это дает много возможностей, поэтому, вероятно, оно того стоит для реальных развертываний.
Имейте в виду, что это немного многословно для описания, но на самом деле довольно быстро для реализации.
Естественно, простое использование WildFly все-в-одном может быть меньше хлопот, особенно для быстрого теста:-).
Я добавлю это в документацию apiman в ближайшее время.
Использование Keycloak IDM с apiman на Tomcat
Запустите Keycloak
Скачайте Keycloak и запустите. Создайте своего администратора и войдите в систему.
Импортируйте царство Пищевого Ключника. Это всего лишь демонстрационная демонстрация, вам нужно восстановить ключи и секреты для производства:-).
Для клиентов
apiman
а такжеapimanui
измените ваши действительные URI перенаправления, чтобы они были абсолютными URL-адресами для ваших экземпляров apiman (например,http://myapiman.url:8080/apimanui/*
).
Подготовить Tomcat
Общие инструкции доступны в документации по Keycloak, но я постараюсь предоставить более специализированную информацию о конфигурации.
- Загрузите и извлеките keycloak-tomcat8-adapter-dist в глобальную
lib
каталог Tomcat.
Изменить apiman
экстракт apiman.war
, apimanui.war
, а также apiman-gateway-api.war
и добавьте следующее:
META-INF/context.xml
В apiman.war
:
<Context path="/apiman">
<Valve className="org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve"/>
</Context>
В apimanui.war
<Context path="/apimanui">
<Valve className="org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve"/>
</Context>
В apiman-gateway-api.war
<Context path="/apiman-gateway-api">
<Valve className="org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve"/>
</Context>
WEB-INF/keycloak.json
В apiman.war
:
{
"realm": "apiman",
"resource": "apiman",
"realm-public-key": "<YOUR REALM'S PUBLIC KEY>",
"auth-server-url": "http://localhost:9080/auth",
"ssl-required": "none",
"use-resource-role-mappings": false,
"enable-cors": true,
"cors-max-age": 1000,
"cors-allowed-methods": "POST, PUT, DELETE, GET",
"bearer-only": false,
"enable-basic-auth": true,
"expose-token": true,
"credentials" : {
"secret" : "<APIMAN SECRET HERE, IF ANY>"
},
"connection-pool-size": 20,
"principal-attribute": "preferred_username"
}
В apimanui.war
Конфиг, как указано выше, но с:
{
"realm": "apiman",
"resource": "apimanui",
"realm-public-key": "<YOUR REALM'S PUBLIC KEY>",
...
"credentials" : {
"secret" : "<APIMANUI SECRET HERE, IF ANY>"
},
"principal-attribute": "preferred_username"
}
В apiman-gateway-api.war
Конфиг, как указано выше, но с:
{
"realm": "apiman",
"resource": "apiman-gateway-api",
"realm-public-key": "<YOUR REALM'S PUBLIC KEY>",
...
"credentials" : {
"secret" : "<APIMAN-GATEWAY-API SECRET HERE, IF ANY>"
},
"principal-attribute": "preferred_username"
}
WEB-INF/web.xml
Для всего вышеперечисленного замените login-config
раздел с:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>apiman</realm-name>
</login-config>
Другие вопросы
Вы можете скопировать темы ( или создать свои собственные). Это довольно просто, но выходит за рамки этого ответа.
Если вы используете apache tomcat, веб-приложение keycloak не развертывается с наложением apiman tomcat. Вместо этого пользователи и пароли определены в файле tomcat/conf/tomcat-users.xml, там вы можете включить новых пользователей, но, насколько я знаю, вы не можете создавать новых пользователей через apimanui.