这就是我想要实现的目标 - 一个 native 应用程序将在一个系统上运行,我无法让用户登录,但我想使用不记名 token 访问 AAD 后面安全的 Web 服务。有两个选项 -
- 使用基于证书的流程(出于某些原因我想避免使用该流程) 具体到我的项目)
- 使用客户端 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/