.. _oidc-okta: okta (OIDC) - CWP ==================== 본 가이드는 okta 와 네트워크 접근제어 시스템인 Genian NAC의 인증연동 기능을 수행하기 위한 설정 방법을 안내합니다. 개요 ------ Genian NAC와 okta 솔루션의 OIDC APP 연동을 통하여 Genian NAC 자체 사용자DB를 관리할 필요가 없이 okta를 통해 사용자 인증을 수행할 수 있습니다. 사용자 인증을 위해 Genian NAC CWP 페이지에서 OIDC (OpenID Connect) 프로토콜을 이용하여 okta 인증을 호출하고 okta에서 사용자 인증 여부를 확인하여 정상적인 SSO가 이루어집니다. 권장버전 ---------- .. csv-table:: :header: 제품명(구성요소),버전,비고 :class: longtable :widths: 30 30 40 Genian NAC(정책서버),V5.0 이상,2025.10 이후 Release 버전 okta APP,OIDC 2.0,2025.10 현재 연동가능 연동의 목적 -------------- Genian NAC와 okta 연동은 다음의 효과를 제공합니다. - NAC, okta 개별 인증을 위한 사용자 DB 관리가 필요하지 않습니다. - okta 계정을 이용하여 SSO로 NAC를 인증할 수 있습니다. - OIDC 표준 프로토콜을 통한 안전한 사용자 인증을 제공합니다. 지원되는 기능 -------------------- okta OIDC App 연동은 다음과 같은 기능을 지원합니다: - Authorization Code Flow (표준 OIDC 인증 플로우) - PKCE (Proof Key for Code Exchange) 보안 강화 - JIT (Just-In-Time) Provisioning - Access Token 및 ID Token 검증 - UserInfo Endpoint를 통한 사용자 정보 조회 연동 설정 방법 ---------------- 본 가이드에서 다루는 Genian NAC와 okta 설정 방법은 연동을 위한 필수 항목만을 안내합니다. 최초 1회 설정 이후 자동으로 적용됩니다. Step 1: okta 연동을 위한 계정등록 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. https://www.okta.com/free-trial/ 접속하여 트라이얼 계정을 신청합니다. - 사용자 정보와 국가를 선택합니다. #. 신청한 메일주소로 수신된 인증확인 메일을 확인합니다. - 신청한 메일주소로 'Activate your okta account' 라는 제목으로 계정정보 확인 메일이 발송됩니다. #. 메일 내 'Activate okta Accout' 버튼을 클릭하여 계정을 활성화 하십시오. - 인증을 위한 초기 패스워드 변경과 2차 인증에 대한 설정을 합니다. - okta 콘솔접속시 OTP 2factor 인증을 요구하며 아이폰,안드로이드 OTP 앱 설치 및 OTP 등록이 필요합니다. - OTP 등록과 로그인을 완료하였다면 이제 연동을 위한 OIDC APP 설정이 시작됩니다. Step 2: 인증연동을 위한 OIDC APP 추가 및 설정 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. 메뉴에서 **Applications > Applications** 로 이동합니다. #. **Create App Integration** 버튼을 클릭합니다. #. **Sign-in method** 에서 **OIDC - OpenID Connect** 를 선택합니다. #. **Application type** 에서 **Web Application** 을 선택합니다. #. **Next** 버튼을 클릭합니다. #. **App integration name** 에 "Genian NAC CWP" 를 입력합니다. #. **Grant type** 에서 **Authorization Code** 가 선택되어 있는지 확인합니다. #. **Sign-in redirect URIs** 입력란에 NAC 정책서버의 CWP OIDC 콜백 URL을 아래의 예시처럼 입력합니다. - ex) \https://test.genians.net/cwp2/faces/oidc/oidcCallback.xhtml #. **Sign-out redirect URIs** 입력란에 NAC 정책서버의 CWP 메인 페이지 URL을 입력합니다. - ex) \https://test.genians.net/cwp2 #. **Controlled access** 섹션에서 적절한 할당 방식을 선택합니다. - **Allow everyone in your organization to access** 를 선택하거나 특정 그룹을 지정합니다. #. **Save** 버튼을 클릭하여 앱을 생성합니다. #. 생성된 앱의 **General** 탭에서 **Client ID** 와 **Client secret** 을 확인하고 메모합니다. - **Client ID** 예시: 0oa1a2b3c4d5e6f7g8h9 - **Client secret** 은 **Client secret** 옆의 눈 아이콘을 클릭하여 확인합니다. #. Genian NAC **Web콘솔 > 설정 > 사용자인증 > 인증연동 > OIDC 인증연동** 에 다음 각 항목의 값을 okta에서 복사해서 입력하십시오. - **Provider 이름** - "Okta" 입력 - **Issuer** - okta의 **Org URL** (예: \https://your-domain.okta.com). - **Client ID** - okta의 **Client ID**. - **Client Secret** - okta의 **Client secret**. - **Discovery 사용** - "Yes" 선택 (자동 엔드포인트 검색) .. code:: json { "provider_name": "Okta", "issuer": "https://your-domain.okta.com", "redirect_uri_mc": "https://test.genians.net/mc2/faces/oidc/oidcCallback.xhtml", "redirect_uri_cwp": "https://test.genians.net/cwp2/faces/oidc/oidcCallback.xhtml", "scopes": "openid,profile,email", "authorization_endpoint": "https://your-domain.okta.com/oauth2/v1/authorize", "token_endpoint": "https://your-domain.okta.com/oauth2/v1/token", "userinfo_endpoint": "https://your-domain.okta.com/oauth2/v1/userinfo", "jwks_uri": "https://your-domain.okta.com/oauth2/v1/keys", "end_session_endpoint": "https://your-domain.okta.com/oauth2/v1/logout", } #. JIT provisioning 기능을 사용할려면 NAC에서 **JIT provisioning** 을 'On'으로 변경하십시오. - NAC UI의 **JIT provisioning > 추가정보** 에서 추가 버튼을 클릭해서 사용자 계정의 이름, 이메일을 설정하십시오. - 이름에 **{given_name} {family_name}** 입력하십시오. - 이메일에 **email** 을 입력하십시오. - OIDC Claims (given_name, family_name, email) 항목은 okta에 이미 표준으로 정의되어 있습니다. - 표준 클레임 이외의 속성도 **Custom Claims** 메뉴를 이용해서 추가가 가능합니다. - JIT provisioning을 통해 생성되는 사용자의 기본 권한을 설정하십시오. - NAC UI의 **JIT provisioning > 권한 설정** 에서 신규 사용자에게 할당할 기본 권한을 선택합니다. - okta Groups를 통해 사용자별 차등 권한을 설정할 수도 있습니다. #. Genian NAC CWP 인증 화면에서 표시할 okta 인증버튼에 표시할 문구를 **로그인 버튼 문구** 에 입력합니다. #. Genian NAC Web 콘솔 설정 화면 하단 **수정** 버튼을 클릭합니다. .. note:: Client ID와 Client Secret이 올바르게 입력되었는지 확인하세요. 잘못된 값을 사용하면 OIDC를 통해 NAC CWP로 인증할 수 없습니다. Step 3: OIDC Discovery 및 고급 설정 (선택사항) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. **PKCE (Proof Key for Code Exchange)** 보안 설정이 기본적으로 활성화됩니다. - 이는 Authorization Code 탈취를 방지하는 보안 기능입니다. - okta에서는 기본적으로 PKCE를 지원하므로 추가 설정이 필요하지 않습니다. Step 4: okta 인증연동에 사용할 계정 추가 및 할당 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. okta 콘솔 화면 메뉴 **Directory > People** 으로 이동합니다. #. 화면 중간 **Add Person** 버튼을 클릭하여 사용자를 추가합니다. .. note:: Password 항목은 관리자가 패스워드를 지정하여 생성할지 사용자 최초로그인시 변경하도록 할지 선택합니다. #. okta 콘솔화면 메뉴 **Application > Application** 으로 이동합니다. #. 위에서 등록한 "Genian NAC CWP" APP 우측의 gear 아이콘을 클릭하여 **Assign to Users** 를 클릭합니다. #. 팝업 화면에서 APP을 통하여 인증연동에 사용할 계정의 우측 **Assign** 버튼을 클릭하여 APP에 할당해줍니다. 인증연동 테스트 방법 ----------------------- **Genian NAC Web콘솔에서 테스트하는 방법 (SP-initiated SSO)** #. Web콘솔에 접속하여 **설정 > 사용자인증 > 인증연동 > 인증테스트** 항목에 **테스트** 버튼을 클릭합니다. #. 팝업창에서 인증정보 저장소를 **OIDC** 를 선택합니다. #. "Okta" Provider를 선택합니다. #. 새로운 팝업창에 okta 인증페이지가 표시되며 사용자명, 암호를 입력하여 인증합니다. #. '인증에 성공하였습니다.' 메시지가 표시되면 정상적으로 인증연동이 되었습니다. **Genian NAC CWP 페이지에서 테스트하는 방법 (SP-initiated SSO)** #. 노드정책의 인증정책의 인증방식을 **OIDC** 로 설정합니다. #. Genian NAC CWP페이지에 접속합니다. #. CWP페이지에 **인증** 버튼을 클릭합니다. #. 인증 화면에 위 Step2에서 설정한 인증버튼("Okta로 로그인")을 클릭합니다. #. 새로운 팝업창에 okta 인증페이지가 표시되며 사용자명, 암호를 입력하여 인증합니다. #. 인증 성공 시 JWT ID Token과 Access Token을 받아 사용자 정보를 추출하고 NAC CWP에 로그인됩니다. .. note:: 인증연동 설정 후 정책적용시 제어정책 권한에 okta IdP 도메인을 추가해주어야 차단상태에서도 인증연동 창이 표시됩니다. .. code:: bash 1. 권한 추가 방법 2. 정책 > 객체 > 네트워크 3. 작업선택 > 생성 4. 기본정보 입력 5. 네트워크주소 > FQDN 선택 > IdP 도메인 입력(e.g. your-domain.okta.com) 6. 생성 클릭 7. 권한 메뉴로 이동 8. 생성한 네트워크객체를 이용하여 권한 생성 9. 단말 네트워크를 제어하는 제어정책에 생성한 권한 할당