인증
호드는 다음과 같은 3가지 사용자 인증 모드를 제공합니다.
- 익명
- OpenID Connect
- 기본 사용자 계정
AuthMethod 세팅을 통해 모드를 환경설정할 수 있습니다.
익명
호드는 시작에 앞서 시연하기 위해 인증이 기본적으로 비활성화되어 있습니다.
프로덕션 디플로이를 위해 OpenID Connect나 기본 사용자 계정을 사용하여 적절한 인증을 환경설정해야 합니다.
OpenID Connect
호드는 인증을 위해 외부 OpenID Connect(OIDC) 제공자를 사용할 수 있습니다. OIDC 제공자 환경설정에 대한 내용은 서버 디플로이 문서를 참고하세요. OIDC는 Google Workspaces, Okt 또는 Azure AD/Entra ID와 같은 중앙 인증 제공자를 이미 사용 중인 스튜디오에 권장됩니다.
OIDC 제공자를 환경설정한 후 브라우저의 http://{{ server_url }}/account 페이지로 이동하여 사용자의 클레임을 볼 수 있습니다.
기본 사용자 계정
소규모 스튜디오이거나 OpenID Connect 방법을 사용할 필요가 없는 경우, 호드의 기본 사용자 계정을 선택할 수 있습니다. 이러한 계정은 호드에서 자체적으로 관리하며 로컬 데이터베이스에 저장됩니다. 서버가 익명 모드인 상태에서 웹 UI(우측 상단의 서버 드롭다운)를 통해 사용자 계정을 구성할 수 있습니다. 적어도 한 명의 관리 사용자로 계정을 환경설정하고 AuthMethod 를 Horde 로 설정합니다.
액세스 컨트롤 목록
액세스 컨트롤 목록(Access Control Lists, ACL) 은 호드의 엔티티 액세스를 제어합니다. 목록의 각 항목을 통해 특정 OIDC 클레임이 있는 사용자는 특정 액션을 수행할 수 있습니다. 각 클레임은 로그인 시 호드에서 합성하거나 OIDC 제공자에서 반환한 키/값 쌍입니다. 사용할 수 있는 액션의 전체 목록은 ACL 액션을 참고하세요.
사용자가 쿼리하거나 조작할 수 있는 많은 오브젝트에는 다른 ACL 제어 오브젝트의 계층구조 내에 어태치된 ACL이 있습니다. 예를 들어 스트림은 프로젝트의 일부입니다. 사용자는 해당 특정 Perforce 스트림(해당 스트림의 환경설정에 있는 ACL을 통해), 프로젝트 내 모든 스트림(프로젝트 환경설정에 있는 ACL을 통해) 또는 서버의 모든 스트림(글로벌 환경설정에 있는 ACL을 통해)을 볼 권한을 부여받을 수 있습니다.
관리자
관리자인 사용자에게는 환경설정된 ACL에 관계없이 모든 작업을 수행할 권한이 부여됩니다. 사용자는 AdminClaimType 및 AdminClaimValue 프로퍼티를 통해 서버의 Server.json 파일에서 환경설정된 특정한 클레임을 포함하는 경우 관리자 상태가 부여됩니다.
합성 클레임
호드는 OIDC 제공자를 통해 반환되는 환경설정된 클레임에 여러 클레임을 추가합니다.
| 이름 | 설명 |
|---|---|
http://epicgames.com/ue/horde/user |
사용자의 실제 이름입니다. 이는 OidcClaimNameMapping 서버 세팅에 따라 OIDC 제공자에 의해 반환된 클레임에서 추출합니다. |
http://epicgames.com/ue/horde/user-id-v3 |
사용자의 식별자입니다. 호드에서 할당한 24자의 고유 ID입니다. |
http://epicgames.com/ue/horde/agent |
에이전트 ID가 되는 값으로 특정 에이전트를 식별합니다. |
http://epicgames.com/ue/horde/perforce-user |
사용자에 해당하는 Perforce 사용자 이름을 제공합니다. |
예시
다음 환경설정 프래그먼트는 ACL을 선언합니다.
Tim Sweeney라는 이름의 사용자에게ViewJob및CreateJob권한을 부여합니다.-
app-horde-users라는 역할 클레임이 있는 모든 사용자에게ViewJob권한을 부여합니다."acl": { "entries": [ { "claim": { "type": "http://epicgames.com/ue/horde/user", "value": "Tim Sweeney" }, "actions": [ "ViewJob", "CreateJob" ] }, { "claim": { "type": "http://schemas.microsoft.com/ws/2008/06/identity/claims/role", "value": "app-horde-viewers" }, "actions": [ "ViewJob" ] } ], "inherit": true }