Siebel Outbound Service to Open Integration
This topic describes how to use the OpenIntegration Outbound Service
business service to enable synchronous communication from Siebel CRM to the Open Integration
microservice by using Perimeter authentication or OAuth User Assertion
authentication.
Use the OpenIntegration Outbound Service business service for
synchronous communication from Siebel to the Open Integration microservice. This
business service supports communication by using Perimeter authentication or OAuth
authentication with the UserAssertion grant type.
Outbound Business Service Arguments
The OpenIntegration Outbound Service accepts the following arguments
for communication with Open Integration:
integrationname:api: Name of the integration deployed in the Open Integration microservice to invoke.username:security: User name to use for Perimeter orUserAssertion.authtype:security:Authentication type. Supported values arePerimeterandOAuth.granttype:security: Grant type supported in the OAuth model. Currently, onlyUserAssertionis supported.preauthheader:security: Header name to use for Perimeter authentication.accesstokenurl:security: Access token URL to use for OAuth authentication requests.scope:security: Scope to use for access token generation.clientid:security: Client ID to use for IDCS access token generation.clientsecret:security: Client secret to use for IDCS access token generation.audience:security: Audience for which the access token is requested.subsystem:security: Parameterized option to override the subsystem configured for the Business Service.refreshfrequency:security: Time interval at which the access token must be invalidated.
Subsystem
The OpenIntegration Outbound Service business service uses
OpenIntegrationSubsys as the default named subsystem. You must
configure the subsystem containerURL with the load balancer URL of
the OpenIntegration microservice. The target microservice URL is computed as
containerURL + “/v1.0/integration/” integrationname.
Config Agent Tomcat Configuration
When authtype:security is set to OAuth, configure
the following properties in configagent.properties for Config Agent
Tomcat. These properties are required to form the JWT token used in
UserAssertion.
ClientCertKeyAlias: IDP key ID, or kid value. This is the alias or key ID registered in Identity Provider (IDP) for the signing certificate and sent as the JWT header key ID, kid. It tells IDP which registered certificate to use for signature verification.PrivateKeyAlias: Alias of the private key used to sign the JWT token.
Input and Output
Any argument passed to this business service that is not a business service argument is considered input.
You must define the required input and output in the Open Integration DSL. Requests made through this business service are mapped to the DSL input and output.
The business service generates the following output structure:
body.RespBody: Response body for the request.header.RespHeader: Response headers set in the Open Integration flow.status.HTTPStatusCode: Status set by the Open Integration flow.
Sample DSL Mapping
The following sample maps the Open Integration DSL input and output to the
SWIOrderIO integration object.
{
"input": {
"type": "object",
"required": ["SiebelMessage"],
"properties": {
"SiebelMessage": {
"type": "IntegrationObject",
"IntegrationObject": "SWIOrderIO"
}
}
},
"output": {
"type": "object",
"properties": {
"SiebelMessage": {
"type": "IntegrationObject",
"IntegrationObject": "SWIOrderIO"
}
}
}
}
In Siebel Workflow, map the output to the required properties as needed.
JWT Generation
For the OAuth authentication flow with UserAssertion, the Siebel
Server communicates with Config Agent Tomcat to invoke the JWT Builder Service (JBS)
service. The JBS service returns the JWT token used for the rest of the process.
Update the JAVA64 subsystem containerURL with the
corresponding Config Agent server JBS URL.
Caching and Refresh
The Siebel server caches the access token and refresh token generated from IDCS and
reuses them in subsequent requests until expiry. The access token is regenerated if
it exceeds the expiry or refreshfrequency duration. If a refresh
token exists, it is used to regenerate the access token.