如何禁用apiDiscovery功能的验证要求
是否有任何方法可以禁用访问由apiDiscovery-1.0
功能提供的API文档端点的验证要求?如何禁用apiDiscovery功能的验证要求
我在Liberty 16.0.0.4上启用了apiDiscovery-1.0
功能。
我按照预期访问/ibm/api/explorer
时能够看到swagger文档,但我需要进行身份验证。
我只能使用我的server.xml
中的basicRegistry
元素中定义的凭据进行身份验证。但是,我想从我的服务器配置中删除此basicRegistry
。
出于安全考虑,我相信你不能删除对apiDiscovery进行身份验证的要求。
我怀疑这有帮助,但是,你不应该“只能使用在我的server.xml中的basicRegistry元素中定义的凭证进行身份验证”,而是任何受支持的身份验证机制都应该像quickStartSecurity,LDAP等一样工作(并且它们可以是设置在由服务器读取的任何配置文件中,而不仅仅是server.xml)。例如,您应该能够在wlp/usr/shared/config中使用quickStartSecurity来为该/ wlp/usr/servers /目录下的所有服务器应用Admininistrator角色。
你可以做的是,在最新的测试版(https://developer.ibm.com/wasdev/downloads/liberty-profile-beta/)
与该驱动程序,您只需要apiDiscovery-1.0(SSL可选)。
默认地址为公众端点是http://host:port/api/explorer
可以通过使用在server.xml中apiDiscovery元件的publicURL属性,例如改变“/ API”部分:
<apiDiscovery publicURL="/myPublicAPI" />
这是针对Liberty的下一个版本17.0.0.1的。
请注意,在公共端点中,不显示内部端点(如JMX,Batch等) - 仅显示已部署的应用程序。
对于内部端点,您可以使用/ ibm/api/explorer(它仍然需要SSL和认证)。
谢谢阿瑟。我会给测试一个镜头,并期待在发布时升级到17.0.0.1。 – austinbruch
你说得对,那不是我能够进行身份验证的唯一方式,而是我只能进行身份验证,因为我碰巧在我的server.xml中有一个basicRegistry条目。 出于安全原因,该应用程序位于外部安全框架之后,因此我不需要在Liberty容器上处理身份验证。 apiDiscovery需要身份验证令人失望,因为它将与我的应用程序一起位于外部安全框架之后。 – austinbruch