Jaa


【TIPS】Azure Function 内で使用する秘密の文字列をソースコードに直書きしない

全然関係ないですけど、2 級のバッチテストにシュテムターンが入ってたんですよ。知ってました?聞いてないよ。シュテムターンで落とされました。。。全審査員が 64 でしたww(恥)内緒ですけどorz 超ブルーです。

 

以下の投稿で、Azure Functions の基本的な使い方を紹介しましたが、1 点心残りがあります。

※URLが日本語になっている。。。ほんとすみません。。。

https://blogs.technet.microsoft.com/junichia/2017/01/27/azure-functions-から定期的に-microsoft-graph-にアクセスする/

それは以下の部分。

既存のコードを以下で上書きして下さい。コード内の Tenant ID、Client ID、Client Secret に先ほど控えた値を埋め込みます。Client Secret を生のまま埋め込むのはアレなので、本当はApp Service のパラメタに登録するのがよいのですが、ひとまずここでは生埋め込みでいっちゃいましょう。パラメタ登録についてはあとで説明します。

力尽きてこの部分を解説していませんでした。ということで、TIPS として書き残しておきます。

 

Client Secret のような、ソースコードに残したくない文字列は以下のような方法で簡易的に隠ぺいすることができます。

 

1. Azure Funtions の設定ページを表示

2. 左下の「Functions App の設定」をクリック

  image

3. 「App Serviceの設定に移動」をクリック

  image

4. 「アプリケーションの設定」をクリック

  image

5. 右ペインをスクロールダウンして「アプリ設定」を表示

  image

6. キーと値を設定と保存

  image

7. ソースコードの ClientSecret 部分を以下のように変更

string clientSecret = "ARWgqtsCVcZ/CBOYQMTAxxxxxxxxxxxxxxxxxxxxxxxx";

string clientSecret = ConfigurationManager.AppSettings["clientSecret"]

 

たったこれだけです。簡単ですね。

ただ、本当は Azure KeyVault を使って本格的に暗号化して隠してほしいわけです。

これについては次回。