首页 文章

使用Android ADAL进行Azure AD的Web应用程序身份验证

提问于
浏览
0

场景:我在Azure中托管了一项服务 . 该服务托管一个问题数据库 . 我希望我的Android应用程序通过Web应用程序身份验证而不是委派身份验证从服务获取数据 . 基本上我不希望用户登录 .

研究:我搜索了很多,并且在adal中,没有任何版本的获取使用客户机密以使其工作 . 在.Net上,使用ClientCredentials可以完成同样的事情 . 在SO上提出的最接近的问题是Authenticate the user on Azure AD using ADAL library from Android native app .

答案没有具体说明如何实现它 .

1 回答

  • 1

    移动电话或其他Android设备上的应用程序是public client applications(本机客户端应用程序) . 如noted in the specification,公共客户端不允许使用客户端身份验证方法 .

    通俗地说,由于公共客户不能保守客户机密,由于代码生存和运行的性质,它也无法真正向AAD验证其客户身份 . 例如,一个邪恶的人可能会嗅到运行您的应用程序的本机客户端设备的Web流量,并使用他们自己的代码复制它,模仿您的应用程序 . 因此,只能使用更严格的身份验证方法,例如委托身份验证 .

    如果您需要为两个服务之间的服务呼叫(仅限应用程序呼叫)提供服务,则它们必须都是机密客户端 . 从技术上讲,你可以让你的Android应用程序通过注册Web App ID和Client Secret来表现得好像它是一个机密客户端,但我们的库不会帮助你做到这一点 . 您需要回到根目录并自己进行HTTP调用以获取令牌 .

相关问题