我正在使用.Net Core Web API和.Net Core Web MVC应用程序。他们都使用Azure AD B2C对用户进行身份验证。但是为了从Web API获得HttpRequest的响应,我需要为我的Web MVC应用程序上的已登录用户提供来自B2C的JWT访问令牌。有没有一种方法可以使用经过身份验证的“用户”在控制器内部获取此访问令牌。
我尝试访问已登录用户的声明,但是没有运气,我还使用jwt.ms来检查B2C工作流程是否运行良好,并且正在生成JWT令牌并且它也正常运行。MVC应用程序正在对用户进行身份验证,并且Web API与硬编码令牌一起正常工作。我只需要从已登录的用户获取访问令牌,而不是对其进行硬编码即可。
我希望能够获得B2C JWT访问令牌,以便以后可以将其传递给Web Api并能够保护我的请求。
从MS AzureADB2C.UI GitHub团队获得一些帮助后,我们得以解决此问题。问题是默认情况下令牌没有保存在库中,因此我们需要配置OIDC以指定令牌必须保存以供将来在应用程序中使用。这就是“启动”配置的示例代码,以及如何从控制器查询“ JWT访问令牌”的示例。
Startup.cs:
services.Configure(AzureADB2CDefaults.OpenIdScheme, options => {
options.SaveTokens = true;
});
控制器:
string idToken = await HttpContext.GetTokenAsync("id_token");
有关如何解决该问题的更多信息,请参见以下链接:https : //github.com/aspnet/AspNetCore/issues/11424
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句