10.4. Docker 레지스트리 v2 인증
Docker 인증은 기본적으로 비활성화되어 있습니다. Docker 인증을 활성화하려면 프로파일을 참조하십시오.
Docker Registry V2 인증 은 Docker 레지스트리에 대해 사용자를 인증하는 OIDC와 유사한 프로토콜입니다. Red Hat Single Sign-On의 이 프로토콜을 구현하면 Docker 클라이언트에서 Red Hat Single Sign-On 인증 서버를 사용하여 레지스트리에 인증할 수 있습니다. 이 프로토콜은 표준 토큰 및 서명 메커니즘을 사용하지만 실제 OIDC 구현과는 다릅니다. 요청 및 응답에 매우 구체적인 JSON 포멧을 사용하고 리포지토리 이름과 권한을 OAuth 범위 메커니즘에 매핑하여 구분합니다.
10.4.1. Docker 인증 흐름 링크 복사링크가 클립보드에 복사되었습니다!
인증 흐름은 Docker API 설명서에 설명되어 있습니다. 다음은 Red Hat Single Sign-On 인증 서버의 관점에서 요약한 것입니다.
-
docker 로그인을수행합니다. - Docker 클라이언트는 Docker 레지스트리의 리소스를 요청합니다. 리소스가 보호되고 요청에 인증 토큰이 없는 경우 Docker 레지스트리 서버는 필요한 권한과 권한 부여 서버의 위치에 대한 일부 정보와 함께 401 HTTP 메시지로 응답합니다.
-
Docker 클라이언트는 Docker 레지스트리에서 401 HTTP 메시지를 기반으로 인증 요청을 구성합니다. 클라이언트는 로컬 캐시된 자격 증명(
Docker login명령에서)을 Red Hat Single Sign-On 인증 서버에 대한 HTTP 기본 인증 요청의 일부로 사용합니다. - Red Hat Single Sign-On 인증 서버에서 사용자를 인증하고 OAuth 스타일 전달자 토큰이 포함된 JSON 본문을 반환합니다.
- Docker 클라이언트는 JSON 응답에서 전달자 토큰을 수신하여 권한 부여 헤더에서 이를 사용하여 보호된 리소스를 요청합니다.
- Docker 레지스트리는 Red Hat Single Sign-On 서버에서 토큰이 있는 보호 리소스에 대한 새 요청을 받습니다. 레지스트리는 토큰을 검증하고 요청된 리소스(해당하는 경우)에 대한 액세스 권한을 부여합니다.
Red Hat Single Sign-On은 Docker 프로토콜을 사용한 성공적인 인증 후 브라우저 SSO 세션을 생성하지 않습니다. 브라우저 SSO 세션은 토큰을 새로 고치거나 Red Hat Single Sign-On 서버에서 토큰 또는 세션 상태를 가져올 수 없으므로 브라우저 SSO 세션이 필요하지 않으므로 Docker 프로토콜을 사용하지 않습니다. 자세한 내용은 임시 세션 섹션을 참조하십시오.
10.4.2. Red Hat Single Sign-On Docker Registry v2 Authentication Server URI 끝점 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Single Sign-On에는 모든 Docker auth v2 요청에 대해 하나의 끝점이 있습니다.
http(s)://authserver.host/auth/realms/{realm-name}/protocol/docker-v2