.. _oidc-okta-adminconsole: okta (OIDC) - Web 콘솔 ========================= 본 가이드는 okta 와 네트워크 접근제어 시스템인 Genian NAC의 인증연동 기능을 수행하기 위한 설정 방법을 안내합니다. 관리자 인증을 위해 Genian NAC Web 콘솔 페이지에서 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" 를 입력합니다. #. **Grant type** 에서 **Authorization Code** 가 선택되어 있는지 확인합니다. #. **Sign-in redirect URIs** 입력란에 NAC 정책서버의 OIDC 콜백 URL을 아래의 예시처럼 입력합니다. - ex) \https://test.genians.net/mc2/faces/oidc/oidcCallback.xhtml #. **Sign-out redirect URIs** 입력란에 NAC 정책서버의 메인 페이지 URL을 입력합니다. - ex) \https://test.genians.net/mc2 #. **Controlled access** 섹션에서 적절한 할당 방식을 선택합니다. - **Limit access to selected groups** 를 선택하고 NAC 관리자 그룹을 지정하는 것을 권장합니다. #. **Save** 버튼을 클릭하여 앱을 생성합니다. #. 생성된 앱의 **General** 탭에서 **Client ID** 와 **Client secret** 을 확인하고 메모합니다. - **Client ID** 예시: 0oa1a2b3c4d5e6f7g8h9 - **Client secret** 은 **Client secret** 옆의 눈 아이콘을 클릭하여 확인합니다. #. Genian NAC **Web콘솔 > 설정 > 환경설정 > 관리콘솔 > OIDC 인증 > Identity Provider (IdP)** 에 다음 각 항목의 값을 okta에서 복사해서 입력하십시오. - **Provider 이름** - "Okta" 입력 - **Issuer** - okta의 **Org URL**. - **Client ID** - okta의 **Client ID**. - **Client Secret** - okta의 **Client secret**. - **Discovery 사용** - "Off" 선택 (자동 엔드포인트 검색), 자동 엔드포인트 검색이 동작안함. .. code:: json { "provider_name": "Okta", "issuer": "https://your-domain.okta.com", "redirect_uri_mc": "https://test.genians.net/mc2/faces/oidc/oidcCallback.xhtml", "scopes": "openid,profile,email,groups", "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** 메뉴를 이용해서 추가가 가능합니다. - NAC UI의 **JIT provisioning > 관리자 관리역할** 에서 추가 버튼을 클릭해서 관리역할을 추가 하십시오. - okta의 Groups Claims 항목에 설정되어 있는 이름 **_ADMINROLE_superAdmin** 을 입력하시기 바랍니다. - 다른 관리 역할을 추가할려면 okta의 **Directory > Groups** 에서 그룹을 생성하고 **Custom Claims** 를 통해 다른 역할 Group을 설정해야 합니다. - JIT provisioning 기능을 사용하기 위해서 Group Claims를 설정해야 합니다. - 관리자를 할당할 그룹명을 _ADMINROLE_superAdmin_NAC 처럼 _ADMINROLE_ prefix와 roleId(superAdmin)는 반드시 포함되어야 합니다. +----------------------------+-----------------------------+ |관리역할 |값 | +============================+=============================+ |superAdmin |_ADMINROLE_superAdmin_NAC | +----------------------------+-----------------------------+ #. Genian NAC Web 콘솔 인증 화면에서 표시할 okta 인증버튼에 표시할 문구를 **로그인 버튼 문구** 에 입력합니다. #. Genian NAC Web 콘솔 설정 화면 하단 **수정** 버튼을 클릭합니다. .. note:: Client ID와 Client Secret이 올바르게 입력되었는지 확인하세요. 잘못된 값을 사용하면 OIDC를 통해 NAC로 인증할 수 없습니다. Step 3: okta 인증연동에 사용할 계정 추가 및 할당 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 이미 사용자가 등록되어 있다면 5번으로 이동 1. okta 콘솔 화면 메뉴 **Directory > Groups** 으로 이동합니다. 2. 화면 중간 **Add Group** 버튼을 클릭하여 그룹을 생성합니다. - JIT provisioning 기능을 위해서는 관리자 Role Group을 생성해야 합니다. (예) _ADMINROLE_superAdmin) +----------------------------+------------------------+ |ID |설명 | +============================+========================+ |_ADMINROLE_superAdmin |수퍼 관리자 | +----------------------------+------------------------+ |_ADMINROLE_auditor |감사 관리자 | +----------------------------+------------------------+ 설정 > 사용자 인증 > 관리역할에서 NAC에서 제공하는 모든 관리역할을 확인할 수 있습니다. 3. okta 콘솔 화면 메뉴 **Directory > People** 으로 이동합니다. 4. 화면 중간 **Add Person** 버튼을 클릭하여 사용자를 추가합니다. - JIT provisioning이 필요한 사용자의 경우는 2번에서 생성한 Group을 선택해야 한다. .. note:: Password 항목은 관리자가 패스워드를 지정하여 생성할지 사용자 최초로그인시 변경하도록 할지 선택합니다. 5. okta 콘솔화면 메뉴 **Application > Application** 으로 이동합니다. 6. 위에서 등록한 "Genian NAC" APP 우측의 gear 아이콘을 클릭하여 **Assign to Users** 를 클릭합니다. 7. 팝업 화면에서 APP을 통하여 인증연동에 사용할 계정의 우측 **Assign** 버튼을 클릭하여 APP에 할당해줍니다. Step 4: OIDC Discovery 및 고급 설정 (선택사항) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. **PKCE (Proof Key for Code Exchange)** 보안 설정이 기본적으로 활성화됩니다. - 이는 Authorization Code 탈취를 방지하는 보안 기능입니다. - okta에서는 기본적으로 PKCE를 지원하므로 추가 설정이 필요하지 않습니다. #. **Custom Claims** 설정 (필요시) - JIT provisioning 기능을 위해서는 관리자 Role Group을 설정해야 합니다. - okta App의 **Sign On** 탭으로 이동합니다. - **OpenID Connect ID Token** 섹션에서 **Edit** 을 클릭합니다. - **Groups claim type** 을 "Filter" 으로 설정합니다. - **Groups claim name** 에 "groups" 를 입력합니다. - **Groups claim filter** 에 다음을 입력합니다: **_ADMINROLE_superAdmin** 인증연동 테스트 방법 ----------------------- **Genian NAC Web 콘솔 페이지에서 테스트하는 방법 (SP-initiated SSO)** #. Genian NAC Web 콘솔 페이지에 접속합니다. #. **OIDC 로그인** 버튼을 클릭합니다. #. 인증 화면에 위 Step2에서 설정한 인증버튼("Okta로 로그인")을 클릭합니다. #. 새로운 팝업창에 okta 인증페이지가 표시되며 사용자명, 암호를 입력하여 인증합니다. #. 인증 성공 시 JWT ID Token과 Access Token을 받아 사용자 정보를 추출하고 NAC에 로그인됩니다. .. note:: 인증연동 설정 후 정책적용시 제어정책 권한에 okta IdP 도메인을 추가해주어야 차단상태에서도 인증연동 창이 표시됩니다. .. code:: bash 1. 권한 추가 방법 2. 정책 > 객체 > 네트워크 3. 작업선택 > 생성 4. 기본정보 입력 5. 네트워크주소 > FQDN 선택 > IdP 도메인 입력(e.g. your-domain.okta.com) 6. 생성 클릭 7. 권한 메뉴로 이동 8. 생성한 네트워크객체를 이용하여 권한 생성 9. 단말 네트워크를 제어하는 제어정책에 생성한 권한 할당