C#. NET Framework 4.7.2 в VS 2019 - храните мой clientID и секрет клиента / gitignore / Key Vault - PullRequest
0 голосов
/ 24 апреля 2020

Я новичок в # C, поэтому извините за мой вопрос, который, вероятно, будет очень легким для вас. Я пытаюсь получить свой clientID, clientSecret и tenantID из основного источника управления, но я совсем не уверен, как это сделать. Я видел несколько методов для. NET Core с подключенными службами в Visual Studio, но на самом деле это не доступно для. NET Framework 4.7.2. Я не уверен в настройке файла конфигурации. Я создал группу ресурсов на портале Azure, но я не уверен, как заставить работать это хранилище ключей.

Код ниже представляет рабочий код для получения токена, проблема в том, чтобы скрыть эти жестко закодированные строки.

Большое спасибо за ваш ответ

        private static string GetToken()
        {

            string clientID = "xxxad43f-c825-491f-9130-8cc4da1d1111";
            string clientSecret = "dRbIT5Wn4@u=55L@fLnYRNuDYrFD@111";
            string tenantID = "4ae48b41-0137-4599-8661-fc641fe77111";
            var app = ConfidentialClientApplicationBuilder
                .Create(clientID)
                .WithClientSecret(clientSecret)
                .WithAuthority(new Uri($"https://login.microsoftonline.com/{tenantID}/oauth2/v2.0/token"))
                .Build();

            var ApiID = "api://dddd-api";
            var scopes = new[] { ApiID + "/.default" };

            var result = app.AcquireTokenForClient(scopes).ExecuteAsync().Result;

            if (result == null)
                throw new Exception("Could not acquire token");

            return result.AccessToken;
        }

1 Ответ

0 голосов
/ 29 апреля 2020

Вы можете установить значение в качестве переменных среды и использовать Environment.GetEnvironmentVariable("<variable name>") для их получения.

string clientID = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID");
string clientSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET");
string tenantID = Environment.GetEnvironmentVariable("AZURE_TENANT_ID");
...