[英]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.