Open10

AzureのTrustedSigningの設定をしたいのだが分からず...ご意見募集中です🥲

Yuki ShindoYuki Shindo

AzureのTrustedSigningを設定したいが、分からない...!

MicrosoftのAzureを使ってコード署名を安価にできる、ということで自信のプロダクトに用いたいと思い試してみました

コード署名それ自体で完結しているわけではなく、Azure上で利用する方式となるため、Azureのコンソール上でドキュメントを参考にポチポチ設定してみたのですが、実は途中でわからなくてハマっています...

ここでは参照したドキュメントなどや、自身がどこではまってしまっているかについて書き残します

そして現在進行系で躓いているところなので、もし解決方法をご存じの方がいましたらコメントいただけると嬉しいです💦
(ちなみにMicrosoftコミュニティにも質問を投げており、回答もいただけているのですが、それでも解決していないという状態です...)

Yuki ShindoYuki Shindo

参考にしたドキュメント

Microsoftが提供しているドキュメント
クイック スタート: 信頼された署名を設定する

また日本人の方が以下のQiitaを書いていただいていたので、そちらを参照しています
AzureがよくわからなくてもTrustedSigningを設定するまで

実際にやったこと

  1. Azureでサブスクリプションを作成
  2. 署名リソースプロバイダーを作成
  3. コード署名アカウントの作成
  4. IAMでコード署名アカウントを操作できるようにロールの割当を実施
    5. ここでの設定がうまく行っていないと踏んでいる(ここについては後述)
  5. 次に署名する組織自体のIDの検証(本人確認)をする必要があるのだが、ここでうまくいかない。具体的には以下のような画面になってしまう

IDの検証(本人確認)ができない!

ちなみにIDの検証は、以下の赤枠のボタンから実施しようとしている

IDの検証は、以下の赤枠のボタンから実施

なぜIDの検証(本人確認)ができない!?

おそらくはIAMの設定がうまく行っていないのかと思っているが、権限については必要と思われる以下の権限を付与している

  • Code Signing Certificate Profile Signer
  • Code Signing Identity Verifier

実際にロールを割り当てた際のスクリーンショット画像は以下
実際にロールを割り当てた際のスクリーンショット画像

Microsoftのコミュニティでも同様の質問を実施しているが、今のところ解決に至っていない

「私は Trusted Signing Identity Verifier というロールを付与したら使えるようになったよ」

という回答をいただいたが、現状Azureにはこのようなロール名は存在しておらず、 Code Signing Identity Verifier というように Trusted Signing ~ から Code Signing ~ に名前が変わったのかと解釈している。
(ちなみにAzureのドキュメントもTrusted Signing ~になっているが...実は私の解釈が間違っている可能性がある?)

※ちなみにTrusted Signingで探してみようとして、該当するロールは表示されません

Trusted Signingから始まるロール名が現在はない...?

些細なことでも構わないので、ヒントいただけると幸いです💦

というわけで、現状IDの検証から先に進めないで困ってます

Azure初心者ということもあり些細な設定ミスに起因したものかなと思っていますが、思い当たることは一通り試してみたものの先に進めず...

些細なことでも構わないので、「ここの設定どうなっている?」などありましたらお力を貸していただけると幸いです。

NakamuraNakamura

私は

  • Code Signing Certificate Profile Signer
  • Code Signing Identity Verifier

のロールを付加したらIDの検証ページの「+新規」が押せるようになりました。
ざっと見た感じで私のサイト内表示と異なるのは、ロール割り当てのスコープが異なります。

そちらのスクショでは「Code Signing 〜」の2つのロールのスコープが「サブスクリプション(継承済み)」となっていますが、こちらでは「このリソース」となっています。(閲覧しているページが異なるかもですが)

こちらは「コード署名アカウント」で作成したアカウントを選択して表示されるページの「アクセス制御(IAM)」を選択したのちに、「ロール割り当て」を選択し表示されるページで確認してます。ひょっとしたらロールをつける対象が異なるのかも、と思いました。

Yuki ShindoYuki Shindo

貴重な情報ありがとうございます!
ロール周り、改めてチェックしてみます。
また試してみて結果が分かりましたら、こちらにコメントさせていただきます。

Yuki ShindoYuki Shindo

「Code Signing 〜」の2つのロールのスコープを「このリソース」に設定した上で試してみましたが、問題は解決せずでした🥲

ちなみに実際に設定した際の画像は以下のとおりです
(モザイクかけていますが表示されているユーザー情報はすべて私の情報となっています)

なにか根本的に間違っている可能性もありそうですね...😓

ちなみに Microsoft Entra tenant ID などの設定は事前になにか行っていますでしょうか?
以下のドキュメントで前提条件として書かれているのですが、特にドキュメント内にこのテナントIDに関する具体的な記述は見当たらず、ここに関する設定が誤っているのかと考えた次第です。
もしご存知でしたら、お伺いできますと幸いです💦
https://learn.microsoft.com/en-us/azure/trusted-signing/quickstart?tabs=registerrp-portal%2Caccount-portal%2Ccertificateprofile-portal%2Cdeleteresources-portal#prerequisites

NakamuraNakamura

※この投稿はスレッドに返信してなかったので、再投稿します。

ちょっと経緯がややこしいのですが私の目的が「MSのSignTool.exeでexe・dllに署名する」ということで、

Microsoftアカウント(個人アカウント)のAzureでTrustedSigning関連を一通り作成
→SignTool.exeは個人アカウントでは署名できない?
→Microsoft Entra ID(組織アカウント)を作成し、Azureで同じ作業をもう一度行う

という流れで二回作業してます。ただID検証までは、個人アカウントでも組織アカウントでも成功してます。(実際のSignTool.exe署名は組織アカウントのみ成功)

・個人アカウントの方を確認したところ、おそらく無償サインアップから始めたせいかTenant IDが「既定のディレクトリ」という名前で発行されてました。(こちらのアカウントは使用歴が長いため、どのような設定を行なったかなど経緯の詳細は不明です)
・組織アカウントの方は初めからTenant IDが組織名で発行されています。

(あと余談ですが、ロール名の「Trusted Signing〜」という表記は言語を英語にすると出てきますね。「Code Signing〜」の英語表記みたいです)

Yuki ShindoYuki Shindo

ご返信ありがとうございます!
また、返信のほうが遅くなってしまい申し訳ありません💦

私も目的自体は「MSのSignTool.exeでexeに署名する」というものなので、Nakamura様と状況は似ているかもしれません。

ID検証については個人アカウントでも組織アカウントでも成功しているということなので、やはりなにかしら設定が誤っているのかもしれませんね...
しかしID検証までの作業自体は個人アカウントのみで行っていたので、一度Microsoft Entra ID(組織アカウント)でも同様の手順を実施してみようと思います。

試してみた結果などはスレッド内に追記させていただきます。

→SignTool.exeは個人アカウントでは署名できない?

また上の情報は、聞いていなかったら恐らく私も同じところで躓いていたので事前にお聞きできて良かったです。
ありがとうございます。

ちなみに私も無償サインアップから開始しており「既定のディレクトリ」という名前になっています。

また、言語表記を英語にすると Trusted Signing〜 になるというのも共有ありがとうございます。
言語表記によってそこの表記が異なるのですね😳

Yuki ShindoYuki Shindo

その後の状況報告となります。
(残念ながらまだ成功できていませんが、試した内容はメモしておいたほうが同じ状況の方の役に立つかもしれないと思い、一応メモを残しておきます)

  1. Microsoft Entra ID(組織アカウント)側で同じ手順を試そうとサブスクリプションを作成しようとしたが、Microsoft Entra ID側ではサブスクリプションの作成は行えなかった
  2. 調べたところ個人アカウント側(既定のディレクトリ)で作成していたサブスクリプションをMicrosoft Entra ID(組織アカウント)側に移動させることができたので、試しにこのサブスクリプションの移動を実施
  3. Microsoft Entra ID(組織アカウント)側でコード署名アカウントを作成し、ID検証までたどり着くも結果は変わらず

この際に権限の設定は以下のような状況になっています
Azure上のコード署名アカウントでID検証ができない - 権限の割当状況

2つのロールのスコープが上で少し前にご返信いただいた内容である「このリソース」となっており、これは行けるかも...!?と期待したいのですが、残念ながらダメでした。

以上ご報告となります。
引き続き調査は継続しようと思います。

NakamuraNakamura

なるほど・・・こちらは組織アカウントでサブスクリプションを作成し手続きしたので、

Microsoft Entra ID側ではサブスクリプションの作成は行えなかった

というのは謎の挙動ですね。
そちらが手続きされた個人アカウントと組織アカウントに共通なのはサブスクリプションのようですので、その辺りの問題かとも思いましたが・・・現状ではわからないですね。

Yuki ShindoYuki Shindo

ご返信ありがとうございます!

こちらは組織アカウントでサブスクリプションを作成し手続きしたので、

なるほど。組織アカウントでサブスクリプションの作成が行えないということ自体が、既に何かしら誤っている可能性もありますね...
こちらも踏まえて引き続き調査してみます。

色々と共有いただけまして本当に助かっております。
ありがとうございます。