Oracle Identity Cloud Service에서 애플리케이션 구성
인증이 제대로 작동하려면 Oracle Fusion Applications Cloud Service 및 Oracle PaaS(Oracle Visual Builder) 또는 사용자정의 HTML5 앱을 보안하는 동일한 Oracle Identity Cloud Service 인스턴스를 사용해야 합니다. Oracle Identity Cloud Service 내에서 클라이언트 인증에 사용할 응용 프로그램을 생성해야 합니다.
이 시나리오에서는 Oracle Functions와 Oracle API Gateway의 문제를 Oracle Functions 및 Oracle Fusion Applications Cloud Service 엔티티 간의 상호 작용과 분리합니다. 둘 다 동일한 Oracle Identity Cloud Service 애플리케이션을 사용하지 않고 별도의 엔티티로 두 가지 사용을 보호합니다.
일반적으로 Oracle 고객이 작성한 Oracle SaaS 확장 응용 프로그램은 일부 복잡한 논리를 수행합니다. 예를 들어, 일반적인 시나리오는 Oracle Fusion Applications Cloud Service에서 데이터를 가져오고, 어떤 방법으로 처리하고, 데이터를 Oracle Fusion Applications Cloud Service로 다시 데이터베이스 등의 다른 대상으로 푸시하는 것입니다.
따라서 2개의 Oracle Identity Cloud Service 애플리케이션과 아키텍처가 있습니다.
- Oracle Functions를 리소스 및 Oracle Fusion Applications Cloud Service의 신뢰할 수 있는 클라이언트로 보호하는 하나의 응용 프로그램입니다.
- Oracle Fusion Applications Cloud Service 인스턴스를 리소스로 보호하는 하나의 응용 프로그램입니다.
이 문서의 지침은 Oracle Functions를 보호하기 위해 이러한 응용 프로그램의 첫번째 구성을 생성하고 구성하는 과정을 단계별로 안내합니다. 이러한 두 응용 프로그램 중 두번째 응용 프로그램이 존재해야 합니다. Oracle Fusion Applications Cloud Service와 Oracle PaaS 간 통합을 사용하려면 응용 프로그램을 생성하고 구성해야 합니다.
이 설정을 사용하면 신뢰할 수 있는 클라이언트에 대한 이러한 규칙 또는 정책 이외의 기능에 액세스하여 Oracle Fusion Applications Cloud Service에 접근할 수 있는 여러 규칙이나 정책을 구성할 수 있습니다. 이 구성에서 API 게이트웨이에 대한 수신 액세스 토큰에는 함수 기능을 호출할 수 있도록 Oracle Functions에 대한 권한이 부여된 액세스만 필요하지만, Oracle Fusion Applications Cloud Service 인스턴스에 액세스하기 위해 필요한 것과 동일한 권한 부여가 있을 필요는 없습니다. Oracle Visual Builder 애플리케이션에 API 게이트웨이에 도달하기 위한 액세스 토큰을 생성할 연관된 Oracle Identity Cloud Service 애플리케이션이 필요합니다. 이 Oracle Identity Cloud Service 애플리케이션은 함수/API 게이트웨이 리소스의 클라이언트가 됩니다.
구조 다이어그램에 표시되는 토큰 교환은 Oracle Fusion Applications Cloud Service 리소스의 클라이언트인 함수의 경우 ID를 전달할 수 있는 추가 보호 계층을 제공합니다. 이 기능은 Oracle Java Cloud Service를 사용하는 것과 같이, 이전 지원 SaaS 확장에서 사용되는 Oracle WebLogic OAuth 검증 프로세스와 유사합니다.
이는 특정 사용 사례에서 Oracle Functions에 대한 토큰을 생성하는 데 사용된 Oracle Identity Cloud Service 애플리케이션이 Oracle Fusion Applications Cloud Service에 대한 리소스 범위만 가질 수 있다는 의미일 수 있습니다. 이 경우 Oracle Functions는 토큰을 사용하여 Oracle Fusion Applications Cloud Service를 호출할 수 있는 기능을 갖지 않지만 Oracle Functions에 도달할 수 있도록 적합합니다. 따라서 일부 사용자나 함수 변화에 액세스 권한이 없는 논리적 플로우를 구현할 수 있습니다. 단, 비즈니스 논리, 사용자 역할 및 권한 또는 기타 조건을 기반으로 합니다.
다른 사용 사례에서는 Oracle Functions가 API 게이트웨이에서 요청에 전달된 인증서 및 사용자를 사용하여 Oracle Fusion Applications Cloud Service에 대한 액세스 토큰을 요청하는 코드를 포함할 수 있습니다.
Oracle Identity Cloud Service에서 Oracle Functions에 대한 애플리케이션 생성
Oracle Identity Cloud Service 내에서 Oracle Functions 클라이언트 인증에 사용할 기밀 응용 프로그램을 생성해야 합니다.
Oracle Fusion Applications Cloud Service 인스턴스와 통합한 동일한 Oracle Identity Cloud Service 인스턴스 내에서 기밀 응용 프로그램을 생성하고 클라이언트 구성이 설정되므로 클라이언트 인증서, JWT 검증 및 리소스 소유자 권한 부여가 사용으로 설정됩니다.
Oracle Identity Cloud Service 애플리케이션 준비 및 테스트
Oracle Fusion Applications Cloud Service 인스턴스에 해당하는 응용 프로그램에 접속한 다음 응용 프로그램을 테스트하도록 Oracle Identity Cloud Service 기밀 응용 프로그램을 구성합니다.
curl --location --request GET 'https://<your fusion instance>.<domain>.com/fscmRestApi/resources/11.13.18.05/expenses' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <JWT_TOKEN>'
이 Curl 질의는 Expenses 데이터를 반환해야 합니다.Oracle Functions Oracle Identity Cloud Service 애플리케이션을 신뢰할 수 있는 클라이언트로 구성
Oracle Functions에 대해 OAuth 요청을 수행하려면 Oracle Identity Cloud Service 응용 프로그램에서 신뢰할 수 있는 클라이언트로 사용할 인증서가 필요합니다. 아직 사용 가능한 인증서가 없는 경우 개발 중 사용할 자체 서명된 인증서를 생성할 수 있습니다.
아직 키가 없는 경우 제공된 스크립트 genSelfSignedKeypair.sh
를 사용하여 키를 생성할 수 있습니다. 테넌트 및 키 별칭 값을 지정하여 스크립트를 실행합니다. 이 예에서는 mytenant를 테넌트 이름으로, fnassertionkey를 키 별칭으로 제공했습니다.
Oracle Cloud Infrastructure Vault로 키 저장소 정보 임포트
Oracle Functions를 사용하는 검증 프로세스에는 임포트된 키 저장소 및 비밀번호를 사용해야 합니다. 최상의 보안을 위해서는 하드 코딩된 암호 및 암호를 사용하지 않도록 Oracle Cloud Infrastructure Vault를 활용할 수 있습니다.
Oracle Cloud Infrastructure Vault 서비스를 사용하면 중요한 데이터를 안전하게 암호화 및 저장할 수 있습니다. 키 저장소 및 공용 키 비밀번호를 Vault에 저장한 다음 Oracle Functions 백엔드의 Oracle Cloud Infrastructure SDK를 사용하여 통신을 수행할 수 있습니다. JKS 파일을 안전하게 암호화하고 저장할 수도 있습니다.
이 솔루션 재생기의 [시작하기 전] 섹션에서 [빠른 시작 지침] 을 사용하여 Oracle Functions 환경을 설정해야 합니다. 빠른 시작 설명서 설정은 루트 구획 레벨에서 기능에 대한 정책을 생성하라는 메시지를 표시합니다. 다음 예에서 해당 정책의 이름은 FnTenancyPolicy
입니다. Oracle Functions가 해당 정책과 연관된 Vault에 액세스할 수 있도록 하려면 정책에 명령문을 더 추가해야 합니다. 사용할 Oracle Functions에 대한 그룹 이름은 빠른 시작 설명서 에서 테넌시를 구성할 때 생성한 것이어야 합니다. 이 예에서 fnGroup1
은 Oracle Functions를 사용할 수 있는 사용자 그룹입니다.
Oracle Identity Cloud Service에서 Oracle Visual Builder 애플리케이션 구성
Oracle Visual Builder 응용 프로그램에는 신뢰할 수 있는 클라이언트로 자동으로 구성된 연관된 Oracle Identity Cloud Service 응용 프로그램이 있습니다. 해당 응용 프로그램을 Oracle Functions 리소스의 클라이언트로 사용할 수 있도록 구성해야 합니다.
제안된 구조에 표시된 상호 작용의 일부로, Oracle Identity Cloud Service 인스턴스와 연관된 Oracle Visual Builder 응용 프로그램이 Oracle Fusion Applications Cloud Service와 통합되어 Oracle Functions에 접속되어 있으므로 API 게이트웨이 및 Oracle Functions 리소스에 접근할 수 있는 액세스 토큰을 생성할 수 있어야 합니다(범위로 설정됨). 사용자가 생성한 새 Oracle Functions 애플리케이션의 범위를 추가하여 SaaS 기능을 확장하는 리소스의 클라이언트로 설정하려면 Oracle Identity Cloud Service에서 Oracle Visual Builder 애플리케이션을 구성해야 합니다.
Oracle Visual Builder에서 새 애플리케이션을 생성하면 Oracle Identity Cloud Service 애플리케이션이 자동으로 생성됩니다. 예를 들어, TestSaaSExtensionFN
라는 애플리케이션을 생성하는 경우 Oracle Identity Cloud Service 콘솔로 이동하고 애플리케이션을 나열할 수 있으며 TestSaaSExtensionFN
라는 애플리케이션을 찾아야 합니다.