21.1. 인증 시스템 개요

../../../_images/auth-system-overview.png

그림 21.1 인증 시스템 개념도

21.1.1. 인증 데이터베이스

새 인증 시스템은 기본적으로 <profile directory>/qgis-auth.db 위치에 있는 SQLite 데이터베이스 파일에 인증 환경 설정을 저장합니다.

현재의 다른 QGIS 사용자 환경 설정에 영향을 미치지 않고 서로 다른 QGIS 설치본 간에 이 인증 데이터베이스를 이동시킬 수 있습니다. 인증 데이터베이스가 일반적인 QGIS 설정과 완벽하게 분리되어 있기 때문입니다. 환경 설정을 데이터베이스에 처음으로 저장할 때 환경 설정 ID(랜덤한 문자 7개 길이의 알파벳-숫자 문자열)를 생성합니다. 이 ID가 환경 설정을 가리키기 때문에, 관련 인증 정보를 노출시키는 일 없이 ID를 (프로젝트, 플러그인, 또는 설정 파일과 같은) 평문 텍스트 응용 프로그램 항목으로 저장할 수 있습니다.

참고

환경 변수 QGIS_AUTH_DB_DIR_PATH 를 사용하거나 또는 QGIS 구동 시 명령 줄에서 --authdbdirectory 옵션을 설정해서 qgis-auth.db 의 부모 디렉터리를 설정할 수 있습니다.

21.1.2. 마스터 비밀번호

데이터베이스 내에 민감한 정보를 저장하거나 접근하려면, 사용자가 마스터 비밀번호 를 정의해야만 합니다. 데이터베이스에 암호화된 데이터를 처음으로 저장할 때 새 마스터 비밀번호를 요청하고 확인합니다. 사용자가 민감한 정보에 접근할 때 마스터 비밀번호를 입력해야 합니다. 사용자가 캐시값을 수동으로 삭제하지만 않는다면 남은 세션 동안 (응용 프로그램을 종료할 때까지) 마스터 비밀번호를 캐시에 저장합니다. 기존 인증 환경 설정을 선택한다거나 또는 (WMS 레이어 추가 시처럼) 서버 환경 설정에 인증 환경 설정을 적용한다거나 하는 경우와 같은 인증 시스템을 이용하는 일부 인스턴스는 마스터 비밀번호를 요구하지 않습니다.

사용자 컴퓨터의 Wallet/Keyring 에 비밀번호를 저장하도록 선택할 수 있습니다.

../../../_images/auth-password-new_enter.png

그림 21.2 새 마스터 비밀번호 입력 대화창

참고

환경 변수 QGIS_AUTH_PASSWORD_FILE 을 이용해서 마스터 비밀번호를 담고 있는 파일을 가리키는 경로를 설정할 수 있습니다.

21.1.2.1. 마스터 비밀번호 관리하기

마스터 비밀번호를 설정한 다음, 다시 리셋할 수 있습니다. 리셋하기 전에 현재 마스터 비밀번호를 입력해야 합니다. 이 과정 도중에 현재 데이터베이스의 완전한 백업 파일을 생성하는 옵션이 있습니다.

../../../_images/auth-password-reset.png

그림 21.3 마스터 비밀번호 리셋하기

사용자가 마스터 비밀번호를 잊어버린 경우, 다시 찾거나 무시할 수 있는 방법은 없습니다. 또 마스터 비밀번호 없이 암호화된 정보를 받아올 수 있는 방법도 없습니다.

사용자가 기존 비밀번호를 세 번 부정확하게 입력한 경우, 대화창이 데이터베이스를 삭제하도록 제안할 것입니다.

../../../_images/auth-password-invalid-3times.png

그림 21.4 부정확한 시도를 세 번 한 후의 QGIS 비밀번호 메시지

21.1.3. 인증 환경 설정

QGIS 옵션 대화창의 (Settings ► Options) Authentication 탭에 있는 Configurations 부분에서 인증 환경 설정을 관리할 수 있습니다.

../../../_images/auth-editor-configs2.png

그림 21.5 환경 설정 편집기

새 환경 설정을 추가하려면 signPlus 아이콘을, 그리고 환경 설정을 제거하려면 signMinus 버튼을 클릭하십시오. 기존 환경 설정을 수정하려면 symbologyEdit 아이콘을 클릭하십시오.

../../../_images/auth-config-create_authcfg-id.png

그림 21.6 환경 설정 편집기 안에서 환경 설정 추가하기

OWS 서비스 연결과 같은 지정한 서비스 연결을 환경 설정할 때, 인증 환경 설정 관리에 대해 세 가지 유형의 작업(추가, 편집 및 제거)을 할 수 있습니다. 이를 위해, 환경 설정 선택기 안에 인증 데이터베이스에서 찾은 환경 설정을 완전히 관리할 수 있는 액션 버튼들이 있습니다. 이런 경우, 환경 설정을 좀 더 종합적으로 관리해야 할 필요가 없는 한, QGIS 옵션 대화창의 Authentication 탭에 있는 Configurations 부분으로 갈 필요가 없습니다.

../../../_images/auth-selector-wms-connection.png

그림 21.7 Add, EditRemove 인증 환경 설정 버튼이 표시된 WMS 연결 대화창

인증 환경 설정을 생성하거나 편집할 때, 요구되는 정보는 명칭, 인증 방법, 그리고 인증 방법이 요구하는 기타 정보입니다. (사용할 수 있는 인증 유형에 관한 자세한 내용은 인증 방법 을 참조하세요.)

21.1.4. 인증 방법

QGIS가 데이터 제공자 플러그인을 지원하는것과 거의 동일한 방식으로 C++ 플러그인이 사용 가능한 인증을 제공합니다. QGIS 코드와 플러그인을 둘 다 지원하는지 여부와 HTTP(S), 데이터베이스 같은 리소스/제공자에 필요한 접근 권한에 따라 인증 방법을 선택할 수 있습니다. 따라서 일부 인증 방법 플러그인은 인증 환경 설정 선택기가 표시된 모든 위치에 적용이 안 될 수도 있습니다. Settings ► Options 메뉴를 선택한 다음 Authentication 탭에 있는 options Installed Plugins 버튼을 클릭하면 사용 가능한 인증 방법 플러그인과 호환 가능한 리소스/제공자 목록을 볼 수 있습니다.

../../../_images/auth-method-listing.png

그림 21.8 사용할 수 있는 인증 방법 플러그인 목록

QGIS를 다시 컴파일할 필요가 없는 경우 새 인증 방법을 위한 플러그인을 생성할 수 있습니다. 현재 C++ 플러그인만을 지원하고 있기 때문에, 새로 추가한 플러그인을 사용하려면 QGIS를 재시작해야 합니다. 기존 QGIS 설치본에 플러그인을 추가할 생각이라면, 사용자 플러그인이 기존 설치본과 동일한 버전을 대상으로 컴파일됐는지 확인하십시오.

../../../_images/auth-config-create_basic-auth.png

그림 21.9 HTTP 기본 인증 환경 설정

../../../_images/auth-config-create_esritoken.png

그림 21.10 ESRI 토큰 인증 환경 설정

../../../_images/auth-config-create_oauth2.png

그림 21.11 OAuth2 인증 환경 설정

../../../_images/auth-config-create_pem-der-paths.png

그림 21.12 PKI 경로 인증 환경 설정

../../../_images/auth-config-create_pkcs12-paths.png

그림 21.13 PKI PKCS#12 파일 경로 인증 환경 설정

../../../_images/auth-config-create_stored-identity2.png

그림 21.14 저장된 신원 인증 환경 설정

참고

Resource URL은 현재 구현되지 않은 기능으로, 향후 지정한 URL에 있는 리소스에 연결 시 특정 환경 설정을 자동 선택할 수 있도록 개발할 예정입니다.

21.1.5. 마스터 비밀번호 및 인증 환경 설정 유틸리티

Settings ► Options 대화창의 Authentication 에서, 인증 데이터베이스 및 환경 설정을 관리할 수 있는 다음 |settings| Utilities 액션의 콤보박스 목록을 찾을 수 있습니다:

../../../_images/auth-editor-configs_utilities-menu.png

그림 21.15 유틸리티 목록

  • 마스터 비밀번호 입력: 인증 데이터베이스 명령어 수행과는 무관하게 마스터 비밀번호 입력 대화창을 엽니다.

  • 캐시된 마스터 비밀번호 삭제: 마스터 비밀번호가 입력 대화창을 통해 설정되어있다면 이를 해제합니다.

  • 마스터 비밀번호 리셋: 마스터 비밀번호를 바꾸기 위한 (현재 비밀번호를 알고 있어야만 합니다) 대화창을 열고, 선택적으로 현재 데이터베이스를 백업합니다.

  • 네트워크 인증 접근 캐시 삭제: 모든 연결의 인증 캐시를 삭제합니다.

  • SSL 오류 발생 시 자동적으로 네트워크 인증 접근 캐시 삭제: 연결 캐시는 연결이 실패하더라도 연결에 대한 모든 인증 데이터를 저장합니다. 사용자가 인증 환경 설정이나 인증서 기관을 변경하는 경우, 인증 캐시를 삭제하거나 QGIS를 재시작해야 합니다. 이 옵션을 체크하면, SSL 오류가 발생해서 사용자가 연결을 중지하도록 선택할 때마다 인증 캐시를 자동적으로 삭제할 것입니다.

  • 마스터 비밀번호를 사용자 월렛/키링과 통합: 사용자 개인 월렛/키링에 마스터 비밀번호를 추가합니다.

  • 사용자 월렛/키링에 마스터 비밀번호를 저장/업데이트: 사용자 월렛/키링에 변경된 마스터 비밀번호를 업데이트합니다.

  • 사용자 월렛/키링에서 마스터 비밀번호를 삭제: 사용자 월렛/키링에서 마스터 비밀번호를 삭제합니다.

  • 비밀번호 도우미 디버그 로그 활성화: 인증 방법의 모든 로그 정보를 담게 될 디버그 도구를 활성화합니다.

  • 캐시된 인증 환경 설정 삭제: 네트워크 연결 속도를 높이는데 사용되는 환경 설정용 내부 조회 캐시를 지웁니다. QGIS의 핵심 네트워크 접근 관리자의 캐시는 지워지지 않습니다. QGIS를 다시 시작해야 하기 때문입니다.

  • 모든 인증 환경 설정 제거: 저장된 다른 레코드는 삭제하지 않은 채, 모든 환경 설정 레코드의 데이터베이스를 지웁니다.

  • 인증 데이터베이스 지우기: 현재 데이터베이스의 백업과 데이터베이스 테이블 구조의 완전한 리빌딩을 예약합니다. 이런 작업들은 나중에 실행되도록 예약됩니다. 프로젝트 불러오기와 같은 다른 작업이 이를 방해하지 않도록 하거나 일시적으로 누락된 데이터베이스로 인해 오류가 발생하지 않도록 하기 위해서입니다.

    ../../../_images/auth-db-erase.png

    그림 21.16 DB 삭제 확인 대화창

21.1.6. 인증 환경 설정 사용하기

일반적으로, (WMS 같은) 네트워크 서비스 용 환경 설정 대화창에서 인증 환경 설정을 선택합니다. 하지만 인증이 필요한 곳이라면 어디든, 또는 제 3자 PyQGIS 또는 C++ 플러그인 같은 비핵심 기능에 선택기 위젯을 내장시킬 수 있습니다.

선택기 위젯을 사용할 때, 아무것도 선택하지 않았거나 선택할 인증 환경 설정이 없거나 또는 데이터베이스에서 이전에 할당한 환경 설정을 찾을 수 없는 경우 팝업 메뉴의 콤보박스에 ‘No authentication’ 이라고 표시됩니다. MethodId 텍스트 란은 읽기 전용으로, 선택한 인증 방법의 설명 및 환경 설정 ID를 각각 표시합니다.

../../../_images/auth-selector-no-authentication.png

그림 21.17 아무 인증도 없는 인증 환경 설정 선택기

../../../_images/auth-selector-pkcs12-authentication.png

그림 21.18 선택한 환경 설정을 표시한 인증 환경 설정 선택기

21.1.7. 파이썬 바인딩

모든 클래스 및 공개 함수는 SIP 바인딩을 보유하고 있습니다. QgsAuthCrypto 를 제외하고 말이죠. 왜냐하면 파이썬을 통해서가 아니라 주 응용 프로그램이 마스터 비밀번호 해싱 및 인증 데이터베이스를 관리해야 하기 때문입니다. 파이썬 접근 관련 설명은 보안 고려 사항 을 참조하세요.