如何在启用了MFA的Azure AD中对集成测试进行身份验证?

时间:2018-07-13 14:58:11

标签: azure azure-active-directory multi-factor-authentication

我们在Azure AD中启用了多因素身份验证(MFA)。当用户访问受保护的资源(网站)时,这非常好。但是,在尝试实施包括自动集成/验收测试的CI管道时,这会带来问题。为了解决这个问题,我们目前正在使用授权代码流通过应用密钥来对应用进行身份验证。

但是,Web应用程序通过基于用户角色启用/禁用的各种功能来支持基于角色的安全性。手动测试很容易,因为我们可以使用与不同角色相关联的测试帐户登录应用程序。因为我们必须使用授权代码流来规避自动化测试中的MFA,所以我们无法测试应用程序的安全性(除了需要经过身份验证的用户之外)。

是否有一种方法可以使这项工作正常进行,以便我们获得一个访问令牌,其中包含基于我们正在测试的特定角色的声明,就像我们以用户身份登录一样?

1 个答案:

答案 0 :(得分:0)

您可以使用Auth0授权扩展来存储基于角色和权限的令牌。 https://medium.com/tojs/adding-groups-roles-and-permissions-to-a-jwt-access-token-in-auth0-827cc7df7662

我的建议是使用一个令牌,并在某处跟踪USER与TOKEN_VALID_IF_ISSUED_AFTER之间的关系。

此时,当用户注销,权限更改,密码更改时,您可以在表中插入$ USER_ID和NOW()记录。

下次令牌通过您的API时,您需要通过iat声明验证令牌是在TOKEN_VALID_IF_ISSUED_AFTER之后发出的;否则,用户将必须获得一个全新的令牌。

另请参见提供解决方法的此线程:Role based tokens ASP.net Identity