目标:将Azure Web应用程序托管到Azure,并将OAuth2用于Google,Twilio和SendGrid,并提供用于用户信息的数据库.
问题:当我利用我的Web.config文件中的"appSettings"引用的外部配置文件时,我在发布时收到错误.在Azure中,我还输入了要为Google OAuth2安全存储的凭据,这将覆盖我的研究和理解中发布的Web.config设置.如何在我的代码敏感凭据中正确安全地使用和引用Azure?
研究:我一直在逐步关注这个链接 -
https://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth-sql-database/
Run Code Online (Sandbox Code Playgroud)
此链接还会在下面显示另一个Google OAuth2实施链接 -
www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on#goog
Run Code Online (Sandbox Code Playgroud)
但是,这会不安全地将敏感信息放在web.config文件中,该文件由安全说明指出,该文件引出了将敏感ASP.NET信息部署到Azure的安全/最佳实践 -
www.asp.net/identity/overview/features-api/best-practices-for-deploying-passwords-and-other-sensitive-data-to-aspnet-and-azure
Run Code Online (Sandbox Code Playgroud)
我的理解是,从web.config文件中引用包含敏感数据/凭证的外部文件是最佳做法.我注意到IIS不提供*.config,并且由于下面引用的配置文件位置,即使"git add*"也不会将敏感凭据添加到存储库.
Web.config - (注意第2行的appSettings)
</connectionStrings>
<appSettings file="..\..\AppSettingsSecrets.config">
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
Run Code Online (Sandbox Code Playgroud)
AppSettingsSecrets.config
<appSettings>
<!-- SendGrid-->
<add key="mailAccount" value="My mail account." />
<add key="mailPassword" value="My mail password." />
<!-- Twilio-->
<add key="TwilioSid" value="My Twilio SID." />
<add key="TwilioToken" value="My Twilio Token." />
<add key="TwilioFromPhone" value="+12065551234" />
<add key="GoogClientID" value="1.apps.googleusercontent.com" …Run Code Online (Sandbox Code Playgroud)