【发布时间】:2017-11-07 07:54:25
【问题描述】:
我有一个 Azure 应用服务 以及一个 functions 应用(我目前正在学习 Azure,如果有其他方法可以实现我想要的,我愿意建议)。应用服务包含一个简单的表,我想与一个应用同步(它已经在工作),并且我想实现一个函数,其中包含一个填充简单表的 blob 存储输入绑定或计时器触发器。
由于似乎没有简单表的输出绑定,我遵循this answer 并使用MobileServiceClient 实现了访问。
MobileServiceClient client = new MobileServiceClient("https://my-app.azurewebsites.net");
var table = client.GetTable<MyTableClass>();
await table.InsertAsync(myObject);
只要表是公开可写的,它就可以工作,但是当它可以匿名读取时它当然不起作用,但只有经过身份验证的用户才可写。为了验证我的功能,我创建了一个 Azure Active Directory 并为该 AD 中的应用程序创建了一个 API 密钥,然后我尝试通过
验证MobileServiceClient
await client.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory,
new JObject {{"access_token", "<my API key>"}});
但这并没有成功。我总是收到错误
请求无法完成。 (未经授权)。
显然这行不通(以这种方式使用 API 密钥实际上只是在黑暗中拍摄),但我不确定如何从我的函数应用程序中完成身份验证。我知道当我在应用程序中使用MobileServiceClient 时,我可以将用户重定向到登录,但这(显然)不适用于函数。
如何使用现有应用服务验证我的函数,以便写入不可匿名写入的表?
【问题讨论】:
标签: azure azure-active-directory azure-mobile-services