当前位置:  开发笔记 > 编程语言 > 正文

如何在Xamarin移动应用程序中使用功能级别授权安全地调用Azure功能?

如何解决《如何在Xamarin移动应用程序中使用功能级别授权安全地调用Azure功能?》经验,为你挑选了2个好方法。

我正在使用Xamarin制作iOS/Android应用程序(不是Xamarin.Forms,只是普通的Xamarin).我正在使用共享库而不是PCL.我希望我的应用程序调用Azure功能,但我不确定最安全/最好的方法来处理这个问题.我将它设置为"授权级别"的"功能".测试URL中包含"?code = ..."部分.我的印象是,如果我把它放在我的C#代码中,并且"代码"值暴露出从安全角度来看它被认为是一个坏主意.

我迷失了最安全/最好的处理方式.我已经读过在app.config中设置它也是一个坏主意.我找到了一些Web应用程序的参考资料,建议使用azure门户网站中提供的连接字符串,但由于这不是一个Web应用程序,我不确定我是如何在我的代码中实际检索这些值的(或者如果那是可能的话).

那么你如何建议我处理设置"代码"的值,以便我可以调用我的函数并避免安全问题?

更新:根据请求提供更多信息:我正在使用MSAL通过B2C活动目录对我的用户进行身份验证.我已经有了这部分工作,并收到了验证用户的令牌.

我刚刚在我的函数中启用了身份验证.

我的印象是,要从我的移动客户端调用我的函数,我必须创建一个新的HttpRequestMessage.我不确定那时我会放置什么来传递我的令牌.



1> Chris Gillum..:

为了确保我理解,您关心的是在iOS/Android应用中嵌入机密(?code = XXX值),对吗?如果是这样,是的,这通常被认为是不好的安全措施.最好假设任何可以下载你的应用程序的人都有能力发现这些秘密并以他们想要的方式使用它们.

从移动设备使用后端服务(如Azure功能)进行身份验证的推荐方法是使用交互式身份验证 - 即某种OAuth流.您可以自己构建它,也可以使用Azure Functions和Azure App Service的内置功能来帮助您(Azure功能构建在App Service之上).这是一个可能有用的资源:

https://docs.microsoft.com/en-us/azure/app-service/app-service-authentication-overview

https://contos.io/working-with-identity-in-an-azure-function-1a981e10b900#.vcjit3ntw


你的回答让我朝着正确的方向前进.为清楚起见,我将总结一下我最终遗漏的内容.我需要为我的功能应用启用身份验证,但是,至关重要的是,我还需要将授权级别更改为"匿名".在不改变的情况下,我不断收到未经授权的消 然后我需要创建一个HttpRequestMessage并将令牌作为"Bearer"值包含在请求的Headers.Authorization成员中.

2> Fabio Cavalc..:

API密钥(代码)确实不适合您在外部分发的客户端使用,因此您的移动应用程序不应使用它.

这里最直接的选择是使用Azure功能内置的App Service身份验证功能,并在您的应用程序中实现身份验证流程,这样您就可以安全地对用户进行身份验证.

分享有关场景的更多信息可能有助于确定替代方案

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有