如何使用自动化测试Microsoft身份验证过程?

时间:2017-08-10 18:45:30

标签: authentication jenkins automated-tests microsoft-graph

我是Microsoft Graph Framework的新手。我最近开发了一个带有Graph API集成的Web应用程序。

第一次浏览我的应用程序页面时,它会将用户重定向到Microsoft应用程序登录页面并提示输入凭据。验证成功后,我会使用身份验证令牌获取用户的电子邮件,并对这些电子邮件进行后期处理。

但是,我需要编写测试以查看令牌是否正确保留以及后续处理电子邮件。我的所有测试都是在jenkins上运行的自动化测试,这些测试未设置为使用浏览器运行。没有身份验证令牌,我无法测试下游进程。有没有办法通过API获取令牌而无需浏览器/用户干预?

2 个答案:

答案 0 :(得分:0)

对于在Jenkins中运行的自动化测试,您可能希望使用不需要用户登录的身份验证流程。有关详细信息,请参阅Getting auth tokens without a user上的文档页面。

总之,您可以在App Registration site上注册应用,并添加User.Read.All等应用权限。由于目标是让令牌在没有用户登录的情况下工作,因此您需要通过获得管理员同意,授予您的应用访问权限以作为服务运行。完成一次设置后,您可以通过POSTing to the token endpoint轻松地使用您的应用信息和密码请求令牌。

答案 1 :(得分:0)

也许你可以使用username/password authentication flow,你的测试不能通过正常的互动体验。

您需要创建一个UserCredential并使用它来获取令牌。

UserCredential uc = new UserCredential(user, password);

public Task<AuthenticationResult> AcquireTokenAsync(
       string resource, string clientId, UserCredential userCredential);