最近,大多数客户正在从BASIC认证转移到OAuth2.0,或者他们正计划这样做。在这篇博客中,我将讨论任何SAP云集成顾问可能遇到的三种可能的情况。

范围。 适用于SAP云整合顾问
场景一:在云计算中的应用通过OAuth2.0访问和CPI服务(通过POSTMAN进行模拟)。
**场景2:**使用HTTP和OData适配器通过OAuth2.0消耗SuccessFactors APIs。
**场景3:**使用SuccessFactors (SF)适配器,通过OAuth2.0消耗SuccessFactors APIs。
**实现场景1的步骤:**通过OAuth2.0访问和CPI服务(通过POSTMAN模拟)。
- 设置一个实例来获取服务密钥 - 复制clientid、clientecret和tokenurl。
- 使用POSTMAN获取承载器密钥

- 使用承载器密钥访问服务

实现情景2的步骤:通过使用HTTP和OData适配器的OAuth2.0消耗SuccessFactors APIs
- 在SF中为用户分配所需的授权。
管理集成工具 > 管理OAuth2客户端应用程序- 由SF顾问完成。用户应该有访问API的权限。
- 在SF中为OAuth的配置 -管理OAuth2客户端应用程序
下载的证书将有两个部分(私钥和证书)。复制私钥(在-BEGIN ENCRYPTED到-END ENCRYPTED之间)。
点击注册。一个API密钥将被生成。复制该密钥,因为这需要在下面的后续步骤中使用。
- 设计CPI场景 - 使用HTTP和OData适配器访问API。

在Body中传递以下细节 - client_id, user_id, token_url & private_key
client_id=<client_id>&user_id=<user_created in_SF>&token_url=/outh/token&private_key=<private_key>


company_id=<Comp_Id>&client_id=<Client_Id>&grant_type=urn:ietf:params:oauth:grant-type:saml2-bearer&assertion=${in.body}。
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import groovy.json.*;
def Message LogSamlAss(Message message) {
def body = message.getBody(java.lang.String) as String;
def messageLog = messageLogFactory.getMessageLog(message);
messageLog.addAttachmentAsString("Log_SAML_Assertion:", body, "text/xml");
return message;
}
def Message HoldToken(Message message) {
//Body
def body = message.getBody(String.class);
def jsonSlurper = new JsonSlurper()
def list = jsonSlurper.parseText(body)
def token="Bearer "+list.access_token.toString();
//Headers
def map = message.getHeaders();
message.setHeader("Authorization", token);
def messageLog = messageLogFactory.getMessageLog(message);
messageLog.addAttachmentAsString("Log_Token:", body, "text/xml");
return message;
}


实现Scenario3的步骤。 使用SuccessFactors适配器通过OAuth2.0来消费SuccessFactors APIs
- 在SF中为用户分配所需的授权 - 按照Scenario2。
- 在CPI中生成密钥对。
- 在SF中进行OAuth配置。
复制生成的API密钥。这需要在CPI中传递,同时创建一个用户凭证,通过OAuth访问SF。
- 在CPI中创建一个带有SAML断言的用户 - 以后这个用户将被传递到SF适配器配置中,以便通过OAuth2.0访问SF APIs。
- 设计CPI场景 - 使用SuccessFactors适配器访问API。

我们已经看到了通过OAuth2.0访问API的03种可能的情况。
如果有任何问题或反馈,我们将不胜感激!








