OIDC를 사용하여 ownCloud Infinite Scale을 Keycloak에 연결합니다.

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)에 대한 것입니다.

1. 영역 및 검색 엔드포인트를 확인하세요.

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 서버/컨테이너에서 신뢰되어야 합니다.

OpenID Connect 검색 JSON에서 Keycloak 영역 응답에 발급자 https://sso.example.com/realms/ocis가 표시됩니다.
검색 문서에는 oCIS에 구성된 정확한 영역 발급자가 명시되어야 합니다.

검색 URL이 로드되지 않으면 DNS, 역방향 프록시 라우팅, 방화벽 또는 인증서 문제를 먼저 해결하십시오. 브라우저 응답이 성공적이라고 해서 oCIS 컨테이너가 Keycloak에 연결할 수 있다는 것을 보장하는 것은 아닙니다. 서버 배포 네트워크에서의 네트워크 액세스도 확인하십시오. OpenID Connect 검색 규칙은 반환된 발급자가 동일한 공급자를 식별해야 합니다. OpenID Connect 검색 사양을 참조하십시오 .

2. Keycloak 클라이언트를 oCIS 웹 앱과 일치시키세요.

유지 관리되는 ownCloud Keycloak 배포 예제를 시작점으로 사용 하고 해당 영역 파일을 사용 중인 oCIS 릴리스와 일치시키십시오. 버전을 혼용하지 마십시오. 현재 구성 예제는 웹 클라이언트 ID를 사용 web하지만 이전 설정 설명서에는 다른 내용이 나와 있습니다 ocis-web. Keycloak과 oCIS는 동일한 클라이언트 ID를 사용해야 합니다.

Keycloak에서 선택한 영역과 웹 클라이언트를 엽니다. 로그인 흐름과 클라이언트 ID를 ownCloud 예제와 일치시킵니다. 유효한 리디렉션 URI를 해당 영역에서 요구하는 정확한 콜백 주소로 설정하고, 공용 HTTPS 호스트를 사용합니다. 웹 출처는 템플릿에서 요구하는 대로만 설정합니다. 아래의 와일드카드는 예시일 뿐이며, 실제 운영 환경에서의 권장 사항이 아닙니다. 광범위한 리디렉션 패턴은 의도치 않은 대상으로 이어질 수 있습니다. 레이블은 Keycloak 릴리스에 따라 다를 수 있습니다.

Keycloak 클라이언트 설정 예시에는 웹 클라이언트 ID와 유효한 리디렉션 URI 및 웹 출처 필드가 표시됩니다.
사용 중인 oCIS 버전에 맞는 영역 템플릿에서 리디렉션 URI와 클라이언트 ID를 사용하십시오. 표시된 값은 예시입니다.

Keycloak의 공개 호스트 이름을 안정적으로 유지하십시오. TLS 연결이 리버스 프록시에서 종료되는 경우, 해당 리버스 프록시의 공개 호스트 이름과 신뢰할 수 있는 프록시 헤더를 구성해야 합니다. 그렇지 않으면 리디렉션 시 잘못된 스키마나 호스트가 사용될 수 있습니다. Keycloak 리버스 프록시 관련 지침을 따르십시오 . Keycloak을 공개하기 전에 데모 관리자 자격 증명을 교체하십시오.

3. oCIS에서 동일한 발급기관과 고객을 지정하십시오.

다른 설정 및 비밀 키는 그대로 유지한 채, 배포 구성에서 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 배포에서 내장 공급자가 중지됩니다. 설정에서 해당 서비스를 의도적으로 사용하는 경우 이 옵션을 생략하십시오.

구성 편집기에는 OCIS_URL, OCIS_OIDC_ISSUER, PROXY_OIDC_REWRITE_WELLKNOWN 및 OCIS_EXCLUDE_RUN_SERVICES가 나열됩니다.
이러한 oCIS 설정은 인증을 Keycloak으로 연결하고 OIDC 검색을 외부 공급자에게 라우팅합니다.

배포의 일반적인 재시작 프로세스를 통해 변경 사항을 적용하세요. Docker Compose를 사용하는 경우, docker compose up -dcompose 디렉터리에서 명령어를 실행하여 변경된 서비스를 다시 생성한 다음 oCIS 로그를 검토하세요. 프로덕션 환경에서는 신뢰할 수 있는 TLS 인증서를 사용하세요. ownCloud 예제에서는 INSECURE=true로컬 자체 서명 인증서 옵션을 사용하고 있는데, 인터넷에 연결된 서버에서는 이 옵션을 제거하거나 false로 설정해야 합니다. ownCloud에서도 PROXY_OIDC_INSECURE프로덕션 환경에서는 이 옵션을 사용하지 말 것을 권장합니다.

4. oCIS가 사용자를 식별하는 방법을 결정합니다.

클레임은 `@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 Apache .htaccess 경고를 안전하게 제거하는 방법

ownCloud Apache .htaccess 경고를 안전하게 제거하는 방법

ownCloud의 웹 루트에만 AllowOverride All을 설정하고, 활성 Apache vhost를 확인한 다음, 안전하게 페이지를 새로 고침하여 .htaccess 규칙을 복원하십시오.

ownCloud Enterprise 감사 설정 및 로그 검증

ownCloud의 엔터프라이즈 감사 앱을 활성화하고, admin_audit 이벤트를 보호된 로그 파일로 라우팅하고, 실제 사용자 작업이 기록되는지 확인하십시오.

OIDC를 사용하여 ownCloud Infinite Scale을 Keycloak에 연결합니다.

OIDC를 사용하여 ownCloud Infinite Scale을 Keycloak에 연결합니다.

Keycloak의 영역 발급자, 웹 클라이언트 및 사용자 클레임을 정렬하여 ownCloud Infinite Scale이 웹 및 모바일 클라이언트 전반에서 사용자를 안정적으로 로그인할 수 있도록 합니다.

ownCloud 파일의 지분 손실 없이 새 소유자에게 파일을 이전하세요

ownCloud의 occ 명령어를 사용하여 소유 파일과 공유 폴더를 이전하고, 어떤 파일이 남는지 확인하고, 이전 계정을 삭제하기 전에 액세스 권한을 확인하세요.

인덱스를 안전하게 관리하여 ownCloud 10 쿼리 속도를 향상시키세요

ownCloud 10 데이터베이스 인덱스에 주의가 필요한 시점, 지원되는 스키마 업데이트를 안전하게 적용하는 방법, 그리고 쿼리 튜닝이나 데이터베이스 변경이 더 나은 해결책인 경우를 알아보세요.

Linux 마운트 없이 ownCloud에서 SMB/CIFS 공유를 마운트하는 방법

Windows 또는 Samba 네트워크 공유를 외부 저장소를 통해 ownCloud에 연결하고, 자격 증명을 확인하고, 액세스할 수 없는 폴더 문제를 안전하게 해결하세요.

occ 명령어를 사용하여 ownCloud 파일 버전을 안전하게 삭제하세요

occ 명령어를 사용하여 ownCloud 파일 버전을 안전하게 삭제하세요

계정 하나 또는 모든 사용자에 대해 저장된 모든 ownCloud Server Classic 파일 버전을 삭제하고, 전체 삭제와 보존 기간 만료를 구분할 수 있습니다.

ownCloud 모바일 연결이 거부되었나요? URL 및 연결 가능성을 확인하세요.

ownCloud 모바일 연결이 거부되었나요? URL 및 연결 가능성을 확인하세요.

ownCloud 모바일 연결 거부 문제를 추적하려면 서버 URL, 휴대폰 네트워크, HTTPS 엔드포인트 및 서버 로그를 올바른 순서대로 확인하십시오.

Systemd 타이머를 사용하여 ownCloud 백그라운드 작업을 안정적으로 실행하세요

온디맨드 작업 실행을 ownCloud에서 지원하는 occ system:cron 명령을 15분마다 실행하는 systemd 타이머로 대체합니다.

손상된 경로를 찾아 ownCloud WebDAV 동기화를 복원하세요

Apache, Nginx 또는 리버스 프록시를 통해 WebDAV 요청을 추적한 다음 인증된 PROPFIND 테스트를 사용하여 ownCloud 동기화가 제대로 작동하는지 확인하십시오.