이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Apigee Edge 문서 보기
이 주제에서는 Apigee 또는 Apigee Hybrid에서 실행되는 API 프록시의 흐름 변수에서 TLS 연결 정보에 액세스하는 방법을 설명합니다.
TLS 연결 정보 캡처
Apigee는 API 프록시에 대한 요청 중에 TLS 연결 정보를 캡처할 수 있습니다. 그런 다음 API 프록시가 흐름 변수를 통해 해당 정보에 액세스하여 추가 분석과 유효성 검사를 수행할 수 있습니다.
Apigee에서 캡처한 TLS 정보 유형은 인그레스가 단방향 또는 양방향 TLS (Apigee Hybrid에서만 사용 가능)를 지원하도록 구성되었는지 여부에 따라 다릅니다. 예를 들어 단방향 TLS의 경우 Apigee는 TLS 연결에 사용되는 TLS 암호화나 TLS 프로토콜에 대한 정보를 캡처할 수 있습니다.
양방향 TLS의 경우 Apigee는 단방향 TLS에서 캡처한 정보와 동일한 정보를 모두 캡처하고 클라이언트 인증서에 대한 정보도 캡처할 수 있습니다. 예를 들어 Apigee는 클라이언트 인증서의 SHA1 지문과 PEM 형식의 클라이언트 인증서를 캡처할 수 있습니다.
단방향 및 양방향 TLS 모두에 대한 정보 캡처
다음 표에는 Apigee 및 Apigee Hybrid에서 캡처한 TLS 연결 정보가 포함되어 있고 API 프록시에서 액세스할 수 있는 흐름 변수가 나와 있습니다.
흐름 변수 | 설명 |
tls.cipher
|
TLS 연결에 사용되는 암호화입니다. |
tls.protocol
|
TLS 연결에 사용되는 프로토콜입니다. |
tls.server.name
|
요청된 SNI 서버 이름입니다. |
tls.session.id
|
세션 식별자입니다. |
양방향 TLS 중에 추가 TLS 정보 캡처
다음 표에는 Apigee Hybrid가 양방향 TLS에서 캡처한 클라이언트 인증서 세부정보가 포함된 흐름 변수가 나와 있습니다.
흐름 변수 | 설명 |
tls.client.s.dn
|
클라이언트 인증서의 주제 고유 이름(DN)입니다. |
tls.client.i.dn
|
클라이언트 인증서의 발급기관 고유 이름(DN)입니다. |
tls.client.raw.cert
|
PEM 형식의 클라이언트 인증서입니다. |
tls.client.cert.serial
|
클라이언트 인증서의 일련번호입니다. |
tls.client.cert.fingerprint
|
클라이언트 인증서의 SHA1 지문입니다. |
tls.session.id
|
세션 식별자입니다. |
양방향 TLS를 사용 설정하도록 Apigee Hybrid 구성
클라이언트 인증서를 요청하도록 인그레스를 구성하려면 재정의 파일에 다음 세부정보를 추가합니다.
virtualhosts: - name: internal minTLSProtocolVersion: "1.2" #optional maxTLSProtocolVersion: "1.2" #optional tlsMode: MUTUAL sslSecret: tls-certificates
Istio 인그레스에서 TLS 및 mTLS 구성도 참조하세요.
API 프록시에서 흐름 변수에 액세스
API 프록시 내에서 TLS 흐름 변수에 액세스하여 검사할 수 있습니다. 예를 들어 AssignMessage 또는 JavaScript 정책을 사용하여 액세스할 수 있습니다.
프록시나 대상 흐름의 <Condition>
요소에서 또는 <Step>
또는 <RouteRule>
에서 흐름 변수를 참조할 수도 있습니다. 예를 들어 클라이언트 SN을 기반으로 요청을 다른 대상으로 라우팅할 수 있습니다.
자세한 내용은 다음을 참조하세요.