Connecting SAP SuccessFactors Using an OAuth 2.0 Client (OA2CS)#

Follow
SIMG > ABAP Platform > Application Server > Basis Services > Communication Interfaces
> OAuth 2.0 Client Implementation for SAP SuccessFactors Integration

The default implementation allows only a connection to ONE SuccessFactors instance.
Then you can use the existing objects.

This ones decribes how to create custom objects for multiple instances.

certificates / communication#

1. Configure Proxy Settings
x.SICF > F8 > Menu > Client > Proxy Settings
  • > HTTPS Protocol = <host>:<port> SKIPPED !!!
  • > Global Settings > Set Active SKIPPED !!!

OAuth configuration#

  • OAuth profile, default "SUCCESSFACTORS", use SE80 > Create > Others > OAuth 2.0 Client Profile (t.OA2C_PROFILES)
  • Application ID, default "DEFAULT", x.CLB2_APPLI
  • Provider type, default "SuccessFactors", x.CLB2_PTYPE (SM30 > CLB2V_PTYPE)
  • Application Server Assignment, default "DEFAULT", SM34 > CLB2VC_APPLI_PLATF <= here we have the OAuth App ID and the companyId
  • Server Communication, default "SuccessFactors", SM34 > CLB2VC_PLATF (SM30 > CLB2V_PLATF), make sure to fill also the "Authentication Methods" like USER
  • Server, default "SuccessFactors", SM34 > CLB2VC_PLATF_DEF
  • Application Settings" for each instance with SM30 > CLB2V_APPL_DATA
  • Parameters for each instance with SM30 > CLB2V_APPL_EXT, here we have company_id

x. OA2C_CONFIG (t.oa2c_client)

<sf_host>/oauth/token
form, header, current, SAML
www.successfactors.com
998

Modifications#

Whenever you choose to create SAML a new STRUST is created: "SSF OAuth2 Client Identity Provider - Signature" (x.SSFA) table SSFAPPLIC <==== > Create entry with r.ZMDW_TEST

Note: use always same case to avoid mixing up at all artifacts: Profile, Type, Application ID, Service Provider Type, SSF ID, Server

CL_OA2C_SPECIFICS_DEFAULT
CL_OA2C_CONFIG_EXT_DEFAULT

BADI Definition:	OA2C_SPECIFICS_BADI_DEF
BADI Implementation:	SMI_OA2C_SPEC_SFSF_BIZX				
Filter Value:		SUCCESSFACTORS
Implementation Class:	CL_SMI_OA2C_SPEC_SFSF	=> copied to ZCL_SMI_OA2C_SPEC_SFSF_CD
						=> exchange all references from class CL_SMI_OA2C_CONFIG_SFSF to ZCL_SMI_OA2C_CONFIG_SFSF_CD
						=> edit method IF_OA2C_SPECIFICS~GET_CONFIG_EXTENSION (replace R_CONFIG_EXTENSION name)
						
BADI Definition:	OA2C_CONFIG_EXTENSION_BADI_DEF
BAdI Implementation:	SMI_OA2C_CONFIG_SFSF_BIZX
Filter Value:		SUCCESSFACTORS
Implementation Class:	CL_SMI_OA2C_CONFIG_SFSF => copied to ZCL_SMI_OA2C_CONFIG_SFSF_CD
						=> update attributes GC_APPLICATION and GC_SMI_SP_SFSF
						
SE18 > BAdI OA2C_CONFIG_EXTENSION_BADI_DEF 
	> Right-Click > Create implementation > ei.Z_SMI_OA2C_SPEC_SFSF_BIZX_CD
	> bi.Z_SMI_OA2C_SPEC_SFSF_CD

SE18 > BAdI OA2C_SPECIFICS_BADI_DEF 
	> Right-Click > Create implementation > ei.Z_SMI_OA2C_CONFIG_SFSF_CD
	> bi.Z_SMI_OA2C_CONFIG_SFSF_BIZX_CD

Connection Test#

r.RCLB2_DEMO_GENERIC
  • Choose your Service Provider Type and Application ID
  • Request Method: HTTP Get (GET)
  • Manually Entered Endpoint
    • Endpoint: /odata/v2/FODivision/
    • Authentication Context: User Context (USER)

Successfactors auth endpoints#

The first is not secure anymore and should not be used anymore.

/oauth/idp
	parameters: 
		client_id
		user_id
		private_key
		token_url
		use_email
		use_username  <=== true
/oauth/token
	parameters:
		company_id
		client_id
		grant_type
		assertion
		new_token	<=== true

Trace#

/usr/sap/DMD/D11/work/dev_w* (work process traces) => search for "OA2C"