AADSTS70002:验证凭据时出错.AADSTS50012:客户端断言不在其有效时间范围内



我正在使用Microsoft Java SDK连接到Azure云。

我已经从.crt,.key & root.crt.
我已将.crt上传到Azure AD>App Registrations>Settings>Upload公钥下。

之后,从我的 Java 代码中,我尝试通过将 p12 内容和密码传递给以下 API 来获取 Azure 客户端(身份验证(:

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials();
public ApplicationTokenCredentials(String clientId, String domain, byte[] certificate, String password, AzureEnvironment)
Azure azure = Azure.authenticate(credentials).withSubscription(SUBSCRIPTION_ID);

上述调用成功。但是,如果我们尝试获得azure.networks()azure.storage()它会失败并显示以下错误:

AADSTS70002:验证凭据时出错。AADSTS50012:客户端断言不在其有效时间范围内。

请帮我解决这个问题。

根据用于应用程序身份验证的证书凭据,上传公钥后。

我们还需要更新清单

在客户端应用程序的 Azure 应用注册中,打开应用程序清单,并使用以下架构将 keyCredentials 属性替换为新的证书信息:

"keyCredentials": [
{
"customKeyIdentifier": "$base64Thumbprint",
"keyId": "$keyid",
"type": "AsymmetricX509Cert",
"usage": "Verify",
"value":  "$base64Value"
}
]

如果证书不是必需的,我们还可以使用 Azure 门户生成机密。之后,我们可以通过以下方式获得应用程序令牌凭据

public ApplicationTokenCredentials(String clientId,
String domain,
String secret,
AzureEnvironment environment)

注意:如果我们想访问 Azure 资源,我们还需要将 Azure AD 应用程序断言为角色。

最新更新