我是Microsoft Graph Framework的新手。我最近开发了一个带有Graph API集成的Web应用程序。
第一次浏览我的应用程序页面时,它会将用户重定向到Microsoft应用程序登录页面并提示输入凭据。验证成功后,我会使用身份验证令牌获取用户的电子邮件,并对这些电子邮件进行后期处理。
但是,我需要编写测试以查看令牌是否正确保留以及后续处理电子邮件。我的所有测试都是在jenkins上运行的自动化测试,这些测试未设置为使用浏览器运行。没有身份验证令牌,我无法测试下游进程。有没有办法通过API获取令牌而无需浏览器/用户干预?
答案 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);