无法获取承载者令牌-Web测试,性能测试

时间:2019-05-17 07:31:37

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

我正在Visual Studio 2017中创建Web测试以进行性能测试。我们的Web应用程序是具有AAD身份验证前端的Azure。作为测试用户的身份验证失败。用VS或Fiddler录制时,我无法再次播放测试。我相信这是一个令牌问题。

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

请求URL https://login.microsoftonline.com/login.srf

响应标题

  

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

但是,我无法在Visual Studio中获得Bearer令牌。我检查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

代替令牌。

有人遇到类似的问题吗?谢谢,伙计们。

1 个答案:

答案 0 :(得分:0)

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

但是,当您稍后尝试重播这些步骤时,由AD FS发出的原始SAML令牌(在原始记录过程中)已过期并且不再有效。因此,它不会使用预期的ID令牌将Azure AD重定向回您的应用,而是将其重定向到具有错误SAML令牌错误的应用。

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

解决方案在很大程度上取决于您的测试环境,Azure AD和AD FS环境,以及您要尝试加载测试的特定对象。一种选择是使用来自Azure AD中专用测试租户的仅云专用测试用户(您应该在测试中包括来自生产环境的真实用户的任何凭据)。如果要验证的部分内容包括联合登录,则应使用AD FS的测试实例,然后将测试Azure AD租户与该测试AD FS联合。