如何使用 Microsoft.Identity.Client 和集成测试获取没有 UI 的访问令牌



我有一个被Azure B2C锁定的API。 已为使用此 API 的客户端应用正确配置了所有内容。 我的问题与 API 随附的集成测试有关。虽然很明显身份验证会触发 UI 登录,但如何在不弹出 UI 的情况下为需要身份验证的测试用例请求令牌?

现在,我必须有一个实用程序,允许我获取访问令牌(通过弹出UI),然后在我的测试项目中使用它。 最终它会过期,因此所有测试都会失败。这是有道理的,但我想知道是否有人想出了一种方法来自动化使用此库获取令牌的过程,以便测试用例可以在不弹出 UI 的情况下获取它们。 屏幕刮刀?

看起来你想要Resource Owner Password Grant Flow.B2C 不正式支持此功能,但 Azure Active Directory 支持。

阅读这些:是否可以将"资源所有者密码授予"流与 Azure AD B2C 结合使用

https://blogs.msdn.microsoft.com/wushuai/2016/09/25/resource-owner-password-credentials-grant-in-azure-ad-oauth/

请注意,在 B2C 只是充当 AAD(本地帐户)的情况下,可以使用此流。但对于其他社交身份提供商(如 Facebook 和 Google),您不能使用此流程。

我喜欢您的原始方法,即在应用程序外部生成访问令牌并将其粘贴到其中。我建议添加你获得的刷新令牌,以及使用现有刷新令牌获取新令牌的代码。像这样的东西。

让我知道这是否有帮助。

最新更新