2022년 5월 22일 일요일

SAP Concur와 Rest채널에서의 엑세스토큰 옵션 3가지+1

"실제 해보진 않았고 관련 사이트를 보고 개념만 정리했습니다."


SAP PO와 Concur간 연계방식인 Rest 채널통해 서비스 URL호출하기전에 엑세스토큰(OAuth 2.0) 인증에 대한 지원옵션에 대해 담아봤습니다.
PO에서 Concur 업무를 위한 API를 호출하기위해서는 엑세스 토큰이 필요하다고 하는데요. 제가 보았던 부분에 대해서는 1회만 엑세스토큰을 받아 계속 사용할수 있는게 아닌 주기적으로(예를들어 한시간 마다) 받아야 하는 번거로움이 있어보였습니다.


SAP Concur란?
SAP Concur 솔루션은 모든 경비, 출장 및 공급업체 송장 지출을 하나의 시스템에 연결하여 지출을 엔드 투 엔드에서 관리, 거래에 대한 가시성을 높이고 모든 사용자를 위한 프로세스를 단순화하는 단일 방법을 제공한다고 한다고 하는데.. 쉽게 얘기하면 Concur는 경영진이 출장 경비를 관리할수 있게 해주는 '클라우드 기반 경비 및 관리 소프트웨어 솔루션'이라고 합니다. 


PO의 Rest채널에서의 Concur 엑세스 토큰 인증방법은
아래 내용들은 'PI REST Adapter - Connect to Concur'를 보았으니 좀더 자세한 내용에 대해서는 해당 글의 작성자 블로그에 접속해보시는것을 추천드립니다.


Concur연계를 위한 Rest채널 엑세스토큰 옵션 3가지

준비작업
PO 릴리즈 7.31/7.4 SP12부터 Rest Receiver 어댑터에 Concur용 OAuth 2.0지원을 위한 옵션이 존재한다고 하는데 만약 Concur와 연계하신다면 사전에 확인을 해보셔야될것 같고 만약 현 PO버젼애서 지원을 안한다면 HTTP헤더기능을 통한 방법이 있다고 합니다.

SAP Concur 개발자센터의 샌드박스에 등록 후 관련 키, 엑세스토큰 등을 받을수 있는것 같은데 해보지 않아서 모르겠습니다.


1. 헤더기능을 사용한 엑세스토큰 기능
REST 어댑터의 HTTP헤더 기능을 사용한 엑세스토큰 옵션인데 HTTP Headers > Additional HTTP Headers에 헤더네임으로 'Authorization' 으로 Value Pattern은 발급받은 토큰을  값을 OAuth 추가한것 같은데 이방식 같은경우 Concur의 토큰만료시간이 작은 경우 이 작업에 대한 추가적은 유지관리나 로직이 필요할것 같습니다.


2. Concur용 엑세스토큰 기능
Rest 어댑터에서 지원하는 OAuth 인증 설정을 하여 엑세스 토큰을 관리하는 기능은 아래와같이 설정 가능합니다.
General > OAuth > Authorize with OAuth 체크 후에 Flow에 'OAuth 2.0 Native Flow for Concur'을 선택
Access Token Source에는 'Provide Access Token directly' 선택
Access Token은 OAuth 추가
이 옵션도 1번옵션과 마찬가지로 토큰만료시간에 따라 추가적인 로직이 필요할수도 있을것 같습니다.


3. 엑세스토큰 URL호출하는 기능
REST 어댑터에서 자동으로 엑세스토큰 URL를 호출하여 PO서버내에 저장된다고 합니다. 셋팅방법은
Access Token Source의 'Get Access Token from Concur URL' 선택 후 엑세스 토큰 관련 URL,ID,Password,Consumer Key를 입력하면 된다고 하는데 해당기능을 대해 직접 모니터링 한건 아니지만 한개의 Rest receiver어댑터에서 Concur API를 호출 시 예를들어
엑세스토큰 만료시간은 1시간, 소스쪽에서 호출할때 1분마다 이런 조건이면 Concur서버에부하를 줄수 있는 부분일수도 있을것 같습니다.


4. 자바매핑
참고사이트의 댓글내용들을 보면 채널옵션을 사용하지 않고 자바매핑을 사용하는 방법으로 사용했다고 하는데 업무적으로 엑세스토큰 시간과 일치하는 인터페이스들은 REST 기능을 활용하는 방안으로 Concur인터페이스를 설계해보는것도 좋을것 같습니다.

그외 Rest어댑터의 Concur용 인증기능을 사용할수 있지만 실제 채널에서 해당 옵션이 보이지 않는 경우가 있다고 하는데 최신 SWCV(Software Component Version)를 ESR(Enterprise Services Repository)의 업로드가 필요할수 있다고 합니다.


정리를 하자면
Concur 인터페이스 연계를 실지적으로 해보진 않았지만 이미 Concur API를 호출하는 URL를 미리 제공되는것 같고 이 API를 사용하는 소스시스템의 호출빈도에 따라 인증옵션을 선택해보는것도 좋을것 같습니다.


끝까지 읽어주셔서 감사합니다.

댓글 없음:

댓글 쓰기