.. _oidc-google: Google (OIDC) - CWP ==================== 본 가이드는 Google 와 네트워크 접근제어 시스템인 Genian NAC의 인증연동 기능을 수행하기 위한 설정 방법을 안내합니다. 개요 ------ Genian NAC와 Google 솔루션의 OIDC APP 연동을 통하여 Genian NAC 자체 사용자DB를 관리할 필요가 없이 Google을 통해 사용자 인증을 수행할 수 있습니다. 사용자 인증을 위해 Genian NAC CWP 페이지에서 OIDC (OpenID Connect) 프로토콜을 이용하여 Google 인증을 호출하고 Google에서 사용자 인증 여부를 확인하여 정상적인 SSO가 이루어집니다. 권장버전 ---------- .. csv-table:: :header: 제품명(구성요소),버전,비고 :class: longtable :widths: 30 30 40 Genian NAC(정책서버),V5.0 이상,2025.10 이후 Release 버전 Google OAuth 2.0,OIDC 1.0,2025.10 현재 연동가능 연동의 목적 -------------- Genian NAC와 Google 연동은 다음의 효과를 제공합니다. - NAC, Google 개별 인증을 위한 사용자 DB 관리가 필요하지 않습니다. - Google 계정을 이용하여 SSO로 NAC를 인증할 수 있습니다. - OIDC 표준 프로토콜을 통한 안전한 사용자 인증을 제공합니다. - Google Workspace 사용자와 권한을 활용할 수 있습니다. 지원되는 기능 -------------------- Google OIDC 연동은 다음과 같은 기능을 지원합니다: - Authorization Code Flow (표준 OIDC 인증 플로우) - PKCE (Proof Key for Code Exchange) 보안 강화 - JIT (Just-In-Time) Provisioning - Access Token 및 ID Token 검증 - UserInfo Endpoint를 통한 사용자 정보 조회 - Google Workspace Groups 연동 (조직 계정 시) 연동 설정 방법 ---------------- 본 가이드에서 다루는 Genian NAC와 Google 설정 방법은 연동을 위한 필수 항목만을 안내합니다. 최초 1회 설정 이후 자동으로 적용됩니다. Step 1: Google Cloud Console 프로젝트 생성 및 설정 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. https://console.cloud.google.com/ 에 접속하여 Google 계정으로 로그인합니다. #. 새 프로젝트를 생성하거나 기존 프로젝트를 선택합니다. - **프로젝트 만들기** 버튼을 클릭합니다. - **프로젝트 이름**: "Genian NAC CWP" 입력 - **조직 또는 폴더**: 해당하는 조직을 선택 (선택사항) - **만들기** 버튼을 클릭합니다. #. 프로젝트 선택 후 **API 및 서비스 > 라이브러리** 로 이동합니다. #. **Google+ API** 를 검색하여 활성화합니다. (사용자 프로필 정보 조회용) - 검색 결과에서 **Google+ API** 를 클릭합니다. - **사용 설정** 버튼을 클릭합니다. Step 2: OAuth 2.0 클라이언트 ID 생성 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. **API 및 서비스 > 사용자 인증 정보** 로 이동합니다. #. **사용자 인증 정보 만들기** 버튼을 클릭하고 **OAuth 클라이언트 ID** 를 선택합니다. #. OAuth 동의 화면이 설정되지 않은 경우 먼저 동의 화면을 구성해야 합니다. - **외부** 또는 **내부** 사용자 유형을 선택합니다. (Google Workspace 사용 시 내부 선택 권장) - **애플리케이션 이름**: "Genian NAC CWP" 입력 - **사용자 지원 이메일**: 관리자 이메일 입력 - **개발자 연락처 정보**: 관리자 이메일 입력 - **저장 후 계속** 버튼을 클릭합니다. #. **범위** 단계에서 다음 범위를 추가합니다: - **../auth/userinfo.email**: 이메일 주소 확인 - **../auth/userinfo.profile**: 기본 프로필 정보 확인 - **openid**: OpenID Connect 인증 #. OAuth 클라이언트 ID 생성을 계속합니다: - **애플리케이션 유형**: **웹 애플리케이션** 선택 - **이름**: "Genian NAC CWP" 입력 - **승인된 자바스크립트 원본**: NAC 서버 도메인 입력 - ex) \https://test.genians.net - **승인된 리디렉션 URI**: NAC CWP의 OIDC 콜백 URL 입력 - ex) \https://test.genians.net/cwp2/faces/oidc/oidcCallback.xhtml #. **만들기** 버튼을 클릭합니다. #. 생성된 **클라이언트 ID** 와 **클라이언트 보안 비밀번호** 를 안전한 곳에 복사해서 저장합니다. - **클라이언트 ID** 예시: 123456789012-abcdef.apps.googleusercontent.com - **클라이언트 보안 비밀번호** 예시: GOCSPX-abcdef123456 Step 3: Genian NAC OIDC 설정 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. Genian NAC **Web콘솔 > 설정 > 사용자인증 > 인증연동 > OIDC 인증연동** 에 다음 각 항목의 값을 Google에서 복사해서 입력하십시오. - **Provider 이름** - "Google" 입력 - **Issuer** - \https://accounts.google.com - **Client ID** - Google의 **클라이언트 ID**. - **Client Secret** - Google의 **클라이언트 보안 비밀번호**. - **Discovery 사용** - "Off" 선택 (자동 엔드포인트 검색이 동작안함) - **Scope** - "openid profile email" 입력 .. code:: json { "issuer": "https://accounts.google.com", "authorization_endpoint": "https://accounts.google.com/o/oauth2/v2/auth", "token_endpoint": "https://oauth2.googleapis.com/token", "userinfo_endpoint": "https://openidconnect.googleapis.com/v1/userinfo", "jwks_uri": "https://www.googleapis.com/oauth2/v3/certs" } #. JIT provisioning 기능을 사용할려면 NAC에서 **JIT provisioning** 을 'On'으로 변경하십시오. - NAC UI의 **JIT provisioning > 추가정보** 에서 추가 버튼을 클릭해서 사용자 계정의 이름, 이메일을 설정하십시오. - 이름에 **{family_name}{given_name}** 입력하십시오. - 이메일에 **email** 을 입력하십시오. - OIDC Claims (given_name, family_name, email) 항목은 Google에 이미 표준으로 정의되어 있습니다. #. Genian NAC CWP 인증 화면에서 표시할 Google 인증버튼에 표시할 문구를 **로그인 버튼 문구** 에 입력합니다. - 예시: "Google로 로그인", "Sign in with Google" #. Genian NAC Web 콘솔 설정 화면 하단 **수정** 버튼을 클릭합니다. .. note:: 클라이언트 ID와 클라이언트 보안 비밀번호가 올바르게 입력되었는지 확인하세요. 잘못된 값을 사용하면 OIDC를 통해 NAC CWP로 인증할 수 없습니다. 인증연동 테스트 방법 ----------------------- **Genian NAC Web콘솔에서 테스트하는 방법 (SP-initiated SSO)** #. Web콘솔에 접속하여 **설정 > 사용자인증 > 인증연동 > 인증테스트** 항목에 **테스트** 버튼을 클릭합니다. #. 팝업창에서 인증정보 저장소를 **OIDC** 를 선택합니다. #. Provider 선택 화면에서 설정한 "Google" Provider를 선택합니다. #. 새로운 팝업창에 Google 인증페이지가 표시됩니다. #. Google 계정을 선택하거나 사용자명, 암호를 입력하여 인증합니다. #. Google에서 권한 동의 화면이 표시되면 **허용** 을 클릭합니다. #. '인증에 성공하였습니다.' 메시지가 표시되면 정상적으로 인증연동이 되었습니다. **Genian NAC CWP 페이지에서 테스트하는 방법 (SP-initiated SSO)** #. 노드정책의 인증정책의 인증방식을 **OIDC** 로 설정합니다. #. Genian NAC CWP페이지에 접속합니다. #. CWP페이지에 **인증** 버튼을 클릭합니다. #. 인증 화면에 위 Step3에서 설정한 인증버튼("Google로 로그인")을 클릭합니다. #. 새로운 팝업창에 Google 인증페이지가 표시됩니다. #. Google 계정을 선택하거나 사용자명, 암호를 입력하여 인증합니다. #. Google에서 권한 동의 화면이 표시되면 **허용** 을 클릭합니다. #. 인증 성공 시 JWT ID Token과 Access Token을 받아 사용자 정보를 추출하고 NAC CWP에 로그인됩니다. .. note:: 인증연동 설정 후 정책적용시 제어정책 권한에 Google IdP 도메인을 추가해주어야 차단상태에서도 인증연동 창이 표시됩니다. .. code:: bash 1. 권한 추가 방법 2. 정책 > 객체 > 네트워크 3. 작업선택 > 생성 4. 기본정보 입력 5. 네트워크주소 > FQDN 선택 > IdP 도메인 입력 - accounts.google.com - apis.google.com - www.googleapis.com 6. 생성 클릭 7. 권한 메뉴로 이동 8. 생성한 네트워크객체를 이용하여 권한 생성 9. 단말 네트워크를 제어하는 제어정책에 생성한 권한 할당