이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요
NocoBase는 기능 설계부터 시스템 구현에 이르기까지 데이터와 애플리케이션의 보안을 중요하게 생각합니다. 플랫폼에는 사용자 인증, 접근 제어, 데이터 암호화 등 다양한 보안 기능이 내장되어 있으며, 실제 필요에 따라 보안 정책을 유연하게 설정할 수 있습니다. 사용자 데이터 보호, 접근 권한 관리, 개발 및 운영 환경 분리 등 어떤 상황에서든 NocoBase는 실용적인 도구와 솔루션을 제공합니다. 이 가이드는 NocoBase를 안전하게 사용하는 방법을 안내하여 사용자가 데이터, 애플리케이션 및 환경을 보호하고, 안전한 환경에서 시스템 기능을 효율적으로 활용할 수 있도록 돕는 것을 목표로 합니다.
사용자 인증은 사용자 신원을 확인하고, 승인되지 않은 사용자가 시스템에 접근하는 것을 방지하며, 사용자 신원이 오용되지 않도록 보장하는 데 사용됩니다.
기본적으로 NocoBase는 JWT (JSON Web Token)를 사용하여 서버 측 API를 인증합니다. 사용자는 시스템 환경 변수 APP_KEY를 통해 토큰 키를 설정할 수 있습니다. 애플리케이션의 토큰 키가 외부에 유출되지 않도록 잘 관리해 주십시오. APP_KEY가 변경되면 기존 토큰도 무효화된다는 점에 유의하시기 바랍니다.
NocoBase는 사용자 토큰에 대해 다음과 같은 보안 정책 설정을 지원합니다.
| 설정 항목 | 설명 |
|---|---|
| 세션 유효 기간 | 사용자가 로그인할 때마다 부여되는 최대 유효 시간입니다. 세션 유효 기간 내에는 토큰이 자동으로 갱신되며, 이 기간을 초과하면 사용자는 다시 로그인해야 합니다. |
| 토큰 유효 기간 | 발급된 각 API 토큰의 유효 기간입니다. 토큰 만료 후에도 세션 유효 기간 내에 있고 갱신 제한 시간을 초과하지 않았다면, 서버는 사용자 세션을 유지하기 위해 새 토큰을 자동으로 발급합니다. 그렇지 않은 경우 사용자는 다시 로그인해야 합니다. (각 토큰은 한 번만 갱신될 수 있습니다.) |
| 만료 토큰 갱신 제한 시간 | 토큰 만료 후 갱신이 허용되는 최대 시간입니다. |
일반적으로 관리자에게 다음을 권장합니다.
기본적으로 사용자 토큰은 브라우저의 LocalStorage에 저장됩니다. 브라우저 페이지를 닫았다가 다시 열었을 때 토큰이 여전히 유효하다면 사용자는 다시 로그인할 필요가 없습니다.
사용자가 페이지에 접속할 때마다 다시 로그인하도록 하려면, 환경 변수 API_CLIENT_STORAGE_TYPE=sessionStorage를 설정하여 사용자 토큰을 브라우저의 SessionStorage에 저장할 수 있습니다. 이를 통해 사용자가 페이지를 열 때마다 다시 로그인하도록 할 수 있습니다.
전문 버전 이상
NocoBase는 모든 사용자를 대상으로 비밀번호 규칙과 비밀번호 로그인 시도 잠금 정책을 설정하여 비밀번호 로그인이 활성화된 NocoBase 애플리케이션의 보안을 강화합니다. 각 설정 항목에 대한 자세한 내용은 비밀번호 정책을 참조하십시오.
| 설정 항목 | 설명 |
|---|---|
| 비밀번호 길이 | 비밀번호의 최소 길이 요구 사항이며, 최대 길이는 64자입니다. |
| 비밀번호 복잡성 | 비밀번호의 복잡성 요구 사항을 설정하며, 반드시 포함해야 하는 문자 유형입니다. |
| 비밀번호에 사용자 이름 포함 불가 | 비밀번호에 현재 사용자의 사용자 이름을 포함할 수 있는지 여부를 설정합니다. |
| 비밀번호 기록 기억 | 사용자가 최근에 사용한 비밀번호 개수를 기억하며, 비밀번호 변경 시 재사용할 수 없습니다. |
| 설정 항목 | 설명 |
|---|---|
| 비밀번호 유효 기간 | 사용자 비밀번호의 유효 기간입니다. 사용자는 비밀번호 만료 전에 비밀번호를 변경해야 유효 기간이 다시 계산됩니다. 만료 전에 비밀번호를 변경하지 않으면 이전 비밀번호로 로그인할 수 없으며, 관리자의 도움을 받아 재설정해야 합니다. 다른 로그인 방식이 설정되어 있다면 사용자는 다른 방식으로 로그인할 수 있습니다. |
| 비밀번호 만료 알림 채널 | 사용자 비밀번호 만료 10일 전부터 사용자가 로그인할 때마다 알림을 보냅니다. |
| 설정 항목 | 설명 |
|---|---|
| 최대 유효하지 않은 비밀번호 로그인 시도 횟수 | 사용자가 지정된 시간 간격 내에 시도할 수 있는 최대 로그인 시도 횟수를 설정합니다. |
| 최대 유효하지 않은 비밀번호 로그인 시간 간격 (초) | 사용자 최대 유효하지 않은 로그인 시도 횟수를 계산하는 시간 간격을 초 단위로 설정합니다. |
| 잠금 시간 (초) | 사용자가 유효하지 않은 비밀번호 로그인 제한을 초과한 후 사용자를 잠그는 시간을 초 단위로 설정합니다 (0은 제한 없음을 의미). 사용자가 잠금 상태인 동안에는 API 키를 포함한 어떠한 인증 방식으로도 시스템에 접근할 수 없습니다. |
일반적으로 다음을 권장합니다.

전문 버전 이상, 비밀번호 정책 플러그인에 포함
유효하지 않은 비밀번호 로그인 제한을 초과하여 잠긴 사용자를 관리합니다. 잠긴 사용자를 직접 잠금 해제하거나, 비정상적인 사용자를 잠금 목록에 수동으로 추가할 수 있습니다. 사용자가 잠금 상태가 되면 API 키를 포함한 어떠한 인증 방식으로도 시스템에 접근할 수 없습니다.

NocoBase는 API 키를 통해 시스템 API를 호출하는 것을 지원합니다. 사용자는 API 키 플러그인 설정에서 API 키를 추가할 수 있습니다.

상업용 플러그인
NocoBase는 OIDC, SAML 2.0, LDAP, CAS 등 다양한 주요 프로토콜을 지원하는 풍부한 SSO 인증 플러그인을 제공합니다. 또한 NocoBase는 완벽한 인증 방식 확장 인터페이스를 갖추고 있어 다른 인증 유형을 빠르게 개발하고 통합할 수 있습니다. 기존 IdP(Identity Provider)를 NocoBase와 쉽게 연동하여 IdP에서 사용자 신원을 중앙 집중식으로 관리하고 보안을 강화할 수 있습니다.

엔터프라이즈 버전
이중 인증은 사용자가 비밀번호로 로그인할 때, 신뢰할 수 있는 장치로 일회성 동적 인증 코드를 전송하는 것과 같이 신원을 증명할 수 있는 두 번째 유효한 정보를 제공하도록 요구합니다. 이는 사용자 신원을 확인하고 오용을 방지하며, 비밀번호 유출로 인한 위험을 줄이는 데 도움이 됩니다.
엔터프라이즈 버전
NocoBase는 사용자 접근 IP에 대해 블랙리스트 또는 화이트리스트 설정을 지원합니다.
시스템에 다양한 역할을 설정하고 각 역할에 적절한 권한을 부여함으로써, 사용자가 리소스에 접근하는 권한을 세밀하게 제어할 수 있습니다. 관리자는 실제 시나리오 요구 사항에 맞춰 합리적으로 설정하여 시스템 리소스 유출 위험을 줄여야 합니다.
NocoBase를 처음 설치할 때 애플리케이션은 root 사용자를 초기화합니다. 사용자는 시스템 환경 변수를 설정하여 root 사용자 관련 정보를 수정하고 악용되는 것을 방지하는 것이 좋습니다.
INIT_ROOT_USERNAME - root 사용자 이름INIT_ROOT_EMAIL - root 사용자 이메일INIT_ROOT_PASSWORD - root 사용자 비밀번호 (강력한 비밀번호를 설정하십시오.)시스템을 계속 사용하는 동안에는 다른 관리자 계정을 설정하고 사용하는 것을 권장하며, root 사용자로 애플리케이션을 직접 조작하는 것은 가능한 한 피하십시오.
NocoBase는 시스템에 역할을 설정하고, 각 역할에 권한을 부여하며, 사용자를 해당 역할에 바인딩함으로써 사용자가 리소스에 접근하는 권한을 제어합니다. 각 사용자는 여러 역할을 가질 수 있으며, 역할을 전환하여 다양한 관점에서 리소스를 조작할 수 있습니다. 부서 플러그인이 설치된 경우, 역할과 부서를 바인딩할 수도 있으며, 이 경우 사용자는 소속 부서에 바인딩된 역할을 갖게 됩니다.

시스템 설정 권한에는 다음 항목이 포함됩니다.
메뉴 권한은 사용자가 데스크톱 및 모바일 환경을 포함하여 다양한 메뉴 페이지에 접근하는 권한을 제어하는 데 사용됩니다.

NocoBase는 사용자가 시스템 내 데이터에 접근하는 권한에 대해 세밀한 제어를 제공하여, 각 사용자가 자신의 직무와 관련된 데이터만 접근하도록 보장하고 권한 남용 및 데이터 유출을 방지합니다.


사용자가 조작할 수 있는 데이터 범위를 설정합니다. 여기에서 설정하는 데이터 범위는 블록에서 설정하는 데이터 범위와 다릅니다. 블록에서 설정하는 데이터 범위는 일반적으로 프런트엔드 데이터 필터링에만 사용됩니다. 사용자 데이터 리소스 접근 권한을 엄격하게 제어해야 하는 경우, 서버에서 제어하도록 여기에 설정해야 합니다.

데이터 저장 및 백업 과정에서 NocoBase는 데이터 보안을 보장하기 위한 효과적인 메커니즘을 제공합니다.
NocoBase 사용자 비밀번호는 scrypt 알고리즘으로 암호화되어 저장되며, 대규모 하드웨어 공격에 효과적으로 대응할 수 있습니다.
NocoBase에서 타사 서비스를 사용할 때, 타사 키 정보를 환경 변수에 설정하고 암호화하여 저장하는 것을 권장합니다. 이는 다양한 환경에서 편리하게 설정하고 사용할 수 있게 하며, 보안을 강화합니다. 자세한 사용 방법은 문서를 참조하십시오.
기본적으로 키는 AES-256-CBC 알고리즘으로 암호화됩니다. NocoBase는 32비트 암호화 키를 자동으로 생성하여 storage/.data/environment/aes_key.dat에 저장합니다. 사용자는 키 파일이 도난당하지 않도록 잘 보관해야 합니다. 데이터를 마이그레이션해야 하는 경우, 키 파일도 함께 마이그레이션해야 합니다.

민감한 파일을 저장해야 하는 경우, S3 프로토콜과 호환되는 클라우드 저장 서비스를 사용하고 상업용 플러그인 File storage: S3 (Pro)와 함께 사용하여 파일의 비공개 읽기/쓰기를 구현하는 것을 권장합니다. 내부 네트워크 환경에서 사용해야 하는 경우, MinIO와 같이 프라이빗 배포를 지원하고 S3 프로토콜과 호환되는 저장 애플리케이션을 사용하는 것이 좋습니다.

애플리케이션 데이터 보안을 보장하고 데이터 손실을 방지하기 위해 데이터베이스를 정기적으로 백업하는 것을 권장합니다.
오픈 소스 버전 사용자는 https://www.nocobase.com/en/blog/nocobase-backup-restore를 참조하여 데이터베이스 도구를 활용해 백업할 수 있습니다. 또한 백업 파일이 유출되지 않도록 잘 보관하는 것을 권장합니다.
전문 버전 이상 사용자는 백업 관리자를 사용하여 백업할 수 있습니다. 백업 관리자는 다음과 같은 기능을 제공합니다.

NocoBase를 올바르게 배포하고 실행 환경의 보안을 보장하는 것은 NocoBase 애플리케이션 보안을 위한 핵심 요소 중 하나입니다.
중간자 공격을 방지하기 위해 NocoBase 애플리케이션 사이트에 SSL/TLS 인증서를 추가하여 네트워크 전송 과정에서 데이터 보안을 보장하는 것을 권장합니다.
엔터프라이즈 버전
데이터 보안 요구 사항이 더욱 엄격한 환경에서 NocoBase는 API 전송 암호화를 활성화하여 API 요청 및 응답 내용을 암호화하고, 평문 전송을 방지하며, 데이터 해독의 문턱을 높이는 것을 지원합니다.
기본적으로 NocoBase는 타사 서비스와 통신할 필요가 없으며, NocoBase 팀은 어떠한 사용자 정보도 수집하지 않습니다. NocoBase 서버에 연결해야 하는 경우는 다음 두 가지 작업 시에만 해당됩니다.
일정 수준의 편의성을 포기할 의향이 있다면, 이 두 가지 작업 모두 오프라인으로 완료할 수 있으며 NocoBase 서버에 직접 연결할 필요가 없습니다.
NocoBase는 완전한 내부 네트워크 배포를 지원합니다. 다음을 참조하십시오.
전문 버전 이상
실제 사용 사례에서는 기업 사용자가 테스트 환경과 운영 환경을 격리하여 운영 환경의 애플리케이션 데이터 및 실행 환경 보안을 보장하는 것을 권장합니다. 마이그레이션 관리 플러그인을 활용하면 애플리케이션 데이터를 다른 환경 간에 마이그레이션할 수 있습니다.

엔터프라이즈 버전
NocoBase의 감사 로그 기능은 시스템 내 사용자 활동 기록을 저장합니다. 사용자의 주요 작업 및 접근 행동을 기록함으로써 관리자는 다음을 수행할 수 있습니다.


NocoBase는 다양한 로그 유형을 제공하여 사용자가 시스템 실행 상태 및 행동 기록을 이해하고, 시스템 문제를 적시에 발견 및 해결하며, 다양한 관점에서 시스템의 보안 및 제어 가능성을 보장하도록 돕습니다. 주요 로그 유형은 다음과 같습니다.