SAKURUG TECHBLOG

ASP.NET Coreのプロジェクトでローカルシークレットを使う

timestampauthor-name
Tomomitsu

どうしてローカルシークレットが必要か?

ソースコードをGithubなどに公開する際に、APIキーやデータベース・ストレージ接続文字列に含まれるIDやパスワードなどを公開すると全世界中の人から使われてしまい大課金フェスティバルが開催されてしまいます。また、課金だけならまだしもこういったリソースを悪用されてしまう危険もあります。こういったことを防ぐためにもappsettings.jsonなどの設定ファイルに接続情報を書かない。プロジェクトファイル内のファイルに書かないということをしなければいけません。

ローカルシークレットの使用手順

ソリューションエクスプローラーからプロジェクトを右クリックして「ユーザーシークレットの管理」を使用します。

secrets.jsonが開くのでそこにappsettings.jsonに記述していた内容を書きます。

appsettings.jsonに記述されていた内容を削除しておきます。

secrets.jsonの実体は%APPDATA%\Microsoft\UserSecrets\<usersecretsid>\secrets.json に記述されています。

<usersecretsid>はプロジェクトファイルに記述されています。

また、これはローカル開発に限った話ですのでクラウドでの運用では別のシークレットを使用することなります。

例えば、Azure App Serviceでは構成に記述するのが第一選択肢になります。

記事をシェアする

ABOUT ME

author-image
Tomomitsu
2017年2月中途入社。業務ではAzureへのモダナイゼーションを行っています。Microsoft MVP for Developer Technologies 2022 -