웹사이트 검색

ownCloud에 대한 2단계 인증


이 페이지에서

  1. 전제 조건
  2. privacyIDEA를 ownCloud 데이터베이스에 연결
    1. 데이터베이스 준비
    2. privacyIDEA를 ownCloud에 연결
      1. 사용자 해결 프로그램 만들기\n
      2. 영역 만들기

      이 튜토리얼에서는 사용자의 두 번째 인증 요소를 관리하는 데 사용할 수 있는 privacyIDEA로 자신의 클라우드 설치를 보호하는 방법을 보여드리겠습니다.

      privacyIDEA는 ID 공급자가 아닌 자체 네트워크에서 2단계 인증을 위한 인증 장치를 관리하는 시스템으로, 귀하의 신원과 사용자의 신원도 귀하의 통제하에 유지합니다.

      이것이 어떻게 생겼는지 알고 싶다면 YouTube에서 이 비디오를 볼 수 있습니다.

      전제 조건

      나는 당신이 이미 ownCloud 8 시스템을 가동하고 있다고 가정합니다. 거기에 꽤 좋은 예가 있습니다. 이 사이트에서 nginx와 함께 ownCloud 8을 설치하는 방법을 살펴볼 수도 있습니다.

      또한 귀하가 privacyIDEA 시스템을 실행하고 있다고 가정합니다. 이 하우투는 privacyIDEA 설치를 다루지 않습니다. 또한 Howtoforge에서 문서의 설치 지침에 대한 하우투를 찾을 수 있습니다.

      참고: privacyIDEA와 ownCloud를 동일한 서버에서 실행할 필요는 없습니다. 하나의 서버에 인증 시스템으로 privacyIDEA를 설치하고 이 privacyIDEA에 대해 ownCloud와 같은 다른 애플리케이션을 구성할 때 이러한 설정의 모든 기능을 발휘하게 됩니다. 이것은 또한 ownCloud에 대한 인증 장치, 두 번째 애플리케이션에 대한 인증 장치 및 세 번째 애플리케이션에 대한 인증 장치 등을 관리할 필요가 없다는 이점을 포함합니다. 이 솔루션은 여러 응용 프로그램과 두 명 이상의 사용자가 있는 경우 그 강점을 입증합니다. 그러나 물론 더 작은 시나리오에서도 작동합니다.

      참고: ownCloud privacyIDEA 앱은 초기 개발 단계에 있습니다. 따라서 귀하가 제공하는 모든 피드백은 매우 감사하며 이 도구를 개선하는 데 도움이 될 것입니다. Google 그룹을 통해 howtoforge에서 피드백을 제공할 수 있습니다.

      privacyIDEA를 ownCloud 데이터베이스에 연결

      데이터베이스 준비

      프라이버시IDEA에는 조건이 하나 있습니다. ownCloud 사용자는 privacyIDEA에 알려야 합니다. 또는 반대로 privacyIDEA에서 토큰을 할당한 사용자는 ownCloud에서도 사용할 수 있어야 합니다.

      사용자가 LDAP 디렉토리에 있는 설정을 실행할 수 있지만 이 예시에서는 단순히 기존의 ownCloud SQL 사용자 테이블을 사용합니다.

      참고: 다른 서버에서 privacyIDEA 및 ownCloud를 실행 중인 경우 SQL 데이터베이스에 대한 액세스 권한을 부여해야 합니다. MySQL/MariaDB의 경우 /etc/mysql/my.cnfbind-address를 다음과 같이 수정해야 합니다.

      bind-address = 0.0.0.0

      또한 MySQL을 기반으로 액세스 권한을 추가해야 합니다.

      grant all privileges on owncloud.* to "ocuser"@"privacyIDEA-Server" identified by "password";

      이제 MySQL 사용자 "ocuser"는 privacyIDEA 서버에서 ownCloud 서버의 데이터베이스에 액세스할 수 있습니다.

      경고: MySQL 서버에 대한 네트워크 트래픽은 암호화되지 않습니다. 이 시나리오를 실행하는 경우 TLS를 설정하는 것이 좋습니다. SSL을 사용하여 MySQL을 설정하는 방법에 대한 몇 가지 하우투를 이 사이트에서 찾을 수도 있습니다.

      privacyIDEA를 ownCloud에 연결

      사용자 확인자 만들기

      이제 privacyIDEA를 ownCloud에 연결하여 privacyIDEA가 사용자를 알 수 있도록 합니다. Config → Users에서 새로운 user resolver를 생성합니다.

      데이터베이스 속성 매핑에 필요한 모든 필드를 미리 설정해야 하는 ownCloud 버튼을 클릭할 수 있습니다.

      그런 다음 Test SQL Resolver를 클릭하여 문제가 없는지 확인할 수 있습니다.

      영역 만들기

      이제 Config → Realms로 이동하여 리졸버에서 기본 영역을 생성할 수 있습니다.

      이제 사용자 탭에 ownCloud 사용자가 표시되고 이러한 사용자에 대한 토큰을 등록할 수 있습니다.

      Google OTP 등록

      privacyIDEA는 여기에서 찾을 수 있는 다양한 토큰을 지원합니다.

      간단한 예로 Google Authenticator를 빠르게 등록하겠습니다.

      사용자 보기로 이동하고 사용자를 선택하여 사용자 세부 정보를 확인합니다. 여기에서 새 토큰 등록 버튼을 클릭할 수 있습니다.

      등록 대화 상자에서 토큰 유형을 선택할 수 있으며 토큰 유형에 따라 다른 세부 정보를 입력해야 합니다. 하지만 이 예에서는 기본 토큰 유형인 HOTP를 사용하고 있습니다. 페이지 하단에서 OTP PIN을 입력할 수 있습니다.

      토큰 등록을 클릭합니다.

      토큰이 등록되고 Google Authenticator 앱으로 스캔할 수 있는 QR 코드가 표시됩니다.

      다른 토큰 유형은 이 자습서의 범위를 벗어나는 다른 방식으로 등록됩니다. 자세한 내용은 privacyIDEA 설명서를 참조하십시오.

      이제 ownCloud 사용자에게 할당된 토큰이 있으므로 완료되었습니다. 추가 ownCloud 사용자에 대해 이 프로세스를 반복할 수 있습니다.

      ownCloud 앱 받기

      먼저 ownCloud privacyIDEA 앱을 다운로드해야 합니다.

      여기에서 앱을 다운로드할 수 있습니다. user_privacyidea 디렉토리를 자신의 Cloud 디렉토리 apps/에 복사해야 합니다. /var/www/owncloud에 ownCloud를 설치했다고 가정하면 다음과 같은 구조가 됩니다.

      :~# ls /var/www/owncloud/apps/user_privacyidea/ -l
      -rw-rw-r-- 1 root root 1671 Jun 25 15:05 adminSettings.php
      drwxrwxr-x 2 root root 4096 Jun 25 15:17 appinfo
      drwxrwxr-x 2 root root 4096 Jun 25 15:17 img
      drwxrwxr-x 2 root root 4096 Jun 25 15:17 js
      drwxrwxr-x 2 root root 4096 Jun 25 15:17 lib
      drwxrwxr-x 2 root root 4096 Jun 25 15:17 templates

      privacyIDEA 앱은 ownCloud 사용자 백엔드로 구현되며 로그인에 두 번째 요소를 추가하기 위해 인증 요청으로 이동할 수 있도록 기존 사용자 백엔드에 대한 오버레이 역할을 합니다.

      ownCloud 앱 구성

      앱 → 활성화되지 않음으로 이동하여 앱을 활성화합니다.

      그런 다음 Your User → Admin으로 이동하여 privacyIDEA 앱을 구성할 수 있습니다.

      privacyIDEA 서버의 URL을 제공해야 합니다. 신뢰할 수 있는 인증서로 privacyIDEA 서버를 실행해야 합니다. 설정 프로세스 중에 신뢰할 수 있는 인증서가 없는 경우 privacyIDEA 서버의 SSL 인증서 확인 확인란을 선택 취소할 수 있습니다.

      잠금을 방지하려면 또한 사용자가 일반 암호로 인증할 수 있도록 허용합니다 확인란을 선택할 수 있습니다. 이 경우 privacyIDEA에 대한 인증이 실패하면 사용자는 기본 ownCloud 사용자 백엔드에 대해 인증됩니다. 생산적으로 사용하려면 이 확인란을 선택 취소해야 합니다.

      데스크톱 클라이언트는 물론 일회용 암호에 문제가 있습니다. 이러한 클라이언트를 사용하는 경우 고정 암호를 사용하여 remote.php에 대한 API 액세스 허용 확인란을 선택해야 합니다. 이 경우 데스크톱 클라이언트(remote.php로 식별됨)에서 오는 인증 요청은 privacyIDEA에 대해 인증되지 않고 기본 사용자 백엔드에 대해 인증됩니다.

      마지막으로 모든 것이 정상이면 privacyIDEA를 사용하여 사용자 인증 확인란을 선택하여 2단계 인증을 활성화할 수 있습니다.

      ownCloud에 로그인

      privacyIDEA 앱을 활성화한 후 ownCloud의 로그인 화면은 변경되지 않습니다.

      로그인하려면 사용자 이름을 입력하고 암호 필드에 OTP PIN과 Google OTP에서 생성한 OTP 값을 입력해야 합니다.