Version: Unity 6.0 (6000.0)
言語 : 日本語
Use a scoped registry in your project
Host a scoped registry for your organization

スコープ付きレジストリ認証

組織によっては、アクセスに認証を必要とする非公開のパッケージレジストリで、所有するパッケージをホストしている場合があります。このような組織の従業員やユーザーの場合、npm 認証を使用してスコープ付きレジストリを設定する必要があります。設定を行うには、npm 認証トークンを取得し、そのトークンをユーザー設定ファイルに追加します。

1) npm の認証トークンを取得

npm の認証トークンを作成してアクセスする手順は、レジストリプロバイダーごとに異なります。例えば、JFrog の Artifactory リポジトリマネージャは、npm からの認証トークン生成に、別の手順を使用します。これは典型的な手順の一例ですが、スコープ付きレジストリの場合は、特定のパッケージレジストリプロバイダが推奨する手順に従う必要があります。

認証トークンを npm から取得するには、以下を行います。

  1. npm をローカルコンピュータにインストールします。

  2. 端末から以下のコマンドを入力して、レジストリにログインします。

    $ npm login --registry <registry url>

  3. 生成された .npmrc ファイルを見つけて開きます。

  4. _authToken または _auth エントリーのいずれかを見つけて、その値をコピーします (以下の例を参照)。

    レジストリ次第で、トークン文字列は、グローバルに一意の識別子 (GUID)、トークン、独自形式の文字列のいずれかとなります。

.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 ユーザー設定ファイルに格納します。この情報を設定ファイルに保存した後に、Package Manager によって、ファイルの各レジストリに対するすべてのリクエストに、認証情報を提供します。

以下の手順で、認証情報をユーザーコンフィギュレーションファイルに加えます。

  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 任意: レジストリに登録されているユーザーの E メールアドレスと一致する、ユーザーの E メールアドレス。
alwaysAuth 任意: パッケージのメタデータと tarballs が同じサーバーにない場合、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

基本的な認証情報の設定

これらのステップでは、例として Azure DevOps を使用しますが、このプロセスは個人アクセストークン (PAT) を使用するすべてのプラットフォームで類似しています。

始める前に、Node.js がまだインストールされていない場合はインストールします。

  1. Azure DevOps PAT (個人アクセストークン) を取得し、次のステップに備えます。PAT を再生成する必要がある場合は、Azure DevOps (https://dev.azure.com) にログインし、User settingsPersonal 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 と入力し、以下のように置き換えます。

    • Azure DevOpsアカウントに関連付けられている E メールの email と、.upmconfig.toml ファイルで指定された E メール
    • 前のステップで取得した PAT 付きの PAT
  4. コマンドは Base64 で暗号化された文字列を返します。その文字列をコピーし、.upmconfig.toml ファイルにある _auth キーの値として割り当てます。

基本的な認証を使用する例

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

追加リソース

Use a scoped registry in your project
Host a scoped registry for your organization