
【ICP】UbuntuでInternet Identityを動かす方法
インターネットコンピューターの魅力の一つInternet Identityをローカルで動かしたい人向けの記事です。
実際にUbuntu 20.04を使ってローカル環境でInternet Identityを動かしてみたので、本記事では、その手順をまとめてみました。
なお、dfxは0.8.4、0.9.3の両方で動作確認しております。
Internet Identityはインターネットコンピューターで無料で使用できる認証プロバイダーです。アプリを作るときに、アカウントを簡単に識別できるようになるので、興味のある方はご覧ください。
目次
環境の確認
前提となる環境を最初に確認します。
- ubuntu 20.04
- dfx 0.8.4 or 0.9.3
UbuntuでInternet Identityを動かす方法
最初に全体像を説明します。Internet IdentityがRustで書かれていて、dfxをインストールしただけでは動かすことができません。
- Rustのインストール・設定
- Rustのライブラリ(クレート)を使うためのパッケージ準備
そこでRustをまずインストールします。続いてic-cdk-optimizerというRustのライブラリをビルドするのですが、まだ環境設定が足りていないのでビルドするための追加パッケージをUbuntuにインストールしていきます。
そして、Rust周りの設定が完了したら、続いて起動方法を紹介します。
- ローカルICへのデプロイ
- フロントエンドの起動
全体像は以上です。割とまっさらな状態からinternet Identitiyをうごかしているので事前準備は不要な方は適宜手順を省略ください。
それではみていきましょう。
Rustのインストール・設定
汎用ビルドツールインストール
Rustを使うためにgccを追加します。すでにgccがある方は飛ばしてください。
sudo apt update
sudo apt install build-essential
Rustインストール
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
インストール確認
source ~/.profile
rustc --version
WebAssemblyにコンパイルするための設定
インターネットコンピューターではWebAssemblyを動かすので、WebAssemblyにコンパイルできるようにしておきます。
rustup target add wasm32-unknown-unknown
設定済みかどうかはこれで確認できます。
rustup target list

installedとなっていればOKです。
ic-cdk-optimizerを使うためのパッケージ準備
Internet Identityはic-cdk-optimizerというライブラリ(crate)を使用するのですが、このライブラリを使用するためにさらに追加のインストールとしてlibssl-devとcmakeをいれていきます。
libssl-devのインストール
OpenSSLの一部開発機能を使います。
sudo apt install libssl-dev
cmakeをインストール
cd /tmp
wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0.tar.gz
tar -zxvf cmake-3.20.0.tar.gz
cd cmake-3.20.0
sudo ./bootstrap
sudo make
cmake --version
Internet Idenitityを動かす手順
Internet Idenitityのクローン
git clone https://github.com/dfinity/internet-identity.git
ローカルICネットの開始
cd internet-identity
dfx start
Internet Identityの展開
II_FETCH_ROOT_KEY=1 dfx deploy --no-wallet --argument '(null)'
ic-cdk-optimizeのエラーが発生する場合の対処法
deployコマンド実行時に、次のようなエラーメッセージが表示されているかもしれません。
ic-cdk-optimizer version 0.3.1 is needed, please run the following command:
エラーメッセージで一緒にでてきているcargoコマンドを実行して指定されたバージョンを入れます。
cargo install ic-cdk-optimizer --version 0.3.1
バージョンは今後は変わる可能性があるので、表示された指示に従います。なお、「ic-cdk-optimizer version」以外がでるなら、事前準備の手順をご確認ください。
Webページへのアクセス確認

それでは展開したInternet Identityにアクセスしてみます。開発環境では画面上部にメッセージが表示されます。
ローカルICのInternet Identityに接続
まずはキャニスターのIDを確認します。
dfx canister id internet_identity
取得したIDを使って次のURLにアクセスします。
http://キャニスターID.localhost:8000/
もしくは、
http://localhost:8000/?canisterId=キャニスターID
でアクセス可能です。
フロントだけnpmで動かして確認
キャニスターIDを使ってアクセスする方法では、環境をクリーンにしたときにIDが変更されてしまうこともあるので、npmでフロントだけ立ち上げるのもありです。
CANISTER_ID=$(dfx canister id internet_identity) npm start
デフォルトのポートで立ち上がるなら
http://localhost:8080/
でアクセス可能です。
Internet Identityの使い方
本番環境での使い方ですが、ローカル環境でも同じです。
>>【Internet Identity】 Internet Computerのアカウントを作ろう
おわりに
ローカル環境でInternet Identityを動かす方法は以上です。インターネットコンピューターの魅力のひとつはInternet Identityではないでしょうか。だれでも簡単に生体認証などデバイスを元にした認証が可能になります。
今後もInternet Identityを使ったアプリが増えていくことでしょう。
では。