このチュートリアルでは、Azure Key Vaultに格納されている証明書を使用して、AzureDevOpsでコード署名する方法を紹介します。 これらの指示に従うには、次のものが必要です。
- An Azureアカウント
- A DevOpsプロジェクト
- A キーボールト
- A コード署名証明書 KeyVaultにインストールされています。 次のいずれかを実行できます。
SSL.com の eSigner クラウド コード署名サービスにより、一般的な CI/CD ツールと簡単に統合できるようになりました。 Azure DevOpsを含む、自動コード署名用。 電子署名者 を使用すると、USB トークン、HSM、またはその他の特別なハードウェアを必要とせず、世界的に信頼できるデジタル署名とタイムスタンプをどこからでも簡単にコードに追加できます。
eSigner を Azure DevOps と統合する方法に関するガイドについては、この記事にアクセスしてください。 Azure DevOps クラウド署名統合ガイド.
eSigner を Azure DevOps と統合する方法に関するガイドについては、この記事にアクセスしてください。 Azure DevOps クラウド署名統合ガイド.
Azureアプリケーションを登録する
まず、Key Vaultに接続して署名できるように、新しいAzureアプリケーションを登録する必要があります。
- サインイン Azureのポータル.
- MFAデバイスに移動する Azure Active Directory。 (クリック その他のサービス Azure Active Directoryアイコンが表示されていない場合。)
- クリック アプリの登録、左の列。
- クリック 新規登録.
- アプリケーションに 名前 をクリックして 登録する ボタン。 他の設定はデフォルト値のままにします。
- 新しいアプリケーションが登録されました。 に表示されている値をコピーして保存します アプリケーション(クライアント)ID、後で必要になるためです。
クライアントシークレットを作成する
次に、クライアントシークレットを生成します。これは、署名時に資格情報として機能します。
- クリック 証明書と秘密 左側のメニューにあります。
- クリック 新しいクライアントの秘密.
- クライアントに秘密を与える 説明、必要に応じて有効期限を設定し、をクリックします Add
- コピー 値 あなたの新しいクライアントの秘密の 直ちに 安全な場所に保管してください。 次回ページが更新されると、この値はマスクされて取得できなくなります。
KeyVaultでアクセスを有効にする
次に、Azure KeyVaultでアプリケーションへのアクセスを有効にする必要があります。
- 署名に使用する証明書が含まれているKeyVaultに移動し、[ アクセスポリシー リンクをクリックします。
- クリック アクセスポリシーの追加.
- 主な権限、イネーブル
Verify
,Sign
,Get
,List
.
- 秘密の許可、イネーブル
Get
&List
.
- 証明書のアクセス許可、イネーブル
Get
&List
.
- クリック 何も選択されていません リンク、下 プリンシパルを選択、次に検索フィールドを使用して、前のセクションで作成したアプリケーションを見つけて選択します。
- クリック 選択
- クリック Add
- クリック Save.
- アクセスポリシーが設定されています。
DevOpsビルドを構成する
これで、ビルドを構成できます。 AzureDevOpsでプロジェクトを開きます。
アプリケーション資格情報を変数として保存する
アプリケーションIDとクライアントシークレットをYAMLパイプラインファイルに直接含めることもできますが、それらを変数としてDevOpsに保存するとより安全になります。
- クリック パイプライン.
- クリック 図書館.
- クリック +変数グループ.
- 変数グループに名前を付けます。
- クリック Add.
- アプリケーションIDの変数名を入力し、値を貼り付けます。 終了したら、ロックをクリックして変数を暗号化します。
- このプロセスを繰り返して、クライアントシークレットの変数を追加します。
- クリック Save.
- パイプラインの変数グループをリンクします。 (VARIABLE-GROUPを実際の変数グループの名前に置き換えます。)
変数:-グループ: 'VARIABLE-GROUP'
パイプラインステップを追加してAzureSignToolをインストールする
Azureサインツール を提供するオープンソースユーティリティです サインツール Azure KeyVaultに格納されている証明書とキーの機能。 パイプラインに次の手順を追加して、Azure SignToolをインストールします。
-タスク:DotNetCoreCLI @ 2入力:コマンド: 'カスタム'カスタム: 'ツール'引数: 'インストール--globalazuresigntool' displayName:AzureSignToolをインストールします
Azure SignToolコマンドをパイプラインに追加する
- これで、コードに署名するタスクをパイプラインに追加できます。 次の情報が必要になります。
- Azure SignTool呼び出しをパイプラインに追加します。 ALL-CAPSに表示されている値を実際の値に置き換えます。
-タスク:CmdLine @ 2入力:スクリプト:AzureSignTool sign -kvu "KEY-VAULT-URI" -kvi "$(APPLICATION-ID-VAR)" -kvs "$(CLIENT-SECRET-VAR)" -kvc CERTIFICATE-NAME -tr "http://ts.ssl.com" -td sha256 "FILE-TO-SIGN" displayName:サインコード
- 署名が成功すると、次のような出力が表示されます。
情報:AzureSignTool.Program [0] =>ファイル:D:\ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe署名ファイルD:\ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe情報:AzureSignTool。 Program [0] =>ファイル:D:\ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exeファイルD:\ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exeの署名が正常に完了しました。
SSL.com EV コード署名 証明書は、最高レベルの検証により、不正な改ざんや侵害からコードを保護するのに役立ちます。 年間$ 249。 あなたがすることもできます EV コード署名証明書を大規模に使用する eSigner を使用してクラウドで。 自動化オプションを備えた eSigner は、エンタープライズ コードの署名に適しています。