외부 IDP 인증 개요 (New Edge UI)

Edge UI 및 Edge 관리 API는 에지 관리 서버에 요청을 전송하여 작동합니다. 에지 관리 서버에는 다음 유형의 인증이 지원됩니다.

  • 기본 인증: Edge UI에 로그인하거나 사용자 이름과 비밀번호를 전달하여 Edge Management API에 요청합니다.
  • OAuth2: Edge 기본 인증 사용자 인증 정보를 OAuth2 액세스 토큰 및 갱신 토큰으로 교환합니다. API 호출의 Bearer 헤더에 OAuth2 액세스 토큰을 전달하여 Edge 관리 API를 호출합니다.

Edge는 인증에 다음 외부 ID 공급업체 (IDP) 사용을 지원합니다.

  • 보안 보장 마크업 언어 (SAML) 2.0: SAML ID 공급업체가 반환한 SAML 어설션에서 OAuth 액세스를 생성합니다.
  • 경량 디렉터리 액세스 프로토콜 (LDAP): LDAP의 검색 및 바인딩 또는 단순 바인딩 인증 방법을 사용하여 OAuth 액세스 토큰을 생성합니다.

SAML 및 LDAP IDP는 모두 싱글 사인온 (SSO) 환경을 지원합니다. Edge와 함께 외부 IDP를 사용하면 사용자가 제공하고 외부 IDP를 지원하는 다른 서비스 외에도 Edge UI 및 API에 SSO를 지원할 수 있습니다.

외부 IDP 지원을 사용 설정하는 이 섹션의 안내는 다음과 같은 점에서 외부 인증과 다릅니다.

  • 이 섹션에는 SSO 지원이 추가됩니다.
  • 이 섹션은 기본 UI가 아닌 Edge UI 사용자를 위한 섹션입니다.
  • 이 섹션은 4.19.06 이상에서만 지원됩니다.

Apigee SSO 정보

Edge에서 SAML 또는 LDAP를 지원하려면 Apigee SSO 모듈인 apigee-sso를 설치합니다. 다음 이미지는 프라이빗 클라우드 설치용 에지의 Apigee SSO를 보여줍니다.

Apigee SSO의 포트 사용량

Apigee SSO 모듈을 Edge UI 및 관리 서버와 동일한 노드 또는 자체 노드에 설치할 수 있습니다. Apigee SSO가 포트 8080을 통해 관리 서버에 액세스할 수 있는지 확인합니다.

브라우저, 외부 SAML 또는 LDAP IDP, 관리 서버 및 Edge UI에서 Apigee SSO 액세스를 지원하려면 Apigee SSO 노드에서 포트 9099를 열어야 합니다. Apigee SSO 구성 과정에서 외부 연결이 HTTP 또는 암호화된 HTTPS 프로토콜을 사용하도록 지정할 수 있습니다.

Apigee SSO는 Postgres 노드의 포트 5432에서 액세스할 수 있는 Postgres 데이터베이스를 사용합니다. 일반적으로 Edge와 함께 설치한 것과 동일한 Postgres 서버(독립형 Postgres 서버 또는 마스터/대기 모드로 구성된 두 개의 Postgres 서버)를 사용할 수 있습니다. Postgres 서버의 부하가 높은 경우 Apigee SSO 전용으로 별도의 Postgres 노드를 만들 수도 있습니다.

프라이빗 클라우드용 에지에 OAuth2 지원이 추가되었습니다.

위에서 언급했듯이 SAML의 Edge 구현은 OAuth2 액세스 토큰을 사용합니다.따라서 OAuth2 지원이 Private Cloud용 Edge에 추가되었습니다. 자세한 내용은 OAuth 2.0 소개를 참고하세요.

SAML 정보

SAML 인증은 여러 이점을 제공합니다. SAML을 사용하면 다음을 수행할 수 있습니다.

  • 사용자 관리를 완전히 제어할 수 있습니다. 사용자가 조직을 떠나고 중앙에서 프로비저닝 해제되면 Edge에 대한 액세스가 자동으로 거부됩니다.
  • 사용자가 Edge에 액세스하기 위해 인증하는 방법을 관리합니다. Edge 조직마다 다른 인증 유형을 선택할 수 있습니다.
  • 인증 정책을 제어합니다. SAML 제공업체에서 기업 표준에 부합하는 인증 정책을 지원할 수도 있습니다.
  • Edge 배포에서 로그인, 로그아웃, 로그인 시도 실패, 고위험 활동을 모니터링할 수 있습니다.

SAML을 사용 설정하면 Edge UI 및 Edge 관리 API에 액세스할 때 OAuth2 액세스 토큰이 사용됩니다. 이러한 토큰은 IDP에서 반환한 SAML 어설션을 수락하는 Apigee SSO 모듈에 의해 생성됩니다.

SAML 어설션에서 생성된 OAuth 토큰은 30분 동안 유효하며 갱신 토큰은 24시간 동안 유효합니다. 개발 환경에서 테스트 자동화 또는 지속적 통합/지속적 배포(CI/CD)와 같이 시간이 더 긴 토큰이 필요한 일반적인 개발 작업에 자동화를 지원할 수 있습니다. 자동화된 태스크용 특수 토큰을 만드는 방법에 대한 자세한 내용은 자동 태스크에 SAML 사용을 참조하세요.

LDAP 정보

LDAP (Lightweight Directory Access Protocol)는 분산형 디렉터리 정보 서비스에 액세스하고 유지관리하기 위한 개방형 업계 표준 애플리케이션 프로토콜입니다. 디렉터리 서비스는 보통 회사 이메일 디렉터리와 같은 계층 구조로 정리된 레코드 모음을 제공할 수 있습니다.

Apigee SSO 내의 LDAP 인증은 Spring Security LDAP 모듈을 사용합니다. 따라서 Apigee SSO의 LDAP 지원에 대한 인증 방법 및 구성 옵션은 Spring Security LDAP의 인증 방식 및 구성 옵션과 직접적인 관련이 있습니다.

프라이빗 클라우드용 Edge를 사용하는 LDAP는 LDAP 호환 서버에 대해 다음 인증 방법을 지원합니다.

  • 검색 및 바인딩 (간접 바인딩)
  • 단순 결합 (직접 결합)

Edge는 이 이메일을 승인 목적으로 사용하므로 Apigee SSO는 사용자의 이메일 주소를 검색하여 내부 사용자 레코드를 이 레코드로 업데이트하려고 시도합니다.

Edge UI 및 API URL

Edge UI 및 Edge 관리 API에 액세스하는 데 사용하는 URL은 SAML 또는 LDAP를 사용 설정하기 전에 사용한 URL과 동일합니다. Edge UI:

http://edge_UI_IP_DNS:9000
https://edge_UI_IP_DNS:9000

여기서 edge_UI_IP_DNS은 Edge UI를 호스팅하는 머신의 IP 주소 또는 DNS 이름입니다. Edge UI를 구성하는 과정에서 HTTP 또는 암호화된 HTTPS 프로토콜을 사용하도록 연결할 수 있습니다.

Edge Management API의 경우:

http://ms_IP_DNS:8080/v1
https://ms_IP_DNS:8080/v1

여기서 ms_IP_DNS은 관리 서버의 IP 주소 또는 DNS 이름입니다. API 구성 과정에서 연결이 HTTP 또는 암호화된 HTTPS 프로토콜을 사용하도록 지정할 수 있습니다.

Apigee SSO에 TLS 구성

기본적으로 Apigee SSO에 연결할 때는 Apigee SSO 모듈인 apigee-sso를 호스팅하는 노드에서 포트 9099를 통한 HTTP를 사용합니다. apigee-sso에는 HTTP 및 HTTPS 요청을 처리하는 Tomcat 인스턴스가 내장되어 있습니다.

Apigee SSO 및 Tomcat은 세 가지 연결 모드를 지원합니다.

  • DEFAULT: 기본 구성은 포트 9099에서 HTTP 요청을 지원합니다.
  • SSL_TERMINATION: 선택한 포트에서 Apigee SSO에 대한 TLS 액세스를 사용 설정했습니다. 이 모드에 TLS 키와 인증서를 지정해야 합니다.
  • SSL_PROXY: 프록시 모드에서 Apigee SSO를 구성합니다. 즉, apigee-sso 앞에 부하 분산기를 설치하고 부하 분산기에서 TLS를 종료합니다. 부하 분산기의 요청에 대해 apigee-sso에 사용되는 포트를 지정할 수 있습니다.

포털에 대한 외부 IDP 지원 사용 설정

Edge에 대한 외부 IDP 지원을 사용 설정한 후 원하는 경우 Apigee Developer Services 포털 (또는 간단히 포털)에서 사용 설정할 수 있습니다. Edge에 요청할 때 포털은 SAML 및 LDAP 인증을 지원합니다. 이는 개발자가 포털에 로그인하기 위한 SAML 및 LDAP 인증과 다릅니다. 개발자 로그인을 위한 외부 IDP 인증을 별도로 구성합니다. 자세한 내용은 IDP를 사용하도록 포털 구성을 참고하세요.

포털을 구성하는 과정에서 Edge와 함께 설치한 Apigee SSO 모듈의 URL을 지정해야 합니다.

토큰을 사용한 요청/응답 흐름