AADSTS50012:从测试应用程序移动到生产环境时提供了无效的客户端密码

Posted

技术标签:

【中文标题】AADSTS50012:从测试应用程序移动到生产环境时提供了无效的客户端密码【英文标题】:AADSTS50012: Invalid client secret is provided when moving from a Test App to Production 【发布时间】:2017-07-17 13:34:24 【问题描述】:

我在 Azure 门户下注册了两个应用程序:一个测试版本和一个生产版本。我的测试应用程序与我从 Azure 门户中的测试应用程序详细信息中获得的客户端 ID 和 ClientSecret/AppKey 配合使用。但是,当我将 ClientId 和 Secret 值替换为我注册的生产应用程序指定的值时,当我转移到生产环境时,我突然收到一个错误:

AdalServiceException:AADSTS70002:验证凭据时出错。 AADSTS50012:提供的客户端密码无效

但我很确定我的客户密码是正确的,因为我刚刚从门户网站复制和粘贴。有什么解决办法吗?

【问题讨论】:

【参考方案1】:

问题是密钥的过期时间。 用6,12,18个没问题,我用的是azure-cli 2.26.0 24 个月后,您会收到错误:

"error":"invalid_client","error_description":"AADSTS7000215:提供的客户端密码无效。\r\n跟踪 ID:fef57aee-deeb-47fa-ae05-ba8427cd4300\r\n相关 ID:ba3cc2d5-1594- 4af3-be2b-3b35e8d40e06\r\n时间戳:2021-10-23 18:18:27Z","error_codes":[7000215],"timestamp":"2021-10-23 18:18:27Z","trace_id" :"fef57aee-deeb-47fa-ae05-ba8427cd4300","correlation_id":"ba3cc2d5-1594-4af3-be2b-3b35e8d40e06","error_uri":"https://login.microsoftonline.com/error?code=7000215"

【讨论】:

【参考方案2】:

就我而言,我有 2 把钥匙。我创建了第三个,但没有用。最后,我删除了所有密钥并创建了一个新密钥,但只有一个。然后就成功了。

【讨论】:

【参考方案3】:

对您的秘密进行编码(例如,将 + 替换为 %2B ,将 = 替换为 %3D 等)

【讨论】:

谢谢!我的网络应用程序停止工作,即使这个秘密仍然有效多年。额外的urlencode() 为正在使用的 php 库完成了这项工作 (github.com/jumbojett/OpenID-Connect-PHP)。 +和=前后的空格怎么办?我们必须使用 % 吗? 我刚刚遇到了这个问题:可能值得强调的是,client_secret 需要进行 urlencoded/%- 即使它是作为 HTTP Basic auth 标头的一部分发送的,其中整个内容将是 base64-无论如何编码。 是的,看起来这是一个 URL 编码问题。我一直在重新生成我的客户密码,直到我得到一个主要是基本的大写和小写字符的密码。很高兴知道 Microsoft 正在寻找的确切编码。【参考方案4】:

您是否尝试过简单地重新生成秘密?

这里的错误非常简单,我认为这不是 AAD 的错误。

让我知道这是否适合你!

【讨论】:

我的问题是我来自 Azure 门户的密钥已过期。生成一个具有新到期日期的新文件修复了它。 不确定这里是否已经暗示了这一点,但我通过在Azure Active Directory 中为我的客户创建一个新的密钥来修复此错误 - 而不是 Azure Key Vault 中的密钥,这让我很失望。 Azure 门户 > Active Directory > 应用注册 >(您的应用)> 设置 > 密钥。我这里的钥匙已经过期了。【参考方案5】:

请检查您的配置中的租户 ID 和受众 ID。您可能仍然对测试环境有参考。

【讨论】:

租户ID与我使用的相同目录相同。而且我没有观众 ID,所以我认为这也不是问题 如果您可以发布您的代码或一些屏幕截图,那么会更清楚地看到发生了什么。

以上是关于AADSTS50012:从测试应用程序移动到生产环境时提供了无效的客户端密码的主要内容,如果未能解决你的问题,请参考以下文章

WatchOS2 Health Kit - 添加到活动移动环

Xcode使用xcconfig文件配置环境

AADSTS50020:我们无法从此 api 版本为 Microsoft 帐户颁发令牌

AADSTS90014:请求正文必须包含以下参数:'grant_type'

“AADSTS50034:要登录此应用程序,必须将帐户添加到 <GUID> 目录

Azure AD:收到AADSTS50011错误