1

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

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

有没有办法让这个工作,所以我们得到一个访问令牌,其中包含基于我们正在测试的特定角色的声明,就像我们以用户身份登录一样?

4

1 回答 1

-1

您可以使用 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 之后发出的——如果不是,用户将必须获得一个全新的令牌。

另请参阅提供解决方法的此线程:基于角色的令牌 ASP.net 身份

于 2018-07-30T17:16:09.770 回答