新用户注册选项不会出现 UI
New User Register option is not coming over UI
我已经安装了 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
在此之后我可以作为预定义的管理员登录并创建组织,apis 和休息。
但是在登录页面新用户注册选项没有出现。
这里登录页面快照
如何获得新用户注册选项?。我正在使用 apache tomcat。
这是缺少的快照
"Register?New User" 选项没有出现
如果您使用的是 apache tomcat,keycloak Web 应用程序不会与 apiman tomcat 覆盖一起部署。相反,用户和密码在 tomcat/conf/tomcat-users.xml 文件中定义,您可以在其中包含新用户,但据我所知您无法通过 apimanui.
创建新用户
理由
在我们的 WildFly 发行版中,我们使用 Keycloak 进行身份管理和身份验证;它全部集成到一个服务器中,包括所有 apiman 的组件和 Keycloak。但是,Keycloak 无法在 Tomcat 上 运行,因此默认情况下,我们的 Tomcat 快速入门仅使用 tomcat 的内置身份验证机制(您可以将其配置为使用 LDAP,JDBC, 等等).
所以,如果你想要Keycloak加apiman,你需要做一些额外的工作。但是,这带来了很多功能,因此对于实际部署来说可能是值得的。
请记住,这描述起来有点冗长,但实际上实施起来相当快。
当然,仅使用 WildFly 一体机可能更省事,尤其是对于快速测试 :-)。
我会尽快将其添加到 apiman 文档中。
在 Tomcat
上将 Keycloak IDM 与 apiman 结合使用
获取密钥斗篷运行宁
Download Keycloak 和 运行。创建您的管理用户并登录。
Import the apiman Keycloak realm。这只是一个演示演练,您需要重新生成用于生产的密钥和机密 :-)。
对于客户端 apiman
和 apimanui
,将您的 有效重定向 URI 修改为您的 apiman 实例的绝对 URL( s)(例如 http://myapiman.url:8080/apimanui/*
)。
准备Tomcat
通用说明在 Keycloak documentation 中可用,但我会尽力提供更专业的配置信息。
- 下载 keycloak-tomcat8-adapter-dist 并将其解压到 Tomcat.
的 global lib
目录中
修改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>
其他问题
您可能需要复制主题 (or make your own)。比较简单,但不在本次回复范围内。
我已经安装了 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
在此之后我可以作为预定义的管理员登录并创建组织,apis 和休息。
但是在登录页面新用户注册选项没有出现。
这里登录页面快照
如何获得新用户注册选项?。我正在使用 apache tomcat。
这是缺少的快照
"Register?New User" 选项没有出现
如果您使用的是 apache tomcat,keycloak Web 应用程序不会与 apiman tomcat 覆盖一起部署。相反,用户和密码在 tomcat/conf/tomcat-users.xml 文件中定义,您可以在其中包含新用户,但据我所知您无法通过 apimanui.
创建新用户理由
在我们的 WildFly 发行版中,我们使用 Keycloak 进行身份管理和身份验证;它全部集成到一个服务器中,包括所有 apiman 的组件和 Keycloak。但是,Keycloak 无法在 Tomcat 上 运行,因此默认情况下,我们的 Tomcat 快速入门仅使用 tomcat 的内置身份验证机制(您可以将其配置为使用 LDAP,JDBC, 等等).
所以,如果你想要Keycloak加apiman,你需要做一些额外的工作。但是,这带来了很多功能,因此对于实际部署来说可能是值得的。
请记住,这描述起来有点冗长,但实际上实施起来相当快。
当然,仅使用 WildFly 一体机可能更省事,尤其是对于快速测试 :-)。
我会尽快将其添加到 apiman 文档中。
在 Tomcat
上将 Keycloak IDM 与 apiman 结合使用获取密钥斗篷运行宁
Download Keycloak 和 运行。创建您的管理用户并登录。
Import the apiman Keycloak realm。这只是一个演示演练,您需要重新生成用于生产的密钥和机密 :-)。
对于客户端
apiman
和apimanui
,将您的 有效重定向 URI 修改为您的 apiman 实例的绝对 URL( s)(例如http://myapiman.url:8080/apimanui/*
)。
准备Tomcat
通用说明在 Keycloak documentation 中可用,但我会尽力提供更专业的配置信息。
- 下载 keycloak-tomcat8-adapter-dist 并将其解压到 Tomcat. 的 global
lib
目录中
修改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>
其他问题
您可能需要复制主题 (or make your own)。比较简单,但不在本次回复范围内。