【问题标题】:Unable to get the Bearer Token - Web Test, Performance Testing无法获取承载令牌 - Web 测试、性能测试
【发布时间】:2019-05-17 07:31:36
【问题描述】:

我正在 Visual Studio 2017 中为性能测试创建一个 Web 测试。我们的 Web 应用程序是带有 AAD 身份验证前端的 Azure。失败的是作为测试用户的身份验证。使用 VS 或 fiddler 录制时,我无法再次播放测试。我认为这是一个象征性问题。

我可以在浏览器的响应标头的 Location 参数中看到身份验证承载令牌。例子-

请求网址https://login.microsoftonline.com/login.srf

响应标头

位置:https://domain.fake.URL/login#id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiIxZDYwOGIxOC04YjI2LTQ0MDktODg3ZC1mZmIzY2MxYzEwNDQiLC.....

但是,我无法在 Visual Studio 中获取承载令牌。我检查了 Visual Studio 是否使用相同的参数发出相同的请求,但在响应中它得到以下错误而不是令牌。

位置:https://domain.fake.URL/login#error=invalid_grant&error_description=AADSTS50008%3a+SAML+token+is+invalid.%0d%0aTrace+ID%3a+3c5c2728-f013-49e3-a91d-88a683210800%0d%0aCorrelation+ID%3a+f21fda63-6dc7-4b35-9b46-fc354cc4e8ea%0d%0aTimestamp%3a+2019-05-16+06%3a23%3a48Z&state=29ee5c1a-f49a-4358-be60-8f722f1e6e80

而不是令牌。

有人遇到过类似的问题吗?谢谢各位。

【问题讨论】:

    标签: visual-studio azure-active-directory performance-testing bearer-token webtest


    【解决方案1】:

    当您录制测试时,您很可能通过组织的本地 AD FS 进行了联合登录过程。 (此联合登录可能是透明的,作为一系列重定向。)作为此联合登录的一部分,您组织的 AD FS 将向 Azure AD 颁发标识用户的 SAML 令牌。然后,Azure AD 将验证该 SAML 令牌,并且由于所有内容都已签出,它向应用程序发出了自己的令牌(带有 #id_token=... 的响应)。

    但是,当您稍后尝试重播这些步骤时,AD FS 发出的原始 SAML 令牌(在原始录制期间)已过期并且不再有效。因此,Azure AD 不是使用预期的 ID 令牌重定向回您的应用程序,而是重定向回您的应用程序,并显示有关错误 SAML 令牌的错误。

    您应该能够通过记录新的登录序列并立即重播以进行测试来验证这一点。您可能会发现测试一开始会通过,然后在令牌过期后最终会再次开始失败。

    此问题的解决方案在很大程度上取决于您的测试环境、Azure AD 和 AD FS 环境,以及您尝试加载测试的具体内容。一种选择是使用来自 Azure AD 中的专用测试租户的仅限云的专用测试用户(您应该在测试中包含来自生产环境的真实用户的任何凭据)。如果您尝试验证的部分内容包括联合登录,那么您应该使用 AD FS 的测试实例,并将您的测试 Azure AD 租户与此测试 AD FS 联合。

    【讨论】:

    • 是不是每次都能拿到新的token?如果是,那怎么办?当我从 Visual Studio 运行 Web 测试时。
    • 如前所述,这完全取决于您运行测试的环境。
    猜你喜欢
    • 2014-08-20
    • 1970-01-01
    • 2018-05-12
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多