본문으로 건너뛰기

액세스 및 권한

사용자와 그룹을 관리하고 애플리케이션의 보안을 보장하는 방법입니다.

소개​

보안은 모든 애플리케이션의 핵심 기둥 중 하나입니다. 단순한 내부 애플리케이션이든, API를 통해 수천 명의 외부 사용자와 상호작용하는 복잡한 시스템이든 마찬가지입니다.

Netuno는 액세스 및 권한 제어를 위한 견고한 시스템을 기본적으로 제공하여, 보안을 중앙 집중적이고 효율적으로 관리하는 데 필요한 도구를 제공합니다. 또한 이러한 기능을 처음부터 직접 개발할 필요를 없애줍니다.

주요 보안 메커니즘 중에서 다음이 두드러집니다:

  • 사용자 및 그룹 관리.
  • 데이터 관리에 대한 권한 제어.
  • 인증 시도에 대한 상세 기록.
  • 연속된 접근 실패 후 자동 IP 차단.
  • LDAP, Google, GitHub, Discord 등과 통합된 인증.
  • 프런트엔드를 위한 JWT 인증 모듈.
  • 기타 등등...

사용자 관리​

플랫폼에 접근하는 개별 계정을 관리하는 것을 의미합니다. 시스템에 접근해야 하는 각 사용자, 서비스 또는 통합은 고유한 사용자 레코드를 보유해야 합니다.

Netuno의 사용자 관리 영역에서는 이러한 계정의 전체 수명 주기를 완전히 제어할 수 있습니다:

  • 생성: 새로운 팀 구성원 또는 고객 등록.
  • 유지 관리: 이메일 갱신, 비밀번호 변경 및 등록 정보 변경.
  • 액세스 제어: 이력 데이터를 삭제할 필요 없이 계정을 신속하게 차단(비활성화).
시각적 가이드

사용자 관리에 대한 자세한 정보는 인터페이스 가이드: 사용자 및 그룹을 참고하세요.

그룹 관리​

권한 부여 규칙의 정의는 그룹을 통해 이루어지며, 각 사용자가 접근하거나 조작할 수 있는 메뉴, 폼, 서비스 및 데이터를 설정합니다. 권한을 개별적으로 구성하는 대신, 그룹에서 규칙을 정의한 다음 사용자를 그 그룹에 연결하는 것이 이상적입니다. 이 절차는 다음을 보장합니다:

  • 확장성: 수백 명의 사용자를 쉽게 관리할 수 있습니다.
  • 보안: 실수로 부적절한 액세스 권한을 부여할 위험이 줄어듭니다.
  • 조직화: 관리자, 매니저, 감독자 및 일반 사용자 간의 명확한 분리.

Netuno는 이미 dev 및 admin과 같은 기본 그룹을 제공하며, 애플리케이션의 비즈니스 규칙에 맞게 사용자 정의 그룹을 생성할 수 있는 완전한 자율성을 제공합니다.

시각적 가이드

그룹 관리에 대한 자세한 정보는 인터페이스 가이드: 사용자 및 그룹을 참고하세요.

데이터 권한 제어​

그룹의 기능 또는 사용자의 권한을 보장하려면, 해당 사용자가 어떤 데이터를 조작할 권한이 있는지 설정하는 것이 중요합니다. Netuno에서 액세스 제어는 애플리케이션의 폼(테이블)에 직접 세밀하게 적용됩니다.

시스템은 권한 매트릭스를 사용하여 각 기능에 대해 특정 그룹이 다음과 같은 작업에 대한 적절한 권한을 보유하는지 정의할 수 있습니다:

  • 읽기: 레코드를 조회만 할 수 있습니다.
  • 쓰기: 데이터베이스에 레코드를 삽입하고 편집할 수 있습니다.
  • 삭제: 레코드를 영구적으로 제거할 수 있습니다.

이러한 유연성은 민감한 데이터를 보호합니다. 각 구성원은 자신의 업무 수행에 필수적인 정보에만 제한적으로 접근할 수 있기 때문입니다.

시각적 가이드

데이터 권한을 구성하는 방법에 대한 자세한 정보는 인터페이스 가이드: 사용자 및 그룹을 참고하세요.

인증 기록​

투명성과 제어를 보장하기 위해 모든 접근 시도(성공 또는 실패)가 기록되며, 인증 기록에서 조회할 수 있습니다.

시스템은 사용자의 각 로그인 시도 정보를 상세하게 모니터링하고 저장합니다:

  • 출발지 IP: 요청이 시작된 네트워크 주소.
  • 시점: 작업이 발생한 정확한 시점.
  • 접근: 접근이 허용되었는지, 거부되었는지 또는 차단되었는지.

접근 아이콘 범례​

🟩 녹색 자물쇠/check_mark: 성공을 나타냅니다. 사용자가 올바른 자격 증명을 제공하여 로그인이 승인되었음을 의미합니다. 또한 출발지 IP의 차단이 해제되었음을 나타냅니다.

🟧 주황색 "X" 아이콘: 유효하지 않은 시도 횟수를 나타냅니다.

🟥 빨간색 자물쇠: 출발지 IP가 차단되었음을 나타냅니다.

자동 차단​

Netuno에는 애플리케이션을 공격 및 무단 액세스로부터 보호하기 위한 능동적인 보안 시스템이 있습니다.

연속적인 잘못된 로그인 시도와 같은 의심스러운 활동이 감지되면, 시스템은 출발지 IP 주소를 자동으로 차단합니다.

일단 차단되면, 해당 IP는 정해진 기간 동안 또는 수동으로 차단이 해제될 때까지 새로운 요청을 수행할 수 없습니다.

차단 규칙 설정​

이 규칙은 애플리케이션 환경의 구성 파일인 "development.json" 또는 "production.json"에서 정의됩니다.

1. 구성 파일 찾기​

프로젝트 루트에서 config 폴더로 이동합니다. 보호하려는 환경에 해당하는 파일을 엽니다:

  • 개발용: _development.json

  • 운영용: _production.json

2. 보호 코드 삽입​

JSON 파일 내에서 auth 섹션을 찾습니다. 해당 섹션이 없다면, 아래 예시와 같이 attempts 블록을 삽입합니다:

{
...
"auth": {
"attempts": {
"interval": 60,
"maxFails": 3
}
}
}

3. 매개변수 이해​

  • interval: 분 단위의 시간 창입니다 (예: 60분 = 1시간).

  • maxFails: 차단 전까지 해당 시간 창 내에서 허용되는 최대 실패 횟수입니다.

4. 시스템 동작​

  • 자동 차단 후에는 사용자가 애플리케이션에 접근할 수 없습니다.

  • 기본적으로 시스템은 세 번의 잘못된 시도에 대해 한 시간 동안 차단하도록 구성되어 있습니다. 이 기간이 지나면 시도가 다시 허용됩니다.

  • 이 프로세스는 애플리케이션의 필요에 따라 구성할 수 있습니다.

인터페이스에서 차단 해제​

"관리자" 권한을 가진 사용자만 데이터베이스에 접근할 필요 없이 Back-Office에서 직접 액세스를 해제할 수 있습니다.

  1. "보기" 모드에서 애플리케이션 메뉴에 접근한 후, "설정 > 사용자" 섹션을 클릭합니다. user-configuration-section-pt.png

  2. "기존 사용자 편집" 필드에서 원하는 사용자를 선택합니다. select-an-existing-user-pt.png

  3. "인증 기록" 섹션에서 "Access" 상태가 녹색 "자물쇠" 아이콘을 표시하는지 확인합니다; section-authentication-history-pt.png

  4. 사용자의 전체 접근 목록을 확인하려면 시계 아이콘을 클릭합니다. authentication-history-pt.png

  5. 사용자를 차단 해제하려면 "접근" 열의 녹색 자물쇠를 클릭합니다. 이 작업 후에는 성공 메시지가 표시됩니다.

해제는 즉시 이루어지며, 사용자는 다시 로그인을 시도할 수 있습니다.

통합 인증​

애플리케이션이 보다 정교한 인증 방법을 요구할 수 있으며, 특히 모바일 앱을 구축하거나 기업 네트워크와 통합하는 경우에 그렇습니다.

Netuno는 유연하게 설계되어 조직의 생태계와 통합할 수 있습니다. 기본 로그인(사용자 및 비밀번호) 외에도 플랫폼은 다양한 시장 인증 프로토콜을 지원합니다.

이를 통해 사용자가 이미 보유한 자격 증명을 사용하여 시스템에 접근하는 SSO(Single Sign-On, 통합 로그인) 전략을 구현할 수 있으며, 액세스 관리를 중앙 집중화합니다.

기업 환경: 인트라넷 및 내부 시스템에 이상적인 사용자 디렉터리(예: LDAP 및 Active Directory)와의 호환성.

소셜 로그인(OAuth): Google, Microsoft, GitHub 등과의 통합 가능성을 제공하여 공개 애플리케이션에서의 가입 및 접근을 용이하게 합니다.

토큰 인증 (JWT)​

전용 프런트엔드를 사용하는 프로젝트(예: React, Vue.js로 만든 사이트 또는 모바일 앱)에서는 Netuno의 전통적인 로그인 화면이 사용되지 않습니다. 이러한 시나리오에서는 JWT(JSON Web Token) 표준이 채택됩니다.

Netuno는 이러한 토큰을 자동으로 생성하고 검증하는 기본 서비스를 제공하여 API 통신에서 보안과 효율성을 보장합니다.

시각적 가이드

구성 파일에서 JWT를 구현하고 구성하는 방법에 대한 자세한 정보는 JWT 인증 가이드를 참고하세요.

결론​

Netuno의 보안 기능을 숙달하는 것은 프로젝트의 건전성을 위해 필수적입니다. 사용자 관리, 그룹 관리 및 기록 모니터링 도구를 올바르게 활용함으로써, 데이터 보호와 사용 편의성 사이의 균형을 이루는 환경을 구축했습니다.

이를 통해 Netuno의 시스템이 다음과 같이 보장됩니다:

  • 안전: 민감한 정보를 무단 액세스로부터 보호합니다.

  • 조직화: 명확한 계층 구조와 책임을 확립합니다.

  • 확장성: 현대적인 통합 기능과 함께 성장할 준비가 되어 있습니다.

모범 사례를 유지하세요: 그룹의 권한을 주기적으로 검토하고 접근 기록을 확인하여 환경을 건강하게 유지하세요.