【发布时间】:2020-04-24 05:35:34
【问题描述】:
在我的 xamarin 表单应用程序中,我需要以安全的方式调用一些 azure 函数。
我做了什么
- 我所有的函数都有 AuthorizationLevel=Function
- 通过调用存储在服务器上的 webApi 获取功能键
- Function Key 在 http 调用的标头中传递(一切正常!!)
我不喜欢上述内容,并且绝对不想将功能键存储在移动应用中作为替代方式
我已阅读有关身份验证/授权的信息,但我无法确定它是否适合我的场景
我的情景
能够以安全的方式调用 azure 函数。用户应该不被提示登录。这是一个静默调用。
是否有某种 accessToken 我可以安全地使用和检索 azure 门户并以某种方式使用它来访问该功能?
如何在移动应用中安全地访问 Azure 功能?
有样品吗?我已阅读以下内容并没有帮助
https://docs.microsoft.com/en-us/azure/app-service/overview-authentication-authorization https://docs.microsoft.com/en-us/azure/app-service/configure-authentication-provider-aad
已编辑
在下面尝试,但我在移动应用程序中收到错误(连接字符串错误)。也不确定它在部署时如何工作,因为它使用开发人员的凭据进行调试
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient =
new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("mysecretIdentifier").ConfigureAwait(false);
var key = secret.Value;
【问题讨论】:
-
该功能是否执行特定于移动用户的任何操作或无关紧要?
-
没关系,它只是从一个blob中检索一个json。
-
@developer9969 您是否已经在您的移动应用程序中使用 Azure ActiveDirectory 身份验证?
-
@HoussemDbira 我可以使用 AAD 没问题,但必须是静默呼叫,不应提示用户使用这些提供程序登录。从保管库中读取值会很好,但不确定它是如何工作的生产见编辑问题,
标签: xamarin.forms azure-functions