我设计了一个带有JSON的公共REST API,主要用于本机移动应用程序。应该订阅此API的应用程序没有任何用户名/密码登录机制,因为它应该是公共的。
API是使用版本2.1.0中的WSO2 API Manager设计的,应用程序应建立TLSv1.2可信连接以便使用服务。
后端的API是订阅具有相互TLS身份验证的内部REST API。
目前,API禁用了OAuth2,我正在考虑如何使用它以获得更高的保证和识别尝试使用API的终点。
从我的角度来看,我在这种情况下可以使用的唯一OAuth2授权类型是Client Credential,其中应用程序可以获取其使用者密钥和使用者密钥以便能够请求访问令牌。但它可以从应用程序源代码或配置中获得。
由于没有用户名/密码机制,因此无法使用隐式授权类型。
在这种情况下如何使用API Manager?
答案 0 :(得分:0)
对于相互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(这个 路径是可配置的)并将以下配置复制到其中。这个 将client-truststore.jks配置为所有人的Trust Store 连接到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>
要启用动态加载此配置,请在下面添加 Transport Sender配置的配置 API Manager的(PassThroughHttpSSLSender) ({AM_HOME} /repository/conf/axis2.xml)。将上面的文件路径设置为 “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 Manager。它将在控制台中显示以下消息 确认已加载动态配置。
加载ClientConnFactoryBuilder customSSLProfiles配置 来自路径: