dfx identity
コマンドを実行したり、Internet Computer プラットフォーム やローカルの Canister 実行環境と通信するために使用するユーザー ID を管理するには、dfx identity
コマンドとサブコマンド、フラグを使用します。
複数のユーザー ID を作成することで、ユーザーベースのアクセス制御をテストすることができます。
dfx identity
コマンドの基本的な構文は以下の通りです:
dfx identity [subcommand] [flag]
指定する dfx identity
サブコマンドによっては、追加の引数、オプション、フラグが適用されたり、要求されたりする場合があります。
特定の dfx identity
サブコマンドの使用情報を表示するには、そのサブコマンドと --help
フラグを指定します。
例えば、dfx identity new
の使用情報を見るには、以下のコマンドを実行します:
dfx identity new --help
dfx identity
コマンドの使用方法を説明する参考情報と例については、適切なコマンドを選択してください。
コマンド | 説明 |
---|---|
現在の(ユーザー) ID に関連付けられた Principal のテキストタイプ表現を表示します。 |
|
ユーザー IDに関連付けたウォレットの Canister ID を表示します。 |
|
|
この使用法のメッセージまたは指定されたサブコマンドのヘルプを表示します。 |
Principal (ID) の鍵情報またはセキュリティ証明書を含む PEM ファイルをインポートして、新しいユーザー ID を作成します。 |
|
既存の(ユーザー)ID リストを表示します。 |
|
新しい(ユーザー)ID を作成します。 |
|
既存の(ユーザー)ID を削除します。 |
|
既存の(ユーザー)ID の名前を変更します。 |
|
現在の(ユーザー ID に対応する) Principal ID に使用するウォレット Canister ID を設定します。 |
|
利用する(ユーザー)ID を指定します。 |
|
現在のユーザー ID コンテクストの名前を表示します。 |
デフォルトの ID を作成する
初めて dfx canister create
コマンドを実行して(ユーザー)ID を登録するとき、公開鍵と秘密鍵のペアの認証情報が default
ユーザー ID として使用されます。
default
ユーザーの認証情報は $HOME/.dfinity/identity/creds.pem
から $HOME/.config/dfx/identity/default/identity.pem
へ移行されます。
その後、dfx identity new
を使用して新しいユーザー ID を作成し、それらの ID の認証情報を $HOME/.config/dfx/identity/<identity_name>/identity.pem
ファイルに保存することができます。
例えば、以下のコマンドを実行して ic_admin
という名前の ID を作成することができます:
dfx identity new ic_admin
このコマンドは ic_admin
ユーザ ID 用の秘密鍵を ~/.config/dfx/identity/ic_admin/identity.pem
ファイルに追加します。
dfx identity get-principal
現在のユーザー ID コンテクストに関連付けられた Principal のテキストタイプ表現を表示するには、dfx identity get-principal
コマンドを使用します。
もし、ユーザー ID を作成していない場合は、このコマンドを使用して default
ユーザーの Principal を表示することができます。
Principal のテキスト表現は、ロールベースの認証シナリオを確立してテストするのに便利です。
dfx identity get-wallet
現在のユーザー ID の Principal に関連付けられたウォレットの Canister ID を表示するには、dfx identity get-wallet
コマンドを使用します。
このコマンドを実行するには、Internet Computer プラットフォーム またはローカルの Canister 実行環境に接続されている必要があることに注意してください。
さらに、このコマンドを実行するには、プロジェクト・ディレクトリにいる必要があります。
例えば、プロジェクト名が hello_world
の場合、dfx identity get-wallet
コマンドを実行するには、現在の作業ディレクトリが hello_world
トップレベルのプロジェクトディレクトリかそのサブディレクトリのいずれかになる必要があります。
dfx identity import
dfx identity list
利用可能なユーザー ID のリストを表示するには、dfx identity list
コマンドを使用します。
このコマンドを実行すると、リストには現在アクティブなユーザーコンテクストを示すアスタリスク (*) が表示されます。
ID はグローバルであることに注意してください。特定のプロジェクト・コンテクストに限定されるものではありません。
したがって、dfx identity list
コマンドでリストアップされた ID はどのプロジェクトでも使用することができます。
フラグ
dfx identity list
コマンドでは、以下のオプションフラグを使用することができます。
フラグ | 説明 |
---|---|
|
利用情報を表示します。 |
|
バージョン情報を表示します。 |
例
dfx identity list
コマンドを使用すると、現在利用可能なすべての ID をリストアップし、どの ID が dfx
コマンドを実行する際に現在アクティブなユーザーコンテクストとして使用されているかを判断することができます。
例えば、以下のコマンドを実行すると、利用可能な ID をリストアップすることができます:
dfx identity list
このコマンドは、次のように見つかった ID の一覧を表示します:
alice_auth
anonymous
bob_standard *
default
ic_admin
この例では、bob_standard
ID が現在アクティブなユーザーコンテクストとなります。
このコマンドを実行してアクティブなユーザーを決定した後、追加で実行する dfx
コマンドは bob_standard
ID に関連付けられた Principal を使用して実行されることになります。
dfx identity new
新しいユーザー ID を追加するには、dfx identity new
コマンドを使用します。
追加した ID はグローバルなものであることに注意する必要があります。これらは特定のプロジェクトのコンテクストに限定されるものではありません。
したがって、 dfx identity new
コマンドで追加した ID はどのプロジェクトでも使用することができます。
フラグ
dfx identity new
コマンドでは、以下のオプションフラグを使用することができます。
フラグ | 説明 |
---|---|
|
利用情報を表示します。 |
|
バージョン情報を表示します。 |
例
その後、dfx identity new
を使用して新しいユーザー ID を作成し、それらの ID の認証情報を $HOME/.config/dfx/identity/<identity_name>/identity.pem
ファイルに保存することができます。
例えば、以下のコマンドを実行して ic_admin
という名前の ID を作成することができます:
dfx identity new ic_admin
このコマンドは ic_admin
ユーザー ID 用の秘密鍵を ~/.config/dfx/identity/ic_admin/identity.pem
ファイル内に追加します。
新しい ID 用の秘密鍵を追加した後、コマンドは ID が作成されたことを確認するメッセージを表示します:
Creating identity: "ic_admin". Created identity: "ic_admin".
dfx identity remove
既存のユーザー ID を削除するには、dfx identity remove
コマンドを使用します。
あなたが追加した ID はグローバルなものであることに注意してください。これらは特定のプロジェクトのコンテクストに限定されるものではありません。
したがって、dfx identity remove
コマンドを使用して削除した ID は、どのプロジェクトでも使用することができなくなります。
フラグ
dfx identity remove
コマンドでは、以下のオプションフラグを使用することができます。
フラグ | 説明 |
---|---|
|
利用情報を表示します。 |
|
バージョン情報を表示します。 |
引数
dfx identity remove
コマンドには、以下の引数を指定する必要があります。
引数 | 説明 |
---|---|
|
削除する ID の名前を指定します。 この引数は必須です。 |
例
dfx identity remove
コマンドを使用すると、default
ユーザー ID を含む、以前に作成された ID を削除することができます。
例えば、名前付きユーザー ID を追加していて、default
ユーザー ID を削除したい場合、以下のコマンドを実行します:
dfx identity remove default
コマンドは、ID が削除されたことの確認を表示します:
Removing identity "default". Removed identity "default".
Default
ID は、置き換えるために他の ID を作成した場合、削除することができますが、常に少なくとも1つの ID が利用可能である必要があります。
最後に残ったユーザーコンテクストを削除しようとすると、 dfx identity remove
コマンドは次のようなエラーを表示します:
Identity error: Cannot delete the default identity
dfx identity rename
既存のユーザー ID の名前を変更するには、dfx identity rename
コマンドを使用します。
あなたが追加した ID はグローバルなものであることに注意してください。これらは特定のプロジェクトのコンテクストに限定されるものではありません。
したがって、dfx identity rename
コマンドを使用して名前を変更した ID は、どのプロジェクトでも新しい名前で利用することができます。
フラグ
dfx identity rename
コマンドでは、以下のオプションフラグを使用することができます。
フラグ | 説明 |
---|---|
|
利用情報を表示します。 |
|
バージョン情報を表示します。 |
dfx identity set-wallet
ユーザー ID に使用するウォレット Canister ID を指定するには、dfx identity set-wallet
コマンドを使用します。
フラグ
dfx identity set-wallet
コマンドでは、以下のオプションフラグを使用することができます。
フラグ | 説明 |
---|---|
|
指定した Canister が有効なウォレット Canister であることの検証をスキップします。 このオプションは、ローカルで Internet Computer に接続している場合にのみ有効です。 |
|
利用情報を表示します。 |
|
バージョン情報を表示します。 |
例
ユーザー ID に複数の Principal を使用している場合、複数のウォレット Canister ID にアクセスすることができます。
dfx identity set-wallet
コマンドを使用すると、与えられた ID に使用するウォレット Canister の ID を指定することができます。
例えば、ウォレット Canister の ID を環境変数に保存し、次のように実行して dfx identity set-wallet
コマンドを呼び出し、追加の操作にそのウォレット Canister を使用することができます:
export WALLET_CANISTER_ID=$(dfx identity get-wallet) dfx identity --network=https://192.168.74.4 set-wallet --canister-name ${WALLET_CANISTER_ID}
dfx identity use
dfx identity use
コマンドを使用して、アクティブにしたいユーザー ID を指定します。
使用可能な ID はグローバルなものであることに注意してください。特定のプロジェクトのコンテクストに限定されるものではありません。
したがって、以前に作成した ID はどのプロジェクトでも使用することができます。
フラグ
dfx identity use
コマンドでは、以下のオプションフラグを使用することができます。
フラグ | 説明 |
---|---|
|
利用情報を表示します。 |
|
バージョン情報を表示します。 |