Version: 2023.2
언어: 한국어
네트워크 문제 해결
전역 캐시 커스터마이즈

범위 지정 레지스트리 인증

일부 조직은 액세스를 위해 인증이 필요한 프라이빗 패키지 레지스트리에 자체 패키지를 호스팅합니다. 해당 조직 중 하나의 직원 또는 고객인 경우 npm 인증을 사용하여 범위 지정 레지스트리를 설정해야 합니다. 이렇게 설정하려면 npm 인증 토큰을 가져온 후 사용자 설정 파일에 해당 토큰을 추가하십시오.

1) npm 인증 토큰 가져오기

npm 인증 토큰을 생성하고 액세스하는 프로세스는 각 레지스트리 공급자마다 다릅니다. 예를 들어 JFrog의 Artifactory 저장소 관리자는 다른 절차를 사용하여 npm에서 인증 토큰을 생성합니다. 이는 일반적인 절차의 예시지만, 범위가 지정된 레지스트리에 대해 특정 패키지 레지스트리 공급자가 권장하는 프로세스를 따라야 합니다.

npm에서 인증 토큰을 페치하려면 다음 단계를 따르십시오.

  1. 컴퓨터에 로컬로 npm을 설치합니다.

  2. 터미널에서 다음 커맨드를 입력하여 레지스트리에 로그인합니다.

    $ npm login --registry <registry url>

  3. 생성된 .npmrc 파일을 찾아 엽니다.

  4. _authToken 또는 _auth 엔트리를 찾고 값을 복사합니다(아래 예시 참조).

    레지스트리에 따라 토큰 문자열은 GUID(Globally Unique Identifier), 토큰 또는 전용 포맷 문자열일 수 있습니다.

.npmrc 파일의 예

다음은 _authToken 속성이 들어 있는 .npmrc 파일의 예입니다.

registry=https://example.com:1234/mylocation/
//example.com:1234/mylocation/:_authToken=<AUTH TOKEN>

다음은 _auth 속성이 들어 있는 .npmrc 파일의 예입니다.

registry=https://example.com:1234/mylocation
_auth=<AUTH TOKEN>
email=<EMAIL>
always-auth=true

2) 인증 정보 설정

npmAuth 설정 스키마를 사용하여 인증이 필요한 각 범위 지정 레지스트리에 대한 토큰 정보를 .upmconfig.toml 사용자 설정 파일에 저장합니다. 이 정보를 설정 파일에 저장하면 패키지 관리자는 파일의 각 레지스트리에 대한 모든 요청에 대해 인증 정보를 제공합니다.

사용자 설정 파일에 인증 정보를 추가하려면 다음 지침을 따르십시오.

  1. .upmconfig.toml 사용자 설정 파일을 찾습니다. 파일이 없는 경우 빈 텍스트 파일을 생성합니다.

  2. Bearer(토큰 기반) 또는 Basic(Base64 암호화) 인증 메커니즘을 사용하는지에 따라 스키마를 사용하여 인증 정보를 포맷합니다.

[npmAuth."<REGISTRY URL>"]
<TOKEN-PROPERTY> = "<TOKEN-VALUE>"
email = "<EMAIL>"
alwaysAuth = <BOOLEAN>

다음 표에서는 설정 파일 값을 지정하는 방법을 설명합니다.

항목 설명
[npmAuth."<REGISTRY-URL>"] 필수. 레지스트리용 URL. 예를 들어 [npmAuth."https://example.com:8081/mylocation"]일 수 있습니다.
<TOKEN-PROPERTY> = "<TOKEN-VALUE>" 필수입니다. npm 레지스트리에서 생성된 인증 토큰입니다. 이는 GUID, 토큰 또는 전용 포맷 문자열일 수 있습니다. 예를 들어 token = "<AUTH TOKEN>"(Bearer) 또는 _auth = "<BASE64 TOKEN>"(Basic)일 수 있습니다.
email 선택 사항. 레지스트리의 사용자 이메일과 일치하는 사용자의 이메일 주소.
alwaysAuth 선택 사항입니다. 패키지 메타데이터 및 타르볼이 같은 서버에 있지 않은 경우 true로 설정합니다. 일반적으로 생성한 .npmrc 파일에서 값을 복사할 수 있습니다.

bearer 인증을 사용한 예시

[npmAuth."http://localhost:8081/myrepository/mylocation"]
token = "NpmToken.2348c7ea-6f86-3dbe-86b6-f257e86569a8"
alwaysAuth = true

[npmAuth."http://localhost:4873"]
token = "eaJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZWFsX2dyb3VwcyI6WyJwYXNjYWxsIl0sIm5hbWUiOiJwYXNjYWxsIiwiZ3JvdXBzIjpbIn"

[npmAuth."https://api.bintray.example/npm/mycompany/myregistry"]
token = "aGFzY2FsbDo4ZWIwNTM5NzBjNTI3OTIwYjQ4MDVkYzY2YWEzNmQxOTkyNDYzZjky"
email = "username@example.com"
alwaysAuth = true

basic 인증 정보 설정

이 단계에서는 Azure DevOps를 예시로 사용하지만, 프로세스는 PAT(개인용 액세스 토큰)를 사용하는 플랫폼과 유사합니다.

시작하기 전에, Node.js가 아직 설치되지 않은 경우 설치합니다.

  1. Azure DevOps PAT(개인용 액세스 토큰)를 가져오고 나중에 쓸 수 있도록 준비해 둡니다. PAT를 다시 생성해야 하는 경우 Azure DevOps(https://dev.azure.com)에 로그인하고 User settings > Personal access tokens로 이동합니다. PAT 사용에 대한 자세한 내용은 Microsoft 문서 개인용 액세스 토큰 사용을 참조하십시오.

  2. 커맨드 라인에서 다음 커맨드를 실행합니다.

    node -e "require('readline').createInterface({input:process.stdin,output:process.stdout,historySize:0}).question('Enter PAT> ',p => {b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit();})"
    
  3. Enter PAT 프롬프트에 email:PAT를 입력하여 다음을 대체합니다.

    • email을 Azure DevOps 계정과 연결된 이메일 및 .upmconfig.toml 파일에 지정된 이메일로 대체합니다.
    • PAT를 이전 단계의 PAT로 대체합니다.
  4. 커맨드는 Base64 암호화 문자열을 반환합니다. 해당 문자열을 복사하고 .upmconfig.toml 파일에 _auth 키 값으로 할당합니다.

basic 인증 사용 예시

[npmAuth."http://localhost:8081/myrepository/mylocation"]
_auth = "c19kaW5pcm9AaG90bWFpbC4jb206d3FzdzVhemU9Q=="
email = "username@example.com"
alwaysAuth = true

추가 리소스

네트워크 문제 해결
전역 캐시 커스터마이즈