Параметр "Регистрация нового пользователя" не доступен через пользовательский интерфейс

Я установил 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, но я постараюсь предоставить более специализированную информацию о конфигурации.

Изменить 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.

Другие вопросы по тегам