本日は HoloLens2 の技術調査枠です。
HoloLens2でAzure Digital Twinのラーニングパスを試して実施記録を記事にします。
前提条件
前回記事の続きです。
bluebirdofoz.hatenablog.com
Azureリソースのアクセス設定
本項では Azure CLI を用いて Azure リソースのアクセス設定を行います。
Azure CLI のインストール手順は以下を参照ください。
bluebirdofoz.hatenablog.com
VisualStudioソリューションとARMテンプレートのダウンロード
ARMテンプレートはその1で取得した以下のプロジェクトに含まれています。
github.com
Azure CLI を使用して Azure にログインする
1. azuredeploy.bicep ファイルが含まれる以下のフォルダを開きます。
mslearn-mr-adt-in-unity-main\ARM-Template
2. フォルダの位置で WindowsPowerShell を起動します。
フォルダ上で Shift + 右クリックから[PowerShellウィンドウをここで開く]をクリックするか以下のコマンドで移動します。
cd (移動フォルダ)
3. Shellウィンドウで以下の az コマンドを実行して Azure にログインします。
本コマンドを実行するとブラウザウィンドウが生成され、認証を求めるメッセージが表示されます。
az login
PowerShellで変数を設定する
初めに projectname 変数を設定します。最大 14 文字までで全て小文字にし、特殊文字は使用できません。
この演習で作成される Azure リソースのベースとなる名前になります。
$projectname="myproj"
次にアプリ登録名を 14 文字以内で設定します。
これは HoloLens アプリのアプリケーション登録の名前になります。
$appreg="myappreg"
アプリ登録を作成する
次のコマンドを実行して、サービスプリンシパルを作成し、Azure リソースへのアクセスを構成します。
az ad sp create-for-rbac --name ${appreg} --skip-assignment > AppCredentials.txt
このコマンドからの出力は az スクリプトの実行ディレクトリ内の AppCredentials.txt テキストファイルに保存されます。
テレメトリシミュレーターを構成するには本ファイルを開いて資格情報を取得する必要があります。
このファイルには資格情報が含まれるため、長期間ファイルシステム上にこのファイルを残さないようにしてください。
サービスプリンシパルとは
Azure AD のサービスプリンシパルはサブスクリプション内の Azure リソースへのアクセスを提供します。
サービスプリンシパルはサービスのユーザー ID と考えることができます。
指定したリソースのみをスコープとするアクセス権を持つサービスプリンシパルを構成できます。
docs.microsoft.com
az ad sp create-for-rbacコマンド
サービスプリンシパルを作成し、Azure リソースへのアクセスを構成します。
出力には保護する必要がある資格情報が含まれています。
docs.microsoft.com
・--skip-assignmentオプション
既定の割り当ての作成をスキップします。 これにより、サービスプリンシパルは現在のサブスクリプションのリソースにアクセスできるようになります。
アプリ登録の ObjectID を取得する
次のコマンドを入力することでサービスプリンシパルから ObjectID の変数を作成して設定します。
実行後、echo コマンドを使用して変数に GUID が含まれていることを確認します。
$objectid=$(az ad sp list --display-name ${appreg} --query [0].objectId --output tsv) echo $objectid
az ad sp listコマンド
サービスプリンシパルを一覧表示します。
docs.microsoft.com
・--display-nameオプション
オブジェクトの表示名またはそのプレフィックスを表示します。
・--queryオプション
JMESPath クエリ文字列。 詳細と例については、http://jmespath.org/ を参照してください。
・--output -oオプション
出力形式を指定します。
アプリ登録の UserID を取得する
次に UserID の変数を作成して設定します。
実行後、echo コマンドを使用して変数に GUID が含まれていることを確認します。
$userid=$(az ad signed-in-user show --query objectId -o tsv) echo $userid
az ad signed-in-user showコマンド
現在ログインしているユーザーの詳細を取得します。
docs.microsoft.com
・--queryオプション
JMESPath クエリ文字列。 詳細と例については、http://jmespath.org/ を参照してください。
・--output -oオプション
出力形式を指定します。
記事が長くなったので分けます。
次は Azure リソースの環境構築を行います。
bluebirdofoz.hatenablog.com