Azure Easy Tables上的InHouse授权

时间:2016-06-28 05:21:57

标签: azure authentication authorization azure-mobile-services azure-data-sync

我们正在使用iOS应用中的Azure Easy表的同步功能。我们在系统中实现了自己的身份验证和授权。我已经为Easy API做了这个。我想在Easy Tables同步上扩展相同的逻辑。我不确定如何将此逻辑添加到简单的表数据更改中。

任何指针都会受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

从技术上讲,这就像Easy API一样简单。您的身份验证/授权机制必须生成具有已返回客户端的已知受众,颁发者和签名机密的JWT。您的客户端放置在client.currentUser.mobileServicesAuthenticationToken中接收的JWT(由于大小写规则,此属性的实际名称因客户端而异)。完成此操作后,客户端将在每次请求期间提交令牌。

在后端,您需要将服务器的身份验证设置设置为新的。在Easy Tables中,这涉及编辑主文件并调整创建zumo服务器的调用。在app.js文件中查找如下所示的代码:

var mobile = azureMobileApps({
    // Explicitly enable the Azure Mobile Apps home page
    homePage: true
});

让它看起来像这样:

var mobile = azureMobileApps({
    homePage: true,
    auth: {
        audience: "the-aud-field-from-your-JWT",
        issuer: "the-iss-field-from-your-JWT",
        secret: "the-secret-used-to-sign-the-JWT"
    }
};

参考:http://azure.github.io/azure-mobile-apps-node/global.html#authConfiguration

秘密方面有一点问题。此值直接送入jsonwebtoken解码器,因此您可能需要根据jsonwebtoken instructions将您使用的密码转换为缓冲区。