4장. 보안 관리
4.1. OpenAPI 서비스에 대한 인증 링크 복사링크가 클립보드에 복사되었습니다!
				OpenAPI 서비스 작업을 보호하려면 OpenAPI 사양 을 사용하여 보안 스키마를 정의합니다. 이러한 체계는 OpenAPI 사양 파일의 securitySchemes 섹션에 있습니다. 보안 계획을 참조하는 보안 요구 사항을 추가하여 작업을 구성해야 합니다. 워크플로우에서 이러한 작업을 호출하면 해당 정보가 필요한 인증 구성을 결정하는 데 사용됩니다.
			
이 섹션에서는 지원되는 인증 유형에 대해 간단히 설명하고 워크플로 내에서 보안 OpenAPI 서비스 작업에 액세스하도록 구성하는 방법을 보여줍니다.
4.1.1. OpenAPI 서비스 인증 개요 링크 복사링크가 클립보드에 복사되었습니다!
					OpenShift Serverless Logic에서는 OpenAPI 사양 파일에 정의된 보안 스키마를 사용하여 OpenAPI 서비스 작업을 보호할 수 있습니다. 이러한 체계는 워크플로우 내에서 호출되는 작업에 대한 인증 요구 사항을 정의하는 데 도움이 됩니다.
				
					보안 체계는 OpenAPI 문서의 securitySchemes 섹션에 선언됩니다. 각 스키마는 HTTP Basic, API 키 등과 같이 적용할 인증 유형을 지정합니다.
				
워크플로우에서 보안 작업을 호출할 때 이러한 정의된 체계를 참조하여 필요한 인증 구성을 확인합니다.
보안 체계 정의의 예
					OpenAPI 파일에서 보안 스키마를 정의하지만 작업에 대한 보안 요구 사항이 포함되지 않은 경우 기본적으로 생성기를 구성하여 생성할 수 있습니다. 이러한 기본값은 명시적으로 정의된 요구 사항 없이 작업에 적용됩니다.
				
					해당 스키마를 구성하려면 quarkus.openapi-generator.codegen.default-security-scheme 속성을 사용해야 합니다. default-security-scheme 속성은 런타임이 아닌 코드 생성 시에만 사용됩니다. 이 값은 http-basic-example 또는 api-key-example:과 같은 securitySchemes 섹션에서 사용 가능한 모든 체계와 일치해야 합니다.
				
예를 들면 다음과 같습니다.
quarkus.openapi-generator.codegen.default-security-scheme=http-basic-example
$ quarkus.openapi-generator.codegen.default-security-scheme=http-basic-example
4.1.2. OpenAPI 서비스에 대한 인증 자격 증명 구성 링크 복사링크가 클립보드에 복사되었습니다!
인증 체계에 의해 보안된 OpenAPI 서비스 작업을 호출하려면 애플리케이션에서 해당 자격 증명 및 매개 변수를 구성해야 합니다. OpenShift Serverless Logic은 이러한 구성을 사용하여 워크플로우 실행 중에 외부 서비스로 인증합니다.
					이 섹션에서는 OpenAPI 사양 파일에 선언된 보안 체계에 필요한 구성 속성을 정의하고 적용하는 방법을 설명합니다. application.properties, 워크플로우와 연결된 ConfigMap 또는 SonataFlow CR의 환경 변수를 사용하여 이러한 인증 정보를 제공할 수 있습니다.
				
OpenAPI 사양 파일에 정의된 보안 체계는 동일한 파일에서 사용할 수 있는 모든 작업에 전역적입니다. 즉, 특정 보안 체계에 대해 설정된 구성이 다른 보안 작업에도 적용됩니다.
사전 요구 사항
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
 - OpenAPI 사양에는 하나 이상의 보안 체계가 포함됩니다.
 - OpenAPI 사양 파일에 액세스할 수 있습니다.
 - 
							
http-basic-example또는api-key-example을 구성할 스키마를 식별했습니다. - 
							
application.properties파일, 워크플로우ConfigMap또는SonataFlowCR에 액세스할 수 있습니다. 
프로세스
다음 형식을 사용하여 속성 키를 작성합니다.
quarkus.openapi-generator.[filename].auth.[security_scheme_name].[auth_property_name]
quarkus.openapi-generator.[filename].auth.[security_scheme_name].[auth_property_name]Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 
									
filename은 security_example_json과 같이 OpenAPI 사양을 포함하는 파일의 sanitized 이름입니다. 이 이름을 종료하려면 알파벳이 아닌 모든 문자를_밑줄로 교체해야 합니다. - 
									
security_scheme_name은 OpenAPI 사양 파일의 보안 스키마 오브젝트 정의 (예:http_basic_example또는api_key_example)의 sanitized 이름입니다. 이 이름을 종료하려면 알파벳이 아닌 모든 문자를_밑줄로 교체해야 합니다. auth_property_name은 사용자 이름과 같이 구성할 속성의 이름입니다. 이 속성은 정의된 보안 스키마 유형에 따라 다릅니다.참고환경 변수를 사용하여 속성을 구성하는 경우 MicroProfile 환경 변수 매핑 규칙을 따르십시오. 속성 키의 알파벳이 아닌 모든 문자를 밑줄
_로 바꾸고 전체 키를 대문자로 변환할 수 있습니다.
- 
									
 
					다음 예제에서는 application.properties, 워크플로우와 연결된 ConfigMap 또는 SonataFlow CR에 정의된 환경 변수를 사용하여 이러한 구성 속성을 제공하는 방법을 보여줍니다.
				
application.properties 파일을 사용하여 인증 정보를 구성하는 예
quarkus.openapi-generator.security_example_json.auth.http_basic_example.username=myuser quarkus.openapi-generator.security_example_json.auth.http_basic_example.password=mypassword
quarkus.openapi-generator.security_example_json.auth.http_basic_example.username=myuser
quarkus.openapi-generator.security_example_json.auth.http_basic_example.password=mypassword
워크플로우 ConfigMap을 사용하여 인증 정보를 구성하는 예
						워크플로우 이름이 example-workflow 인 경우 사용자 정의 속성이 포함된 ConfigMap 의 이름은 example-workflow-props 여야 합니다.
					
SonataFlow CR에서 환경 변수를 사용하여 인증 정보를 구성하는 예
4.1.3. 기본 HTTP 인증의 예 링크 복사링크가 클립보드에 복사되었습니다!
					다음 예제에서는 HTTP 기본 인증 체계를 사용하여 워크플로우 작업을 보호하는 방법을 보여줍니다. security-example.json 파일은 http-basic-example 보안 체계를 사용하는 단일 작업으로 OpenAPI 서비스를 정의합니다.  애플리케이션 속성, worfklow ConfigMap 또는 환경 변수를 사용하여 인증 정보를 구성할 수 있습니다.
				
HTTP 기본 인증을 사용한 OpenAPI 사양의 예
					이 예제에서 sayHelloBasic 작업은 securitySchemes 섹션에 정의된 http-basic-example 체계를 사용하여 보호됩니다. 워크플로우에서 이 작업을 호출할 때 적절한 자격 증명을 구성해야 합니다.
				
4.1.3.1. 기본 HTTP 인증에 지원되는 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
						다음 구성 키를 사용하여 http-basic-example 스키마에 대한 인증 자격 증명을 제공할 수 있습니다.
					
| 설명 | 속성 키 | 예 | 
|---|---|---|
|   사용자 이름 인증 정보  |   
										  |   
										  | 
|   암호 인증 정보  |   
										  |   
										  | 
						[filename] 을 sanitized OpenAPI 파일 이름 security_example_json 및 [security_scheme_name] 을 sanitized scheme name http_basic_example 로 교체할 수 있습니다.
					
4.1.4. 전달자 토큰 인증 예 링크 복사링크가 클립보드에 복사되었습니다!
					다음 예제에서는 HTTP Bearer 인증 체계를 사용하여 OpenAPI 작업을 보호하는 방법을 보여줍니다. security-example.json 파일은 인증을 위해 http-bearer-example 스키마를 사용하는 sayHelloBearer 작업을 사용하여 OpenAPI 서비스를 정의합니다. 워크플로우 실행 중에 보안 작업에 액세스하려면 애플리케이션 속성, 워크플로 ConfigMap 또는 환경 변수를 사용하여 전달자 토큰을 구성해야 합니다.
				
Bearer 토큰 인증을 사용한 OpenAPI 사양의 예
					이 예에서 sayHelloBearer 작업은 http-bearer-example 스키마로 보호됩니다. 이 작업을 성공적으로 호출하려면 구성에 유효한 전달자 토큰을 정의해야 합니다.
				
4.1.4.1. 전달자 토큰 인증에 지원되는 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
다음 구성 속성 키를 사용하여 전달자 토큰을 제공할 수 있습니다.
| 설명 | 속성 키 | 예 | 
|---|---|---|
|   전달자 토큰  |   
										  |   
										  | 
						[filename] 을 sanitized OpenAPI 파일 이름 security_example_json 및 [security_scheme_name] 을 sanitized scheme name http_bearer_example 로 교체할 수 있습니다.
					
4.1.5. API 키 인증 예 링크 복사링크가 클립보드에 복사되었습니다!
					다음 예제에서는 apiKey 인증 체계를 사용하여 OpenAPI 서비스 작업을 보호하는 방법을 보여줍니다. security-example.json 파일은 api-key-example 보안 체계를 사용하는 sayHelloApiKey 작업을 정의합니다. 애플리케이션 속성, 워크플로우 ConfigMap 또는 환경 변수를 사용하여 API 키를 구성할 수 있습니다.
				
API 키 인증을 사용하는 OpenAPI 사양의 예
					이 예에서 sayHelloApiKey 작업은 HTTP 요청 헤더에 전달된 API 키를 사용하는 api-key-example 보안 스키마로 보호됩니다.
				
4.1.5.1. API 키 인증에 지원되는 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
다음 구성 속성을 사용하여 API 키를 구성할 수 있습니다.
| 설명 | 속성 키 | 예 | 
|---|---|---|
|   API 키  |   
										  |   
										  | 
						[filename] 을 sanitized OpenAPI 파일 이름 security_example_json 및 [security_scheme_name] 으로 교체할 수 있습니다. 
					
						apiKey 스키마 유형에는 Open API 서비스가 호출될 때 사용할 키 이름을 구성하는 추가 name 속성이 포함되어 있습니다. 또한 키를 전달하는 형식은 in 속성 값에 따라 다릅니다.
					
- 
								값이 
header이면 키가 HTTP 요청 매개변수로 전달됩니다. - 
								값이 
쿠키이면 키가 HTTP 쿠키로 전달됩니다. - 
								값이 
쿼리이면 키가 HTTP 쿼리 매개변수로 전달됩니다. 
						이 예제에서는 HTTP 헤더에 api-key-name: MY_KEY 로 키가 전달됩니다.
					
OpenShift Serverless Logic은 내부적으로 이를 관리하므로 속성 값을 설정하는 것 이상으로 추가 구성이 필요하지 않습니다.
4.1.6. 클라이언트 인증 정보 OAuth 2.0 인증 예 링크 복사링크가 클립보드에 복사되었습니다!
					다음 예제에서는 OAuth 2.0 클라이언트 인증 정보 흐름을 사용하여 OpenAPI 작업을 보호하는 방법을 보여줍니다. OpenAPI 사양은 oauth-example 보안 체계를 사용하는 sayHelloOauth2 작업을 정의합니다. HTTP Basic 또는 API 키와 같은 간단한 인증 방법과 달리 OAuth 2.0 인증은 Quarkus OpenID Connect(OIDC) 클라이언트와의 추가 통합이 필요합니다.
				
OAuth 2.0을 사용한 OpenAPI 사양 예
					이 예에서 sayHelloOauth2 작업은 토큰 기반 인증에 클라이언트 인증 정보 흐름을 사용하는 oauth-example 보안 스키마로 보호됩니다.
				
4.1.6.1. OIDC 클라이언트 필터 확장 포함 OAuth 2.0 지원 링크 복사링크가 클립보드에 복사되었습니다!
						OAuth 2.0 토큰 관리는 Quarkus OidcClient 에서 처리합니다. 이 통합을 활성화하려면 Quarkus OIDC Client Filter와 Quarkus OpenApi Generator OIDC 확장을 다음 예와 같이 프로젝트에 추가해야 합니다.
					
Maven을 사용하여 확장 기능을 추가하는 예
gitops 프로필을 사용하여 확장 추가의 예
워크플로우 이미지를 빌드할 때 다음 값을 사용하여 QUARKUS_EXTENSIONS 빌드 인수를 구성해야 합니다.
--build-arg=QUARKUS_EXTENSIONS=io.quarkus:quarkus-oidc-client-filter:3.15.4.redhat-00001,io.quarkiverse.openapi.generator:quarkus-openapi-generator-oidc:2.9.0-lts
$ --build-arg=QUARKUS_EXTENSIONS=io.quarkus:quarkus-oidc-client-filter:3.15.4.redhat-00001,io.quarkiverse.openapi.generator:quarkus-openapi-generator-oidc:2.9.0-lts
프리뷰 프로필을 사용하여 확장 기능을 추가하는 예
							SonataFlowPlatform CR에 추가된 확장 기능은 프리뷰 프로필을 사용하여 해당 네임스페이스에 배포하는 모든 워크플로우에 포함됩니다.
						
4.1.6.2. OidcClient 구성 링크 복사링크가 클립보드에 복사되었습니다!
						보안 작업에 액세스하려면 application.properties 파일에 OidcClient 구성을 정의합니다. 이 구성에서는 OpenAPI 사양의 sanitized 보안 스키마 이름(이 경우 oauth_example )을 다음과 같이 사용합니다.
					
이 구성에서는 다음을 수행합니다.
- 
								
oauth_example은 OpenAPI 파일에 있는oauth-example스키마의 sanitized 이름과 일치합니다. 간소화된 스키마 이름과 해당OidcClient간의 연결은 간단한 이름 지정 규칙을 사용하여 수행됩니다. - OidcClient는 워크플로우를 실행하는 동안 토큰 생성 및 갱신을 자동으로 처리합니다.
 
4.1.7. 권한 부여 토큰 전파 예 링크 복사링크가 클립보드에 복사되었습니다!
					OpenShift Serverless Logic은 oauth2 또는 http 베어러 보안 스키마 유형을 사용하는 OpenAPI 작업에 대한 토큰 전파를 지원합니다. 토큰 전파를 사용하면 워크플로우 생성 중에 수신하는 권한 부여 토큰을 다운스트림 서비스로 전달할 수 있습니다. 이 기능은 요청을 시작한 클라이언트를 대신하여 워크플로우가 타사 서비스와 상호 작용해야 하는 경우에 유용합니다.
				
각 보안 체계에 대해 토큰 전파를 개별적으로 구성해야 합니다. 이 기능이 활성화되면 명시적으로 재정의되지 않는 한 동일한 스키마를 사용하여 보안된 모든 OpenAPI 작업에서는 전파된 토큰을 사용합니다.
					다음 예제에서는 security-example.json 파일에서 sayHelloOauth2 작업을 정의합니다. 이 작업은 clientCredentials 흐름과 함께 oauth-example 보안 스키마를 사용합니다.
				
토큰 전파를 사용한 OpenAPI 사양의 예
4.1.7.1. 권한 부여 토큰 전파에 지원되는 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
다음 구성 키를 사용하여 토큰 전파를 활성화하고 사용자 지정할 수 있습니다.
워크플로우가 활성화된 동안 토큰은 자동으로 다운스트림 서비스로 전달됩니다. 워크플로우가 대기 상태(예: 타이머 또는 이벤트 기반 일시 중지)로 전환하면 토큰 전파가 중지됩니다. 워크플로우가 다시 시작되면 토큰이 자동으로 다시 전파되지 않습니다. 필요한 경우 재인증을 관리해야 합니다.
| 속성 키 | 예 | 설명 | 
|---|---|---|
|   
										  |   
										  |   
										지정된 스키마로 보안된 모든 작업에 대해 토큰 전파를 활성화합니다. 기본값은   | 
|   
										  |   
										  |   (선택 사항) 기본 인증 헤더를 사용자 지정 헤더 이름으로 재정의하여 토큰을 읽습니다.  | 
						[filename] 을 sanitized OpenAPI 파일 이름 security_example_json 및 [security_scheme_name] 으로 교체할 수 있습니다.