ownCloud Apache .htaccess 경고를 안전하게 제거하는 방법
ownCloud의 웹 루트에만 AllowOverride All을 설정하고, 활성 Apache vhost를 확인한 다음, 안전하게 페이지를 새로 고침하여 .htaccess 규칙을 복원하십시오.
Keycloak 로그인 페이지에 접속하여 인증을 완료한 후, ownCloud Infinite Scale 로그인 화면으로 돌아가거나 "알 수 없는 사용자" 오류가 발생하는 경우가 종종 있습니다. 이러한 문제의 일반적인 원인은 영역 발급자가 일치하지 않거나, 다른 예제 버전에서 복사한 웹 클라이언트를 사용하거나, ID 클레임이 oCIS 계정과 일치하지 않는 경우입니다. Keycloak을 oCIS의 외부 OpenID Connect 공급자(OIDC)로 구성하고, 이 세 가지 값을 일치시킨 후, 브라우저와 클라이언트가 HTTPS를 통해 공급자에 연결할 수 있는지 확인하십시오.
이 안내서에서는 cloud.example.comoCIS용 호스트와 sso.example.comKeycloak용 호스트를 가상의 호스트로 사용합니다. 구성은 ownCloud Infinite Scale 8.2 설명서를 참조하므로, 적용하기 전에 설치된 릴리스의 설명서와 이름을 비교하십시오. 이 안내서는 ownCloud Server 10이 아닌 Infinite Scale(oCIS)에 대한 것입니다.
ID 공급자(IdP)는 다른 서비스에 대한 사용자 인증을 제공합니다. OpenID Connect는 oCIS가 Keycloak의 로그인 및 ID 정보를 신뢰할 수 있도록 하는 로그인 프로토콜입니다. 영역(Realm)은 Keycloak의 사용자, 클라이언트 및 설정의 별도 집합입니다. oCIS에 서비스를 제공할 영역을 선택한 다음 발급자 URL을 지정합니다. 예시 영역의 경우 발급자 URL ocis은 입니다 https://sso.example.com/realms/ocis.
oCIS를 편집하기 전에 https://sso.example.com/realms/ocis/.well-known/openid-configuration브라우저에서 여세요. 이 OpenID Connect 검색 문서는 공급자의 엔드포인트를 설명합니다. issuer스키마, 호스트, 대소문자, 경로를 포함하여 해당 값이 영역 URL과 정확히 일치하는지 확인하세요. 발급자는 관리 페이지 또는 더 긴 검색 URL이 아니어야 합니다. 공급자의 TLS 인증서는 사용자의 브라우저와 oCIS 서버/컨테이너에서 신뢰되어야 합니다.

검색 URL이 로드되지 않으면 DNS, 역방향 프록시 라우팅, 방화벽 또는 인증서 문제를 먼저 해결하십시오. 브라우저 응답이 성공적이라고 해서 oCIS 컨테이너가 Keycloak에 연결할 수 있다는 것을 보장하는 것은 아닙니다. 서버 배포 네트워크에서의 네트워크 액세스도 확인하십시오. OpenID Connect 검색 규칙은 반환된 발급자가 동일한 공급자를 식별해야 합니다. OpenID Connect 검색 사양을 참조하십시오 .
유지 관리되는 ownCloud Keycloak 배포 예제를 시작점으로 사용 하고 해당 영역 파일을 사용 중인 oCIS 릴리스와 일치시키십시오. 버전을 혼용하지 마십시오. 현재 구성 예제는 웹 클라이언트 ID를 사용 web하지만 이전 설정 설명서에는 다른 내용이 나와 있습니다 ocis-web. Keycloak과 oCIS는 동일한 클라이언트 ID를 사용해야 합니다.
Keycloak에서 선택한 영역과 웹 클라이언트를 엽니다. 로그인 흐름과 클라이언트 ID를 ownCloud 예제와 일치시킵니다. 유효한 리디렉션 URI를 해당 영역에서 요구하는 정확한 콜백 주소로 설정하고, 공용 HTTPS 호스트를 사용합니다. 웹 출처는 템플릿에서 요구하는 대로만 설정합니다. 아래의 와일드카드는 예시일 뿐이며, 실제 운영 환경에서의 권장 사항이 아닙니다. 광범위한 리디렉션 패턴은 의도치 않은 대상으로 이어질 수 있습니다. 레이블은 Keycloak 릴리스에 따라 다를 수 있습니다.

Keycloak의 공개 호스트 이름을 안정적으로 유지하십시오. TLS 연결이 리버스 프록시에서 종료되는 경우, 해당 리버스 프록시의 공개 호스트 이름과 신뢰할 수 있는 프록시 헤더를 구성해야 합니다. 그렇지 않으면 리디렉션 시 잘못된 스키마나 호스트가 사용될 수 있습니다. Keycloak 리버스 프록시 관련 지침을 따르십시오 . Keycloak을 공개하기 전에 데모 관리자 자격 증명을 교체하십시오.
다른 설정 및 비밀 키는 그대로 유지한 채, 배포 구성에서 oCIS 서비스에 다음 변수들을 추가하십시오. 예시에서는 가상의 URL과 현재 예시 클라이언트 ID를 사용합니다.
OCIS_URL=https://cloud.example.com
OCIS_OIDC_ISSUER=https://sso.example.com/realms/ocis
WEB_OIDC_CLIENT_ID=web
PROXY_OIDC_REWRITE_WELLKNOWN=true
OCIS_EXCLUDE_RUN_SERVICES=idp
OCIS_URL는 공개 oCIS 주소입니다. 발급자 및 클라이언트 ID는 Keycloak과 정확히 일치해야 합니다. 이 재작성 옵션을 사용하면 데스크톱, Android 및 iOS 클라이언트에서 사용하는 검색 경로가 활성화됩니다. 제외 옵션을 사용하면 idp외부 IdP 배포에서 내장 공급자가 중지됩니다. 설정에서 해당 서비스를 의도적으로 사용하는 경우 이 옵션을 생략하십시오.

배포의 일반적인 재시작 프로세스를 통해 변경 사항을 적용하세요. Docker Compose를 사용하는 경우, docker compose up -dcompose 디렉터리에서 명령어를 실행하여 변경된 서비스를 다시 생성한 다음 oCIS 로그를 검토하세요. 프로덕션 환경에서는 신뢰할 수 있는 TLS 인증서를 사용하세요. ownCloud 예제에서는 INSECURE=true로컬 자체 서명 인증서 옵션을 사용하고 있는데, 인터넷에 연결된 서버에서는 이 옵션을 제거하거나 false로 설정해야 합니다. ownCloud에서도 PROXY_OIDC_INSECURE프로덕션 환경에서는 이 옵션을 사용하지 말 것을 권장합니다.
클레임은 `@Identity`, `@mail`, `@UserId`와 같은 OIDC ID 필드입니다 sub. preferred_usernameoCIS email는 이를 사용하여 계정을 찾습니다. 기존 사용자의 경우, 해당 사용자가 이미 사용하고 있는 속성(예: 사용자 이름, 이메일 또는 사용자 ID)에 매핑해야 합니다. 매핑이 일치하지 않으면 Keycloak에서 로그인을 승인한 후 "사용자를 찾을 수 없음" 오류가 발생할 수 있습니다.
첫 로그인 시 계정 생성을 위해, PROXY_AUTOPROVISION_ACCOUNTS=trueoCIS Graph 사용자 백엔드에서 쓰기 권한을 활성화한 후에만 설정하십시오. 식별자는 고유하고 안정적이어야 하며, 절대 재할당되어서는 안 됩니다. ownCloud는 sub이를 적합하게 식별합니다. 이메일 또는 선호하는 사용자 이름은 변경할 수 없는 경우에만 사용하십시오. 생성 및 조회 클레임을 일관되게 유지하십시오.
PROXY_AUTOPROVISION_ACCOUNTS=true
PROXY_AUTOPROVISION_CLAIM_USERNAME=sub
PROXY_USER_OIDC_CLAIM=sub
PROXY_USER_CS3_CLAIM=username
Keycloak이 토큰 또는 사용자 정보 응답에서 선택한 클레임을 반환하는지 확인하십시오. 자동 프로비저닝이 비활성화된 경우 로그인 시 새 사용자가 생성되지 않으며, 읽기 전용 Graph 백엔드를 사용하는 경우 프로비저닝이 실패할 수 있습니다. 로그인이 정상적으로 작동한 후에만 그룹 또는 역할 매핑을 추가하십시오. 쓰기 권한을 활성화하거나 ID 매핑을 변경하기 전에 ownCloud 8.2 프록시 및 자동 프로비저닝 관련 문서를 참조하십시오 .
oCIS를 개인 브라우저 창에서 열고 로그인하세요. Keycloak 영역에 접속하여 인증을 완료하면 예상했던 계정으로 동일한 oCIS 호스트에 다시 접속할 수 있습니다. 먼저 기존 계정을 테스트해 보세요. 프로비저닝이 활성화된 경우, 승인된 새 사용자 한 명을 테스트하고 의도한 사용자 이름으로 한 번 생성되었는지 확인하세요. 로그아웃 후 다시 로그인하세요.

데스크톱 또는 모바일 검색을 위해 를 엽니다 https://cloud.example.com/.well-known/openid-configuration. 재작성된 코드는 Keycloak의 공급자 정보를 노출해야 합니다. 로그인 루프는 리디렉션 호스트 또는 스키마 불일치를 나타냅니다. 성공적인 로그인 후 사용자가 거부되는 경우는 클레임 누락 또는 PROXY_USER_OIDC_CLAIM와 의 불일치를 나타냅니다 PROXY_USER_CS3_CLAIM.
ownCloud의 웹 루트에만 AllowOverride All을 설정하고, 활성 Apache vhost를 확인한 다음, 안전하게 페이지를 새로 고침하여 .htaccess 규칙을 복원하십시오.
ownCloud의 엔터프라이즈 감사 앱을 활성화하고, admin_audit 이벤트를 보호된 로그 파일로 라우팅하고, 실제 사용자 작업이 기록되는지 확인하십시오.
Keycloak의 영역 발급자, 웹 클라이언트 및 사용자 클레임을 정렬하여 ownCloud Infinite Scale이 웹 및 모바일 클라이언트 전반에서 사용자를 안정적으로 로그인할 수 있도록 합니다.
ownCloud의 occ 명령어를 사용하여 소유 파일과 공유 폴더를 이전하고, 어떤 파일이 남는지 확인하고, 이전 계정을 삭제하기 전에 액세스 권한을 확인하세요.
ownCloud 10 데이터베이스 인덱스에 주의가 필요한 시점, 지원되는 스키마 업데이트를 안전하게 적용하는 방법, 그리고 쿼리 튜닝이나 데이터베이스 변경이 더 나은 해결책인 경우를 알아보세요.
Windows 또는 Samba 네트워크 공유를 외부 저장소를 통해 ownCloud에 연결하고, 자격 증명을 확인하고, 액세스할 수 없는 폴더 문제를 안전하게 해결하세요.
계정 하나 또는 모든 사용자에 대해 저장된 모든 ownCloud Server Classic 파일 버전을 삭제하고, 전체 삭제와 보존 기간 만료를 구분할 수 있습니다.
ownCloud 모바일 연결 거부 문제를 추적하려면 서버 URL, 휴대폰 네트워크, HTTPS 엔드포인트 및 서버 로그를 올바른 순서대로 확인하십시오.
온디맨드 작업 실행을 ownCloud에서 지원하는 occ system:cron 명령을 15분마다 실행하는 systemd 타이머로 대체합니다.
Apache, Nginx 또는 리버스 프록시를 통해 WebDAV 요청을 추적한 다음 인증된 PROPFIND 테스트를 사용하여 ownCloud 동기화가 제대로 작동하는지 확인하십시오.