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

Authentication 如何使用自动化测试Microsoft身份验证过程?,authentication,jenkins,automated-tests,microsoft-graph-api,Authentication,Jenkins,Automated Tests,Microsoft Graph Api,我是微软图形框架的新手。我最近开发了一个与Graph API集成的web应用程序 第一次浏览“我的应用”上的页面时,它会将用户重定向到Microsoft应用登录页面并提示输入凭据。一旦身份验证成功,我就使用身份验证令牌获取用户的电子邮件,并对这些电子邮件进行后期处理 但是,我需要编写测试,以查看令牌是否被正确持久化,以及后续的电子邮件处理。我的所有测试都是在jenkins上运行的自动化测试,jenkins没有设置为使用浏览器运行。没有身份验证令牌,我无法测试下游进程。有没有一种方法可以在不需要浏

我是微软图形框架的新手。我最近开发了一个与Graph API集成的web应用程序

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


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

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


总之,您可以在上注册应用程序并添加应用程序权限,如
User.Read.All
。由于目标是获得无需用户登录即可使用的令牌,因此您需要获得管理员同意,授予应用程序作为服务运行的访问权限。在一次性设置之后,您可以使用应用程序信息和密码轻松请求令牌。

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

总之,您可以在上注册应用程序并添加应用程序权限,如
User.Read.All
。由于目标是获得无需用户登录即可使用的令牌,因此您需要获得管理员同意,授予应用程序作为服务运行的访问权限。在一次性设置之后,您可以通过使用应用程序信息和密码轻松请求令牌。

也许您可以使用,您的测试不会通过正常的交互体验

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

UserCredential uc=新的UserCredential(用户,密码);
公共任务AcquireTokenAsync(
字符串资源、字符串clientId、UserCredential和UserCredential);
也许您可以使用,因为您的测试没有经过正常的交互体验

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

UserCredential uc=新的UserCredential(用户,密码);
公共任务AcquireTokenAsync(
字符串资源、字符串clientId、UserCredential和UserCredential);

这在我的情况下不起作用,因为我正在构建的应用程序应该只为组织中的某些用户同步电子邮件。(这些是将在web应用程序上授权的用户)。管理员不会同意为我的应用程序提供
Email.Read.All
权限,因为这样我的应用程序就可以读取来自CEO邮箱的收件箱,而CEO邮箱在我的情况下不起作用,因为我正在构建的应用程序只应同步组织中某些用户的电子邮件。(这些是将在web应用程序上授权的用户)。管理员不会同意向我的应用程序提供
Email.Read.All
权限,因为这样我的应用程序甚至可以从CEO的邮箱读取收件箱