자습서: Azure Active Directory B2C 및 F5 BIG-IP를 사용하여 애플리케이션에 대한 보안 하이브리드 액세스 사용
아티클
Azure AD B2C(Azure Active Directory B2C)를 F5 BIG-IP APM(Access Policy Manager)과 통합하는 방법을 알아봅니다. Azure AD B2C 사전 인증, CA(조건부 액세스) 및 SSO(Single Sign-On)와 함께 BIG-IP 보안을 통해 레거시 애플리케이션을 안전하게 인터넷에 노출할 수 있습니다. F5 Inc.는 컴퓨팅, 스토리지 및 네트워크 리소스를 포함하여 연결된 서비스의 제공, 보안, 성능 및 가용성에 중점을 둡니다. 하드웨어, 모듈화된 소프트웨어 및 클라우드 지원 가상 어플라이언스 솔루션을 제공합니다.
F5 BIG-IP ADC(Application Delivery Controller)를 프라이빗 네트워크와 인터넷 사이의 보안 게이트웨이로 배포됩니다. 애플리케이션 수준 검사 및 사용자 지정 가능한 액세스 제어에 대한 기능이 있습니다. 역방향 프록시로 배포되는 경우 BIG-IP를 사용하여 APM이 관리하는 페더레이션 ID 액세스 레이어를 사용하여 비즈니스 애플리케이션에 대한 보안 하이브리드 액세스를 사용하도록 설정합니다.
다음 시나리오는 헤더 기반이지만 이러한 메서드를 사용하여 Kerberos SSO를 구현할 수 있습니다.
이 시나리오에서 내부 애플리케이션에 대한 액세스는 레거시 broker 시스템에서 HTTP 인증 헤더 수신에 따라 달라집니다. Sales 에이전트는 각 콘텐츠 영역으로 전달될 수 있습니다. 서비스를 더 광범위한 소비자층으로 확장해야 합니다. 애플리케이션이 소비자 인증 옵션에 대해 업그레이드되거나 대체됩니다.
이상적으로 애플리케이션 업그레이드는 최신 컨트롤 플레인을 사용하여 직접 관리 및 거버넌스를 지원합니다. 그러나 현대화를 위한 시간과 노력에는 비용과 잠재적 가동 중지 시간이 발생합니다. 대신 공용 인터넷과 내부 Azure VNet(가상 네트워크) 간에 BIG-IP VE(Virtual Edition)를 배포하여 Azure AD B2C를 사용하여 액세스를 제어합니다. 애플리케이션 앞에 BIG-IP가 있으면 Azure AD B2C 사전 인증 및 헤더 기반 SSO로 서비스를 오버레이하여 앱 보안 태세를 개선할 수 있습니다.
SHA(보안 하이브리드 액세스) 솔루션은 다음 요소로 구성됩니다.
애플리케이션 - Azure AD B2C 및 BIG-IP 보안 하이브리드 액세스로 보호되는 백 엔드 서비스
Azure AD B2C - BIG-IP APM에 대한 사용자 자격 증명, MFA(다단계 인증) 및 SSO를 확인하는 IdP 및 OIDC(OpenID Connect) 권한 부여 서버
BIG-IP - 애플리케이션에 대한 역방향 프록시입니다. BIG-IP APM은 OIDC 클라이언트로, 백 엔드 서비스에 대한 헤더 기반 SSO를 수행하기 전에 OIDC 권한 부여 서버에 인증을 위임합니다.
클라이언트 SSL 프로필로 구성된 BIG-IP를 사용하여 TLS를 통한 클라이언트측 트래픽을 보안합니다. 앱의 공용 URL에서 사용하는 도메인 이름과 일치하는 인증서를 가져옵니다. 공용 인증 기관을 사용하는 것이 좋지만 테스트하는 경우 BIG-IP 자체 서명된 인증서를 사용할 수 있습니다.
BIG-IP VE에서 인증서를 추가하고 관리하려면 techdocs.f5.com으로 이동하여 BIG-IP 시스템: SSL 관리를 참조하세요.
단계별 구성
배포 마법사를 시작하려면 웹 구성에서 액세스>단계별 구성으로 이동합니다.
페더레이션>OAuth 클라이언트 및 리소스 서버로서의 F5를 선택합니다.
이 시나리오에 대한 흐름 요약을 관찰합니다.
다음을 선택합니다.
마법사가 시작됩니다.
OAuth 속성
다음 섹션에서는 BIG-IP APM과 OAuth 권한 부여 서버, Azure AD B2C 테넌트 간의 페더레이션을 사용하도록 속성을 정의합니다. OAuth는 BIG-IP 구성 전체에서 참조됩니다. 솔루션은 OAuth 2.0 프로토콜의 ID 계층인 OIDC를 사용합니다. OIDC 클라이언트는 사용자 ID를 확인하고 다른 프로필 정보를 얻습니다.
구성 이름
구성 표시 이름은 단계별 구성의 배포 구성을 구분하는 데 도움이 됩니다. 이름을 변경할 수 없으며 이름은 단계별 구성 보기에만 나타납니다.
모드
BIG-IP APM은 OIDC 클라이언트이므로, 클라이언트 옵션을 선택합니다.
DNS 확인자
지정된 대상은 Azure AD B2C 엔드포인트의 공용 IP 주소를 확인해야 합니다. 공용 DNS 확인자를 선택하거나 새로 만듭니다.
공급자 설정
Azure AD B2C를 OAuth2 IdP로 구성합니다. 단계별 구성에는 Azure AD B2C 템플릿이 있지만 특정 범위는 없습니다.
새 공급자를 추가하고 다음과 같이 구성합니다.
OAuth 일반 속성
속성
설명
OAuth 공급자 유형
사용자 지정
OAuth 공급자 선택
새로 만들거나 OAuth 공급자 사용
이름
B2C IdP의 표시 이름. 이 이름은 사용자에게 로그인 시 공급자 옵션으로 표시됨
토큰 형식
JSON Web Token
OAuth 정책 설정
속성
설명
범위
비워 둡니다. 사용자 로그인에 대한 OpenID 범위가 자동으로 추가됨
권한 부여 유형
인증 코드
OpenID Connect 사용
APM OAuth 클라이언트를 OIDC 모드로 설정할 옵션 선택
흐름 유형
인증 코드
OAuth 공급자 설정
다음 OpenID URI는 OIDC 클라이언트에서 서명 인증서 롤오버와 같은 IdP 정보를 검색하기 위해 사용하는 메타데이터 엔드포인트를 나타냅니다.
Azure AD B2C 테넌트에 대한 메타데이터 엔드포인트를 찾습니다. 앱 등록>엔드포인트로 이동합니다.
Azure AD B2C OpenID Connect 메타데이터 문서 URI를 복사합니다. 예: https://wacketywackb2c .b2clogin.com/<tenantname>.onmicrosoft.com/<policyname>/v2.0/.well-known/openid-configuration.
BIG-IP가 업데이트를 위해 Azure AD B2C 테넌트를 쿼리할 간격을 제공합니다. AGC 버전 16.1 0.0.19에서 최소 간격은 5분입니다.
OAuth 서버 설정
OIDC 권한 부여 서버의 경우 Azure AD B2C 테넌트입니다.
속성
설명
Client ID
Azure AD B2C 테넌트에서 BIG-IP를 나타내는 애플리케이션 클라이언트 ID
클라이언트 암호
애플리케이션 클라이언트 암호
클라이언트-서버 SSL 프로필
SSL 프로필을 설정하여 APM이 TLS를 통해 Azure AD B2C IdP와 통신하도록 합니다. 기본 serverssl을 선택합니다.
OAuth 요청 설정
BIG-IP의 사전 구성된 요청 세트에 필요한 Azure AD B2C 요청이 있습니다. 그러나, 요청의 형식이 잘못되었거나 중요한 매개 변수가 누락되었습니다. 그래서 요청을 수동으로 만들었습니다.
토큰 요청: 사용
속성
설명
OAuth 요청 선택
새로 만들기
HTTP 메서드
게시
헤더 사용
선택 취소
매개 변수 사용
선택
매개 변수
매개 변수 이름
매개 변수 값
client_id
client_id
해당 없음
nonce
nonce
해당 없음
redirect_uri
redirect_uri
해당 없음
scope
scope
해당 없음
response_type
response_type
해당 없음
client_secret
client_secret
해당 없음
custom
grant_type
authorization_code
인증 리디렉션 요청: 사용
속성
설명
OAuth 요청 선택
새로 만들기
HTTP 메서드
GET
프롬프트 형식
없음
헤더 사용
선택 취소
매개 변수 사용
선택
매개 변수
매개 변수 이름
매개 변수 값
client_id
client_id
해당 없음
redirect_uri
redirect_uri
해당 없음
response_type
response_type
해당 없음
scope
scope
해당 없음
nonce
nonce
해당 없음
토큰 새로 고침 요청: 사용 안 함 필요에 따라 사용으로 설정하고 구성할 수 있습니다.
OpenID UserInfo 요청: 사용 안 함 전역 Azure AD B2C 테넌트에서 지원되지 않습니다.
가상 서버 속성
보안 하이브리드 액세스로 보호되는 백 엔드 서비스에 대한 외부 클라이언트 요청을 가로채려면 BIG-IP 가상 서버를 만듭니다. 가상 서버에 애플리케이션을 나타내는 BIG-IP 서비스 엔드포인트에 대한 공용 DNS 레코드에 매핑되는 IP를 할당합니다. 사용 가능한 경우 가상 서버를 사용하고, 그렇지 않으면 다음 속성을 제공합니다.
속성
설명
대상 주소
백 엔드 애플리케이션의 BIG-IP 서비스 엔드포인트가 될 개인 또는 공용 IP
서비스 포트
HTTPS
리디렉션 포트 사용
사용자가 http에서 https로 자동 리디렉션되도록 선택
리디렉션 포트
HTTP
클라이언트 SSL 프로필
사전 정의된 clientssl 프로필을 SSL 인증서가 있는 프로필로 바꿉니다. 기본 프로필을 사용하여 테스트할 수 있습니다. 하지만 브라우저 경고가 발생할 수 있습니다.
풀 속성
백 엔드 서비스는 가상 서버가 인바운드 트래픽을 보내는 하나 이상의 애플리케이션 서버를 포함하는 풀로 BIG-IP에 나타납니다. 풀을 선택하고 그렇지 않으면 새 풀을 만듭니다.
속성
설명
부하 분산 메서드
라운드 로빈 선택
풀 서버
백 엔드 애플리케이션의 내부 IP
포트
백 엔드 애플리케이션의 서비스 포트
참고
BIG-IP에 풀 서버 주소에 대한 가시선이 있는지 확인합니다.
SSO 설정
BIG-IP는 SSO 옵션을 지원하지만 OAuth 클라이언트 모드에서 단계별 구성이 Kerberos 또는 HTTP 헤더로 제한됩니다. SSO를 사용하도록 설정하고 다음 정보를 사용하여 APM이 정의한 인바운드 특성을 아웃바운드 헤더에 매핑합니다.
중괄호 안의 APM 세션 변수는 대/소문자를 구분합니다. Azure AD B2C 특성 이름이 AgentID로 전송될 때 agentid를 입력하면 특성 매핑이 실패합니다. 소문자로 특성을 정의합니다. Azure AD B2C에서 사용자 흐름은 포털의 특성 이름을 사용하여 사용자에게 더 많은 특성을 묻는 메시지를 표시합니다. 따라서 소문자 대신 문장의 첫 글자를 대문자로 사용합니다.
사용자 지정 속성
사용자가 APM 액세스 정책 흐름에서 보는 화면의 언어 및 모양을 사용자 지정합니다. 화면 메시지 및 프롬프트를 편집하고, 화면 레이아웃, 색, 이미지를 변경하고, 캡션, 설명 및 메시지를 현지화합니다.
양식 헤더 텍스트 필드에서 F5 Networks 문자열을 원하는 이름으로 바꿉니다.
세션 관리 속성
BIG-IP 세션 관리 설정을 사용하여 세션을 종료하거나 계속하도록 허용하는 조건을 정의합니다. 사용자 및 IP 주소에 대한 제한과 오류 페이지를 설정합니다. 세션을 안전하게 종료하여 무단 액세스 위험을 줄이는 SLO(단일 로그아웃)를 구현하는 것이 좋습니다.
설정 배포
배포를 선택하여 설정을 커밋하고 애플리케이션에 대한 보안 하이브리드 액세스를 위해 BIG-IP 및 APM 개체를 만듭니다. 애플리케이션이 조건부 액세스의 대상 리소스로 나타납니다. 보안 향상을 위해 애플리케이션에 대한 직접 액세스를 차단하여 BIG-IP를 통한 경로를 강제합니다.
접근 방식에 관계없이 Azure AD B2C 테넌트가 APM 로그아웃 엔드포인트를 알고 있는지 확인합니다.
포털에서 관리>매니페스트로 이동합니다.
logoutUrl 속성을 찾습니다. null을 읽습니다.
APM 로그아웃 후 URI를 추가합니다. https://<mysite.com>/my.logout.php3
참고
<mysite.com>은 헤더 기반 애플리케이션의 BIG-IP FQDN입니다.
최적화된 로그인 흐름
사용자 로그인 환경을 개선하려면 Microsoft Entra 사전 인증 전에 나타나는 OAuth 사용자 로그인 프롬프트를 억제합니다.
액세스>단계별 구성으로 이동합니다.
행의 맨 오른쪽에서 자물쇠 아이콘을 선택합니다.
헤더 기반 애플리케이션은 strict 구성의 잠금을 해제합니다.
strict 구성의 잠금을 해제하면 마법사 UI를 통해 변경하지 못합니다. BIG-IP 개체는 애플리케이션의 게시된 인스턴스와 연결되며 직접 관리를 위해 열려 있습니다.
액세스>Profiles/ Policies>액세스 프로필(세션별 정책)로 이동합니다.
애플리케이션 정책 개체의 경우 세션별 정책 열에서 편집을 선택합니다.
OAuth 로그온 페이지 정책 개체를 삭제하려면 X를 선택합니다.
프롬프트에서 이전 노드에 연결합니다.
왼쪽 위 모서리에서 액세스 정책 적용을 선택합니다.
시각적 개체 편집기 탭을 닫습니다.
애플리케이션에 연결하려고 하면 Azure AD B2C 로그인 페이지가 나타납니다.
참고
strict 모드를 다시 사용하도록 설정하고 구성을 배포하는 경우 단계별 구성 UI 외부에서 수행되는 설정을 덮어씁니다. 프로덕션 서비스에 대한 구성 개체를 수동으로 만들어 이 시나리오를 구현합니다.
문제 해결
보호된 애플리케이션에 대한 액세스가 금지된 경우 다음 문제 해결 지침을 사용합니다.
로그 세부 정보 표시
BIG-IP 로그에는 인증 및 SSO 문제를 격리하는 정보가 있습니다. 로그 상세 수준을 높입니다.
액세스 정책>개요>이벤트 로그>설정으로 이동합니다.
게시된 애플리케이션의 행을 선택한 다음 편집>시스템 로그 액세스를 선택합니다.
SSO 목록에서 디버그를 선택합니다.
확인을 선택합니다.
로그를 검토하기 전에 문제를 재현합니다.
완료되면 이전 설정을 되돌립니다.
BIG-IP 오류 메시지
Azure AD B2C 인증 후에 BIG-IP 오류 메시지가 나타나는 경우 이 문제는 Microsoft Entra ID에서 BIG-IP로의 SSO와 관련될 수 있습니다.
액세스>개요>액세스 보고서로 이동합니다.
지난 1시간 동안 보고서를 실행합니다.
로그에 단서가 있는지 검토합니다.
세션 변수 보기 링크를 선택합니다.
APM이 예상된 Microsoft Entra 클레임을 수신하는지 확인합니다.
BIG-IP 오류 메시지 없음
BIG-IP 오류 메시지가 나타나지 않으면 이 문제는 백 엔드 요청 또는 BIG-IP에서 애플리케이션으로의 SSO와 관련 있을 수 있습니다.
액세스 정책>개요>활성 세션으로 이동합니다.
활성 세션에 대한 링크를 선택합니다.
변수 보기 링크를 선택합니다.
특히 BIG-IP APM이 부정확한 세션 특성을 가져오는 경우 살펴보고 근본 원인을 확인합니다.
애플리케이션 로그를 사용하여 특성을 헤더로 받았는지 파악할 수 있습니다.
단계별 구성 v8 알려진 문제
단계별 구성 v8을 사용하는 경우 Azure AD B2C 인증에 성공한 후 다음 BIG-IP 오류를 생성하는 알려진 문제가 있습니다. AGC가 배포 중에 자동 JWT 설정을 사용하도록 설정하지 않는 것이 문제일 수 있습니다. APM은 현재 토큰 서명 키를 얻을 수 없습니다. F5 엔지니어링에서 근본 원인을 조사하고 있습니다.
동일한 액세스 로그가 세부 정보를 제공합니다.
수동으로 설정을 사용하도록 설정
액세스>단계별 구성으로 이동합니다.
헤더 기반 애플리케이션에 대한 행의 맨 오른쪽에 있는 자물쇠를 선택합니다.
액세스>페더레이션>OAuth 클라이언트/리소스 서버>공급자로 이동합니다.
Azure AD B2C 구성에 대한 공급자를 선택합니다.
자동 JWT 사용 상자를 선택합니다.
검색을 선택합니다.
저장을 선택합니다.
키(JWT) 필드에는 OpenID URI 메타데이터의 토큰 서명 인증서 KID(키 ID)가 있습니다.