.. _oidc-msentraid: Microsoft Entra ID (OIDC) - CWP ======================= 본 가이드는 Microsoft Entra ID (구 Azure AD) 와 네트워크 접근제어 시스템인 Genian NAC의 인증연동 기능을 수행하기 위한 설정 방법을 안내합니다. 개요 ------ Genian NAC와 Microsoft Entra ID 솔루션의 OIDC APP 연동을 통하여 Genian NAC 자체 사용자DB를 관리할 필요가 없이 Microsoft Entra ID를 통해 사용자 인증을 수행할 수 있습니다. 사용자 인증을 위해 Genian NAC CWP 페이지에서 OIDC (OpenID Connect) 프로토콜을 이용하여 Microsoft Entra ID 인증을 호출하고 Microsoft Entra ID에서 사용자 인증 여부를 확인하여 정상적인 SSO가 이루어집니다. 권장버전 ---------- .. csv-table:: :header: 제품명(구성요소),버전,비고 :class: longtable :widths: 30 30 40 Genian NAC(정책서버),V5.0 이상,2025.10 이후 Release 버전 Microsoft Entra ID,v2.0 Endpoint,2025.10 현재 연동가능 연동 전 필요한 사항 ------------------- - Microsoft Entra ID (구 Azure AD) 테넌트 - Microsoft Entra ID 앱 등록 권한 (Application Administrator 또는 Global Administrator) - Genian NAC Web 콘솔 관리자 권한 - 네트워크 연결 (Genian NAC ↔ Microsoft Entra ID 간 통신) 연동의 목적 -------------- Genian NAC와 Microsoft Entra ID 연동은 다음의 효과를 제공합니다. - NAC, Microsoft Entra ID 개별 인증을 위한 사용자 DB 관리가 필요하지 않습니다. - Microsoft Entra ID 계정을 이용하여 SSO로 NAC를 인증할 수 있습니다. - OIDC 표준 프로토콜을 통한 안전한 사용자 인증을 제공합니다. - Microsoft 365 사용자와의 통합 인증 환경을 제공합니다. - Conditional Access를 통한 고급 보안 정책 적용이 가능합니다. 지원되는 기능 -------------------- Microsoft Entra ID OIDC 연동은 다음과 같은 기능을 지원합니다: - Authorization Code Flow (표준 OIDC 인증 플로우) - PKCE (Proof Key for Code Exchange) 보안 강화 - JIT (Just-In-Time) Provisioning - Access Token 및 ID Token 검증 - Microsoft Graph API를 통한 사용자 정보 조회 연동 설정 방법 ---------------- 본 가이드에서 다루는 Genian NAC와 Microsoft Entra ID 설정 방법은 연동을 위한 필수 항목만을 안내합니다. 최초 1회 설정 이후 자동으로 적용됩니다. Step 1: Microsoft Entra ID 앱 등록 (CWP용) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. https://portal.azure.com 에 접속하여 Microsoft 계정으로 로그인합니다. #. **Microsoft Entra ID** (구 Azure Active Directory) 서비스로 이동합니다. #. 좌측 메뉴에서 **앱 등록** 을 클릭합니다. #. **새 등록** 버튼을 클릭합니다. #. 앱 등록 정보를 입력합니다. - **이름**: "Genian NAC CWP" 입력 - **지원되는 계정 유형**: "이 조직 디렉터리의 계정만" 선택 (Single tenant) - **리디렉션 URI**: "웹" 선택 후 다음 URL 입력 - https://test.genians.net/cwp2/faces/oidc/oidcCallback.xhtml - **등록** 버튼을 클릭합니다. #. 등록된 앱의 **개요** 페이지에서 다음 정보를 복사합니다. - **애플리케이션(클라이언트) ID** 예시: 98765432-4321-4321-4321-210987654321 - **디렉터리(테넌트) ID** 예시: 87654321-4321-4321-4321-210987654321 - Endpoint URL을 구성할 때 사용된다. Step 2: Microsoft Entra ID 앱 인증 설정 (CWP용) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. 등록된 앱의 좌측 메뉴에서 **인증** 을 클릭합니다. #. **플랫폼 구성** 에서 **웹** 플랫폼이 추가되어 있는지 확인합니다. #. **리디렉션 URI** 에 다음이 정확히 입력되어 있는지 확인합니다. - https://test.genians.net/cwp2/faces/oidc/oidcCallback.xhtml #. **로그아웃 URL** 에 다음을 추가합니다. (선택사항) - https://test.genians.net/cwp2/faces/login.xhtml #. **암시적 허용 및 하이브리드 흐름** 에서 다음을 체크합니다. - **액세스 토큰** (선택사항) - **ID 토큰** 체크 (필수) #. **고급 설정** 에서 다음을 설정합니다. - **클라이언트를 공용 클라이언트로 처리** : "아니요" (기본값) - **가족 및 학교 계정 허용** : 필요에 따라 설정 #. **저장** 버튼을 클릭합니다. Step 3: Microsoft Entra ID 클라이언트 암호 생성 (CWP용) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. 앱의 좌측 메뉴에서 **인증서 및 암호** 를 클릭합니다. #. **클라이언트 암호** 탭에서 **새 클라이언트 암호** 를 클릭합니다. #. 클라이언트 암호 정보를 입력합니다. - **설명**: "NAC CWP Secret" 입력 - **만료**: "24개월" 선택 (권장) - **추가** 버튼을 클릭합니다. #. 생성된 **클라이언트 암호** 의 **값** 을 안전한 곳에 복사해서 저장합니다. - **클라이언트 암호** 예시: 9z8Y7x6W5v4U3t2S1r0Q~p9O8n7M6l5K4j3I2h1G0f .. note:: 클라이언트 암호는 생성 직후에만 값을 확인할 수 있습니다. 페이지를 벗어나면 다시 볼 수 없으므로 반드시 저장하세요. Step 4: Microsoft Entra ID API 권한 설정 (CWP용) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. 앱의 좌측 메뉴에서 **API 권한** 을 클릭합니다. #. **권한 추가** 버튼을 클릭합니다. #. **Microsoft Graph** 를 선택합니다. #. **위임된 권한** 을 선택합니다. #. 다음 권한을 추가합니다. - **openid** (기본값, OpenID 연결에 필요) - **profile** (기본값, 사용자 프로필 정보) - **email** (기본값, 이메일 주소) - **User.Read** (사용자 기본 정보 조회) - **Directory.Read.All** (선택사항, 그룹 정보 조회용) #. **권한 추가** 버튼을 클릭합니다. #. **{테넌트 이름}에 대한 관리자 동의 허용** 버튼을 클릭합니다. (Global Administrator 권한 필요) #. 관리자 동의 확인 대화상자에서 **예** 를 클릭합니다. Step 5: Microsoft Entra ID 사용자 및 그룹 설정 (CWP용) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. Microsoft Entra ID의 좌측 메뉴에서 **사용자** 를 클릭합니다. #. CWP 접근 권한을 부여할 사용자를 확인합니다. #. **그룹** 메뉴에서 **새 그룹** 을 클릭하여 사용자 그룹을 생성합니다. (선택사항) - **그룹 유형**: "보안" 선택 - **그룹 이름**: "NAC-Users" 입력 - **그룹 설명**: "NAC 일반 사용자 그룹" 입력 - **구성원**: 사용자들을 추가 - **만들기** 버튼을 클릭합니다. #. VIP 사용자 그룹을 추가로 생성합니다. (선택사항) - **그룹 이름**: "NAC-VIP-Users" 입력 - **그룹 설명**: "NAC VIP 사용자 그룹" 입력 #. **엔터프라이즈 애플리케이션** 으로 이동합니다. #. 생성한 "Genian NAC CWP" 앱을 검색하여 선택합니다. #. **사용자 및 그룹** 메뉴에서 **사용자/그룹 추가** 를 클릭합니다. - 사용자 또는 NAC-Users 그룹을 할당합니다. Step 6: Genian NAC OIDC 설정 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. Genian NAC **Web콘솔 > 설정 > 사용자인증 > 인증연동 > OIDC 인증연동** 에 다음 각 항목의 값을 Microsoft Entra ID에서 복사해서 입력하십시오. - **Provider 이름** - "Microsoft Entra ID" 입력 - **Issuer** - https://login.microsoftonline.com/{Directory(tenant) ID}/v2.0 - **Client ID** - Microsoft Entra ID의 **애플리케이션(클라이언트) ID** - **Client Secret** - Microsoft Entra ID의 **클라이언트 암호 값** - **Scope** - "openid profile email User.Read" 입력 - **Discovery 사용** - "Off" 선택 (자동 엔드포인트 검색이 동작안함) - 등록된 App의 화면의 Endpoints 클릭하면 관련 Endpoint 정보를 확인할 수 있습니다. - 아래의 URL로 접속하면 관련 Endpoint 정보를 확인할 수 있습니다. https://login.microsoftonline.com/{Directory(tenant) ID}/v2.0/.well-known/openid-configuration .. code:: json { "issuer": "https://login.microsoftonline.com/{Directory(tenant) ID}/v2.0", "authorization_endpoint": "https://login.microsoftonline.com/{Directory(tenant) ID}/oauth2/v2.0/authorize", "token_endpoint": "https://login.microsoftonline.com/{Directory(tenant) ID}/oauth2/v2.0/token", "userinfo_endpoint": "https://graph.microsoft.com/oidc/userinfo", "jwks_uri": "https://login.microsoftonline.com/{Directory(tenant) ID}/discovery/v2.0/keys" } #. JIT provisioning 기능을 사용할려면 NAC에서 **JIT provisioning** 을 'On'으로 변경하십시오. - NAC UI의 **JIT provisioning > 추가정보** 에서 추가 버튼을 클릭해서 사용자 계정의 이름, 이메일을 설정하십시오. - 이름에 **name** 입력하십시오. - 이메일에 **email** 을 입력하십시오. - OIDC Claims (name, email) 항목은 Microsoft Entra ID에 이미 표준으로 정의되어 있습니다. #. Genian NAC CWP 인증 화면에서 표시할 Microsoft Entra ID 인증버튼에 표시할 문구를 **로그인 버튼 문구** 에 입력합니다. - 예시: "Microsoft로 로그인", "Sign in with Microsoft" #. Genian NAC Web 콘솔 설정 화면 하단 **수정** 버튼을 클릭합니다. .. note:: 애플리케이션 ID와 클라이언트 암호가 올바르게 입력되었는지 확인하세요. 또한 테넌트 ID가 Issuer URL에 정확히 포함되어 있는지 확인하십시오. 인증연동 테스트 방법 ----------------------- **Genian NAC Web콘솔에서 테스트하는 방법 (SP-initiated SSO)** #. Web콘솔에 접속하여 **설정 > 사용자인증 > 인증연동 > 인증테스트** 항목에 **테스트** 버튼을 클릭합니다. #. 팝업창에서 인증정보 저장소를 **OIDC** 를 선택합니다. #. Provider 선택 화면에서 설정한 "Microsoft Entra ID" Provider를 선택합니다. #. 새로운 팝업창에 Microsoft 인증페이지가 표시됩니다. #. Microsoft 계정 사용자명, 암호를 입력하여 인증합니다. #. 필요시 2단계 인증(MFA)을 완료합니다. #. '인증에 성공하였습니다.' 메시지가 표시되면 정상적으로 인증연동이 되었습니다. **Genian NAC CWP 페이지에서 테스트하는 방법 (SP-initiated SSO)** #. 노드정책의 인증정책의 인증방식을 **OIDC** 로 설정합니다. #. Genian NAC CWP페이지에 접속합니다. #. CWP페이지에 **인증** 버튼을 클릭합니다. #. 인증 화면에 위 Step6에서 설정한 인증버튼("Microsoft로 로그인")을 클릭합니다. #. 새로운 팝업창에 Microsoft 인증페이지가 표시됩니다. #. Microsoft 계정 사용자명, 암호를 입력하여 인증합니다. #. 필요시 2단계 인증(MFA)을 완료합니다. #. 인증 성공 시 JWT ID Token과 Access Token을 받아 사용자 정보를 추출하고 NAC CWP에 로그인됩니다. .. note:: 인증연동 설정 후 정책적용시 제어정책 권한에 Microsoft IdP 도메인을 추가해주어야 차단상태에서도 인증연동 창이 표시됩니다. .. code:: bash 1. 권한 추가 방법 2. 정책 > 객체 > 네트워크 3. 작업선택 > 생성 4. 기본정보 입력 5. 네트워크주소 > FQDN 선택 > IdP 도메인 입력 - login.microsoftonline.com - graph.microsoft.com (Microsoft Graph API) 6. 생성 클릭 7. 권한 메뉴로 이동 8. 생성한 네트워크객체를 이용하여 권한 생성 9. 단말 네트워크를 제어하는 제어정책에 생성한 권한 할당