2009-09-10 6 views
16

30個以上の開発者、20個以上のソリューション、60個以上のプロジェクトを持つ組織に署名付きアセンブリを適用するための推奨事項とベストプラクティスを探しています。私たちはVisual Studio Team System 2008とTFSを使用しています。複数のプロジェクトと開発者によるアセンブリ署名のベストプラクティス

キーを作成してアセンブリに署名するのは、非常に簡単で簡単な手順ですが、私はこれを最善の方法で管理する方法に懸念しています。

私の考えでは、これまで:

  • 通常、3〜20のプロジェクトを持っている各ソリューションは、ソリューションのルートフォルダに配置された単一.PFXキーファイルを持っています。
  • 各ソリューションには、固有の強力なパスワードが割り当てられます。

このアプローチで問題が発生しますか。

いくつかの他のアイデア:

  • ソリューション全体のすべてのプロジェクトのために同じ鍵ファイルを使用してください。これは私たちのためのものを簡単にするだろうか?それは悪い考えですか?それも可能ですか?
  • 各プロジェクトに固有のキーが必要ですか?なぜ、どうしてですか?

入力、良い/悪い経験と推奨は歓迎されます。 :)

答えて

13

以前は、複数のソリューションやプロジェクトに単一のキーを使用してきましたが、これまで非常に効果的でした。これは、秘密鍵ファイルにアクセスできる人だけが厳密な名前のチェックをパスするビルドを公開できるようにする簡単な方法です。

注:単一のキーファイルを使用するには、ファイルを各プロジェクトへのリンクとして追加するのが最も簡単です。

私が見ている欠点の1つは、開発者がキーファイルを利用できるということは、それほどプライベートではないということです。理想的には、できるだけ少数の人が(例えば、ビルドプロセスだけで)パスワードにアクセスしたり、パスワードを知っている必要があります。

単一ファイルのアプローチでは、キーの管理がシンプルになります(1つしかありません)。一方、強力な名前付けの利点があります。

+0

優秀、私たちはそれを試してみると思います。ファイルをリンクとして追加する方法を説明できますか?私はVSのその機能に慣れているとは思わない。 :) –

+3

追加すると、ボタンは右の矢印で分割されます。矢印をクリックすると「リンクとして追加」が表示されます:) –

+0

ああ、もちろんです。ありがとう。 :)しかし、ネットワークがダウンしてもファイルにアクセスすることができない場合、プロジェクトをコンパイルすることは不可能であるため、.pfxファイルを個々のソリューション/プロジェクトにコピーする必要があります。 最終的には、TFSのビルドプロセス中に「共通鍵」を秘密のバージョンに置き換えます。 –

6

現在、私たちのソリューションではすべてのプロジェクトで同じ強力なキー(.SNK)を使用しています。プロジェクトによっては、どのプロジェクトでどのように異なるキーを管理するかが決まります。

セキュリティを強化したい場合は、すべてのプロジェクトのキーを再作成できますが、管理するのは悪夢です。その日の終わりに、SNKはコードがあなたの会社のコードであることを示し、アセンブリの改ざんを防ぎますが、それは巨大な社内セキュリティ機能ではありません。

そのためには、ソース管理を制限し、開発者がコードを作成しないようにする/したくない場合は、ビルドサーバーなどを使用する必要があります。

1

また、すべてのプロジェクトフォルダと同じレベルのルートレベルのフォルダに厳密な名前キーを保存することもできます。 プロジェクトプロパティ - >署名タブでこのファイルを選択すると、キーファイルがプロジェクトフォルダにコピーされます。 このファイルを削除してください。メモ帳で.csprojファイルを開きます。次のタグを探します mykey.snk キーファイルのパスを手動で編集する場合は、プロジェクトフォルダからの相対パスを指定してください。ファイルを保存します。 ビジュアルスタジオでプロジェクトプロパティを開きます。正しい場所を指すように更新されたパスが表示されます。

+3

ええ、VisualStudio経由での参照のコピーは本当に面倒です!!!!!! –

関連する問題