我正在Visual Studio 2017中创建Web测试以进行性能测试。我们的Web应用程序是具有AAD身份验证前端的Azure。作为测试用户的身份验证失败。用VS或Fiddler录制时,我无法再次播放测试。我相信这是一个令牌问题。
我可以在浏览器中响应标头的 Location 参数中看到身份验证承载令牌。例子-
请求URL :https://login.microsoftonline.com/login.srf
响应标题:
但是,我无法在Visual Studio中获得Bearer令牌。我检查Visual Studio是否使用相同的参数发出相同的请求,但在响应中却收到以下错误而不是令牌。
代替令牌。
有人遇到类似的问题吗?谢谢,伙计们。
答案 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联合。