Skip to content

인증

서버와 상호 작용하려면 CLI에서 무기명 인증을 사용하여 요청을 인증해야 합니다. CLI는 사용자 인증, 계정 인증 또는 OIDC 토큰 사용을 지원합니다.

사용자로서#

컴퓨터에서 로컬로 CLI를 사용할 때는 사용자로 인증하는 것이 좋습니다. 사용자로 인증하려면 다음 명령을 실행해야 합니다:

bash
tuist auth login

이 명령은 웹 기반 인증 절차를 안내합니다. 인증이 완료되면 CLI는 수명이 긴 새로 고침 토큰과 수명이 짧은 접근 토큰을 ~/.config/tuist/credentials 에 저장합니다. 디렉터리의 각 파일은 인증한 도메인을 나타내며, 기본적으로 tuist.dev.json 입니다. 해당 디렉터리에 저장된 정보는 민감한 정보이므로 안전하게 보관하십시오.

CLI는 서버에 요청할 때 자동으로 자격 증명을 조회합니다. 액세스 토큰이 만료된 경우 CLI는 새로 고침 토큰을 사용하여 새 액세스 토큰을 얻습니다.

OIDC 토큰#

OIDC(OpenID Connect)를 지원하는 CI 환경의 경우, 사용자가 장기 비밀 번호를 관리할 필요 없이 자동으로 인증할 수 있습니다. 지원되는 CI 환경에서 실행할 때 CLI는 자동으로 OIDC 토큰 공급자를 감지하고 CI가 제공한 토큰을 Tuist 액세스 토큰으로 교환합니다.

지원되는 CI 제공업체#

  • GitHub 작업
  • CircleCI
  • Bitrise

OIDC 인증 설정#

  1. 저장소를 Tuist에 연결: GitHub 통합 가이드에 따라 GitHub 저장소를 Tuist 프로젝트에 연결합니다.

  2. **튜이스트 인증 로그인** 을 실행합니다: CI 워크플로우에서 인증이 필요한 명령 전에 tuist auth login` 을 실행하세요. CLI는 자동으로 CI 환경을 감지하고 OIDC를 사용하여 인증합니다.

공급자별 구성 예시는 연속 연동 가이드를 참조하세요.

OIDC 토큰 범위#

OIDC 토큰에는 리포지토리에 연결된 모든 프로젝트에 대한 액세스 권한을 제공하는 ci 범위 그룹이 부여됩니다. ci 범위에 포함되는 항목에 대한 자세한 내용은 범위 그룹을 참조하세요.

Security Benefits

OIDC 인증이 수명이 긴 토큰보다 더 안전한 이유는 다음과 같습니다:

  • 회전하거나 관리할 비밀이 없습니다.
  • 토큰은 수명이 짧고 개별 워크플로 실행으로 범위가 제한됩니다.
  • 인증은 리포지토리 ID에 연결됩니다.

계정 토큰#

OIDC를 지원하지 않는 CI 환경이나 권한을 세밀하게 제어해야 하는 경우에는 계정 토큰을 사용할 수 있습니다. 계정 토큰을 사용하면 토큰이 액세스할 수 있는 범위와 프로젝트를 정확히 지정할 수 있습니다.

계정 토큰 만들기#

bash
tuist account tokens create my-account \
--scopes project:cache:read project:cache:write \
--name ci-cache-token \
--expires 1y

이 명령은 다음 옵션을 허용합니다:

옵션 설명
--범위 필수입니다. 토큰을 부여할 범위를 쉼표로 구분한 목록입니다.
--이름 필수. 토큰의 고유 식별자(1~32자, 영숫자, 하이픈 및 밑줄만 해당).
--만료 선택 사항입니다. 토큰이 만료되는 시기. 30d (일), 6m (개월) 또는 1y (년)과 같은 형식을 사용합니다. 지정하지 않으면 토큰이 만료되지 않습니다.
--프로젝트 토큰을 특정 프로젝트 핸들로 제한합니다. 지정하지 않으면 토큰이 모든 프로젝트에 액세스할 수 있습니다.

사용 가능한 범위#

범위 설명
계정:멤버:읽기 계정 구성원 읽기
계정:멤버:쓰기 계정 구성원 관리
계정:레지스트리:읽기 Swift 패키지 레지스트리에서 읽기
계정:레지스트리:쓰기 Swift 패키지 레지스트리에 게시
프로젝트:미리보기:읽기 미리 보기 다운로드
프로젝트:미리보기:쓰기 미리 보기 업로드
프로젝트:관리자:읽기 프로젝트 설정 읽기
프로젝트:관리자:쓰기 프로젝트 설정 관리
프로젝트:캐시:읽기 캐시된 바이너리 다운로드
프로젝트:캐시:쓰기 캐시된 바이너리 업로드
프로젝트:번들:읽기 번들 보기
프로젝트:번들:쓰기 번들 업로드
프로젝트:테스트:읽기 테스트 결과 읽기
프로젝트:테스트:쓰기 테스트 결과 업로드
프로젝트:빌드:읽기 빌드 분석 읽기
프로젝트:빌드:쓰기 빌드 분석 업로드
프로젝트:실행:읽기 읽기 명령 실행
프로젝트:실행:쓰기 명령 실행 만들기 및 업데이트

범위 그룹#

범위 그룹은 하나의 식별자로 여러 개의 관련 범위를 편리하게 부여할 수 있는 방법을 제공합니다. 범위 그룹을 사용하면 해당 그룹에 포함된 모든 개별 범위를 포함하도록 자동으로 확장됩니다.

범위 그룹 포함된 범위
ci 프로젝트:캐시:쓰기, 프로젝트:미리보기:쓰기, 프로젝트:번들:쓰기, 프로젝트:테스트:쓰기, 프로젝트:빌드:쓰기, 프로젝트:실행:쓰기

지속적 통합#

OIDC를 지원하지 않는 CI 환경의 경우 ci 범위 그룹으로 계정 토큰을 만들어 CI 워크플로우를 인증할 수 있습니다:

bash
tuist account tokens create my-account --scopes ci --name ci

이렇게 하면 일반적인 CI 작업(캐시, 미리보기, 번들, 테스트, 빌드 및 실행)에 필요한 모든 범위가 포함된 토큰이 생성됩니다. 생성된 토큰을 CI 환경에 비밀로 저장하고 TUIST_TOKEN 환경 변수로 설정합니다.

계정 토큰 관리#

계정의 모든 토큰을 나열하려면 다음과 같이 하세요:

bash
tuist account tokens list my-account

토큰을 이름으로 해지하려면 다음과 같이 하세요:

bash
tuist account tokens revoke my-account ci-cache-token

계정 토큰 사용#

계정 토큰은 환경 변수 TUIST_TOKEN 으로 정의해야 합니다:

bash
export TUIST_TOKEN=your-account-token
When To Use Account Tokens

필요할 때 계정 토큰을 사용하세요:

  • OIDC를 지원하지 않는 CI 환경에서의 인증
  • 토큰이 수행할 수 있는 작업에 대한 세분화된 제어
  • 계정 내에서 여러 프로젝트에 액세스할 수 있는 토큰입니다.
  • 자동으로 만료되는 시간 제한 토큰