从 native 应用程序进行 Azure Active Directory 身份验证,无需用户登录

标签 azure authentication adal

这就是我想要实现的目标 - 一个 native 应用程序将在一个系统上运行,我无法让用户登录,但我想使用不记名 token 访问 AAD 后面安全的 Web 服务。有两个选项 -

  1. 使用基于证书的流程(出于某些原因我想避免使用该流程) 具体到我的项目)
  2. 使用客户端 key

我遇到的问题: 当我使用 native AAD 应用程序的客户端 ID 和使用 AAD Web 应用程序( native 应用程序有权访问)客户端 key 构建的客户端凭据调用 acquiretokenasync 时,出现以下错误 -

{“AADSTS70002:错误验证凭据。AADSTS50012:提供无效的客户 secret 。 6\r\n时间戳:2016-08-20 01:45:08Z"}

因此,鉴于客户端 key 确实是正确的(我对此很肯定),这个错误背后的真正问题可能是什么?

预先感谢您的帮助:)

最佳答案

您不能使用 native 应用程序客户端 ID 和 Web 应用程序客户端凭据(客户端 key )。 native 应用程序没有关联的 secret ,只有 Web 应用程序有。假定 native 应用程序在不安全的主机上运行,​​例如台式机和智能手机。客户端 secret 将变得太脆弱。

有关如何验证 native 应用程序和访问资源的更多信息,请查看以下文章:

关于从 native 应用程序进行 Azure Active Directory 身份验证,无需用户登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39049863/

相关文章:

java - 使用后端服务器的谷歌身份验证需要范围

c# - 使用 AAD 对 Azure API 应用程序进行身份验证时出现 401 错误

c# - 如何在Azure SQL中记录UTC时间?

Azure Redis 缓存主机

c# - 通过慢速网络下载大文件时出现 StorageException

authentication - 使用 Django session 从不同域进行身份验证的问题

php - 使用用户 ID 登录后重定向

azure-active-directory - ADAL.js - 使用 id_token 获取 Microsoft Graph 访问 token

node.js - node-adal 库的类型?

azure - 创建 Azure 包时包含/排除文件