スクリプト署名の概要
注意: この機能はパブリックプレビューにあります。
Nerdio Managerは、選択した証明書を使用してすべてのVM拡張機能とスクリプトアクションに自動的に署名し、構成されたPowerShell実行ポリシーに準拠させることができます。
この機能は、以下のリソースのスクリプト署名を現在サポートしています:
セッションホスト
ホストプールレベルで構成されています。
ARM AVDのすべての拡張機能をサポートしています。
デスクトップイメージ
各デスクトップイメージごとに個別に構成されています(NMW_SIGNING_CERTIFICATE_IDタグに格納)。
イメージとして設定およびスクリプトを実行操作のすべての拡張機能をサポートしています。ただし、Azure VMから追加およびAzure ライブラリから追加操作はサポートされていません。
要件
-
アーティファクト:モードアプリサービス設定は、ローカルまたはオフラインに設定する必要があります。そうでない場合、署名設定は無視され、スクリプトは署名されません。少なくとも1つの証明書がリンクされており、アーティファクト:モードが構成されていない場合、設定タイルに警告が表示されます。
証明書はコード署名に適している必要があります。詳細については、証明書の詳細を参照してください。
Nerdio Managerの主なサービスプリンシパルは、Key Vault内で以下の権限を持っている必要があります:
リソース |
操作 |
説明 |
|---|---|---|
シークレット |
取得 |
スクリプトに署名する際に証明書の秘密鍵を取得するために必要です。 |
証明書 |
取得 |
証明書の詳細を取得するために必要です。リンクされた証明書を管理する際にのみ使用されます。 |
証明書 |
リスト |
リンクダイアログでKey Vaultの証明書のリストを表示するために必要です。 |
証明書 |
作成 |
自己署名証明書生成機能に必要です。 |
証明書 |
インポート |
証明書インポート機能に必要です。 |
証明書 |
削除 |
証明書のリンク解除時に「Key Vaultから削除」チェックボックスがチェックされている場合に必要です。 |
構成プロセス
構成プロセスは以下のステップで構成されています:
-
既存の証明書を管理するか、新しい証明書を作成します:
証明書をリンクする -または-
証明書ファイルをインポートする -または-
-
仮想マシンに証明書をインストールします:
-
リンクされた証明書を構成します:
証明書の詳細
以下は証明書の要件です:
KeyUsage: デジタル署名
Extended Key Usage: 2.5.29.37 = 1.3.6.1.5.5.7.3.3
Basic Constraints: 2.5.29.19 = <empty>
公開部分と秘密部分の両方を含む必要があります(エクスポート可能)
件名は CN= で始まる必要があります
注意:
-
有効期限警告: 証明書の有効期限の60日前から、設定タイルとセレクターに警告アイコンが表示され始めます。
-
証明書のバージョン: Key Vault では、証明書は異なるバージョンを持つことができます。実際、各バージョンは別々の証明書です。Nerdio Managerでリンクする際には、最新のバージョンへの参照を保存し、証明書のバージョンを変更する機能があります。例えば、有効期限が近づいている証明書を更新する際には、Key Vault に新しいバージョンを作成し、このバージョンをすべての VM にインストールし、その後リンクされたバージョンを変更する必要があります。
証明書をリンクする
Nerdio Managerは、すでに Key Vault にある証明書をリンクすることを可能にします。
設定 > Nerdio 環境に移動してください。
リンクされた署名証明書タイルで、リンクを選択します。
-
以下の情報を入力してください:
Key Vault: ドロップダウンリストから Key Vault を選択してください。
証明書: ドロップダウンリストから証明書を選択してください。
必要な情報をすべて入力したら、リンクを選択してください。
証明書ファイルをインポートする
Nerdio Managerは証明書ファイルをインポートすることができます。
設定 > Nerdio 環境に移動してください。
リンクされた署名証明書タイルで、インポートを選択してください。
-
以下の情報を入力してください:
Key Vault: ドロップダウンリストから証明書をインポートしたい Key Vault を選択してください。
証明書名: 証明書の表示名を入力してください。
証明書ファイル: ファイルを選択し、証明書ファイルを選択してください。
パスワード: 証明書にパスワードがある場合は、そのパスワードを入力してください。
必要な情報をすべて入力したら、インポートを選択してください。
自己署名証明書を作成する
PowerShell、Azure ポータル、またはNerdio Managerを使用して自己署名証明書を作成できます。
PowerShell を使用して自己署名証明書を作成する
自己署名証明書を作成する最も柔軟な方法は、PowerShellを使用することです。
PowerShellを使用して自己署名証明書を作成するには:
-
次のPowerShellコマンドを実行し、必要に応じてSubjectとFriendlyNameを変更してください。
New-SelfSignedCertificate `-Type Custom `
-Subject "CN=Nerdio Manager, O=Nerdio Corporation, C=US" `-KeyUsage DigitalSignature `
-FriendlyName "Nerdio Manager用証明書" `-CertStoreLocation "Cert:\CurrentUser\My" `-TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")
-
作成された証明書をエクスポートする:
CTRL + Rを選択してください。
certmgr.mscと入力し、OKを選択します。
個人 > 証明書に移動します。
証明書を見つけて開きます。
詳細タブで、ファイルにコピーを選択します。
はい、秘密鍵をエクスポートしますを選択し、次に次へを選択します。
パスワードを選択し、インポートに必要なパスワードを入力します。
暗号化をAES256-SHA256に設定しますを選択し、次に次へを選択します。
ファイルを保存する場所を選択し、プロセスを完了します。
Nerdio Managerで、生成された証明書をインポートします。詳細については、証明書ファイルをインポートするを参照してください。
Azure ポータルを使用して自己署名証明書を作成する
この方法では、Azureポータルを使用して証明書を生成します。
Azure ポータルで、Key Vaultsに移動します。
希望するKey Vaultを選択します。
オブジェクトブレードで、証明書を選択します。
-
+生成/インポートを選択します。
-
次の基本情報を入力します:
証明書名: 証明書の表示名を入力してください。
件名:証明書ファイルの件名をCN=から始めて入力します。例えば、CN=Nerdio Manager。
有効期限: 有効期限の月数を選択するか、空白のままにしてください。
-
高度なポリシー設定: 未設定を選択してください。
-
次の高度な情報を入力してください:
拡張キー使用法: 1.3.6.1.5.5.7.3.3
X.509キー使用フラグ: ドロップダウンリストからデジタル署名のみを選択してください。
高度な情報を入力したら、OKを選択してください。
基本情報と高度な情報を入力したら、作成を選択してください。
プロセスが完了するまで待ってください。通常、約1分かかります。
Nerdio Managerで、生成された証明書をリンクしてください。詳細については、証明書をリンクするを参照してください。
Nerdio Manager を使用して自己署名証明書を作成する
この方法では、Key Vaultを使用して証明書を生成します。上記と同じ機能を使用しますが、Nerdio Managerはすべての必要なポリシーを自動的に設定し、生成された証明書を自動的にリンクします。
Nerdio Managerを使用して自己署名証明書を作成するには:
設定 > Nerdio 環境に移動します。
-
リンクされた署名証明書タイルで、生成を選択してください。
-
以下の情報を入力してください:
Key Vault: ドロップダウンリストから証明書をインポートしたいKey Vaultを選択してください。
証明書名: 証明書の表示名を入力してください。
件名: 証明書ファイルの件名を入力してください。
有効期限: 有効期限の月数を選択してください。
必要な情報をすべて入力したら、作成を選択してください。
自己署名証明書をエクスポートする
Nerdio Managerは、PKCS #12またはX.509形式で自己署名証明書をエクスポートできるようにします。
設定 > Nerdio 環境に移動します。
-
リンクされた署名証明書タイルで、エクスポートしたい証明書を見つけて、エクスポートを選択します。
エクスポート形式のドロップダウンで、エクスポート形式を選択します。
-
形式を選択したら、エクスポートを選択します。
証明書は、ブラウザーのデフォルトのダウンロードフォルダーにダウンロードされます。
仮想マシンに証明書を手動でインストールする
仮想マシンに証明書を手動でインストールできます。
自己署名証明書をPFX(PKCS #12)形式でエクスポートします。詳細については、自己署名証明書をエクスポートするを参照してください。
エクスポートしたPFXファイルを仮想マシンにコピーします。
-
ファイルを開くと、証明書インポートウィザードが開始されます。
-
ストアの場所で、ローカルマシンを選択し、次に次へを選択します。
-
インポートするファイルウィンドウで、デフォルトのままにして次へを選択します。
-
プライベートキーの保護ウィンドウで、デフォルトのままにして次へを選択します。
-
証明書ストアウィンドウで、次の情報を入力します:
次のストアにすべての証明書を配置するを選択します。
参照を選択し、次に信頼されたルート証明書ストアを選択します。
-
必要な情報をすべて入力したら、次へを選択します。
証明書インポートウィザードの完了ウィンドウで、設定を確認し、完了を選択します。
スクリプトアクションを使用して仮想マシンに証明書をインストールします。
スクリプトアクションを使用して仮想マシンに証明書をインストールできます。
スクリプトアクションを使用して仮想マシンに証明書をインストールするには:
.CER(Base-64エンコードされたX.509)形式で自己署名証明書をエクスポートします。詳細については、自己署名証明書をエクスポートするを参照してください。
-
必要なすべての仮想マシンで次のスクリプトアクションを実行し、エクスポートしたCERファイルの内容をBase-64エンコードされたX.509証明書パラメータに貼り付けます。
param ([ComponentModel.DisplayName('Base-64 encoded X.509 certificate')][Parameter(Mandatory)]
[string] $certificate)
$tempFile = New-TemporaryFile
Write-Output "一時ファイルを作成しました: $tempFile"
try {$certificate | Out-File -FilePath $tempFile.FullName
Write-Output "証明書を一時ファイルに保存しました"
Import-Certificate -FilePath $tempFile.FullName -CertStoreLocation 'Cert:\LocalMachine\Root'
Write-Output "証明書を信頼されたルート証明書ストアにインポートしました"
Import-Certificate -FilePath $tempFile.FullName -CertStoreLocation 'Cert:\LocalMachine\TrustedPublisher'
Write-Output "証明書を信頼された発行者ストアにインポートしました"
}
finally {$tempFile.Delete()Write-Output "一時ファイルを削除しました"
}
ホストプールに署名された証明書をインストールします。
Nerdio Managerを使用すると、ホストプールに署名された証明書をインストールできます。
作業したいホストプールを見つけます。
アクションメニューから、プロパティ > 証明書を選択します。
-
以下の情報を入力してください:
スクリプト署名の有効化:このオプションを オン に切り替えます。
署名証明書:ドロップダウンリストから証明書を選択します。
必要な情報を入力したら、保存 または 保存して閉じる を選択します。
デスクトップイメージに署名された証明書をインストールします。
Nerdio Managerを使用すると、デスクトップイメージに署名された証明書をインストールできます。
デスクトップイメージに署名された証明書をインストールするには:
作業したいデスクトップイメージを見つけます。
アクションメニューから、証明書の管理を選択します。
-
以下の情報を入力してください:
スクリプト署名の有効化:このオプションを オン に切り替えます。
署名証明書:ドロップダウンリストから証明書を選択します。
必要な情報を入力したら、OKを選択します。
Intuneスクリプト用の署名された証明書を設定します。
Intuneスクリプトの署名を設定するには、Nerdio ManagerのIntune統合で証明書を設定し、ターゲットデバイスに証明書を読み込む必要があります。
注意: 使用する証明書を エクスポート して、ターゲットデバイスにデプロイできるようにする必要があります。
設定 > 環境 に移動します。
統合タブを選択します。
Intune見出しを展開します。
ターゲットテナントのその他のオプション
コンテキストメニューを選択し、ドロップダウンメニューから リンクされた署名証明書を設定を選択します。
ドロップダウンメニューから、Intuneスクリプトに署名するために使用する証明書を選択し、保存するを選択します。
証明書の配布には、お好みの方法を使用してください。ガイダンスについては、Microsoft Learn の記事 Microsoft Intune で信頼された証明書プロファイルを作成するを参照してください。
コメント (0件のコメント)