繁体   English   中英

wso2 api管理器安全的公共API

[英]wso2 api manager secure public API

我设计了一个带有JSON的公共REST API,该API主要用于本机移动应用程序。 应该订阅该API的应用程序没有任何用户名/密码登录机制,因为它应该是公共的。

该API是使用版本2.1.0中的WSO2 API Manager设计的,应用程序应建立TLSv1.2可信连接才能使用服务。

后端的API正在订阅具有相互TLS身份验证的内部REST API。

目前,该API的OAuth2已禁用,我正在考虑如何使用它,以便获得更高的保证并确定尝试使用该API的端点。

从我的角度来看,在这种情况下,我可以使用的唯一OAuth2授权类型是“客户端证书”,在该应用程序中,应用程序可以获取其使用者密钥和使用者机密以请求访问令牌。 但是可以从应用程序源代码或配置中获取。

由于没有用户名/密码机制,因此无法使用隐式授予类型。

在这种情况下如何使用API​​ Manager?

对于相互SSL,您可以参考以下博客文章。

http://ishara-cooray.blogspot.com/2016/07/how-to-secure-your-backend-services-and.html

这是博客文章中的重要部分。

配置API Manager以启用动态SSL配置文件

要为HHTPS传输发件人配置用于动态SSL配置文件的APIM,您需要创建一个新的XML文件/repository/deployment/server/multi_ssl_profiles.xml(此路径是可配置的)并将以下配置复制到其中,这将配置客户端信任库.jks作为所有10.100.5.130:9443连接的信任库

 <parameter name="customSSLProfiles"> <profile> <servers>10.100.5.130:9443</servers> <TrustStore> <Location>repository/resources/security/client-truststore.jks </Location> <Type>JKS</Type> <Password>wso2carbon</Password> </TrustStore> </profile> </parameter> 

要启用此配置的动态加载,请将以下配置添加到API管理器({AM_HOME} /repository/conf/axis2.xml)的传输发件人配置(PassThroughHttpSSLSender)中。 将以上文件路径设置为“ filePath”参数。

 <parameter name="dynamicSSLProfilesConfig"> <filePath>repository/deployment/server/multi_ssl_profiles.xml</filePath> <fileReadInterval>3600000</fileReadInterval> </parameter> <parameter name="HostnameVerifier">AllowAll</parameter> 

现在,后端服务和ESB均已配置为使用默认密钥存储,并且API Manager已配置为加载动态SSL配置文件。 重新启动API管理器。 它将在控制台中显示以下消息,确认已加载动态配置。

ClientConnFactoryBuilder customSSLProfiles配置是从以下路径加载的:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM