Интеграция AzureKeyVault AzureFunction и формы xamarin - PullRequest
0 голосов
/ 28 марта 2020

У меня есть приложение xamarin -> azureFunction ---> BlobStorage. Все идет нормально. Функция AzureFunction установлена ​​с AuthorizationLevel.Function.

  1. Я установил функцию azure Управляемый идентификатор «ON»
  2. Я назначил роль BlobStorage (Автор данных Blob)
  3. Я могу успешно вызвать функцию с помощью почтальона с помощью функциональной клавиши.

Я хотел бы сохранить functionKey в KeyVault и вызвать его из моего мобильного приложения

Вопрос

Как любой получил пошаговое руководство и фрагмент, как интегрировать keyvault с функциональной клавишей и вызывать его из мобильного приложения (формы xamarin) c# ?

Я не хочу жестко задавать какие-либо ключи в моем мобильном приложении.

Я был бы очень благодарен. Много гуглят и ничего.

спасибо

1 Ответ

1 голос
/ 30 марта 2020

Предположим, ваше требование - вызвать функцию из кода. Возможно, вы могли бы обратиться к приведенному ниже коду.

            AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
            KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
            var secret = await keyVaultClient.GetSecretAsync("your Secret Identifier")
                    .ConfigureAwait(false);
            string functionkey = secret.Value;
            string functionhost = "https://your function.azurewebsites.net/api/function name";
            var param = new Dictionary<string, string>() { { "code", functionkey } ,{ "name","george"} };
            Uri functionurl = new Uri(QueryHelpers.AddQueryString(functionhost, param));

            var request = (HttpWebRequest)WebRequest.Create(functionurl);
            var response = (HttpWebResponse)request.GetResponse();
            string responseString;

            using (var stream = response.GetResponseStream())
            {
                using (var reader = new StreamReader(stream))
                {
                    responseString = reader.ReadToEnd();
                    Console.WriteLine(responseString);
                }
            }

enter image description here

...