小编kga*_*lic的帖子

对如何在 Blazor App 中从 B2C 获取访问令牌感到困惑

我有一个配置了 B2C 身份验证的 Blazor 服务器端应用程序。这个应用程序将调用一个 webapi 来与我的服务进行任何数据交换。B2C 身份验证工作正常,直接从模板配置 B2C 身份验证是:

services.AddAuthentication(AzureADB2CDefaults.AuthenticationScheme)
            .AddAzureADB2C(options => { Configuration.Bind("AzureAdB2C", options); });
Run Code Online (Sandbox Code Playgroud)

这些声明只有我从我的登录策略返回的声明,没有任何我可以用来代表我的 Web api 进行身份验证的访问令牌(也用同一个 B2C 租户保护)。

我已经阅读了大约 100 个不同的文档,但在 blazor 的上下文中似乎没有任何意义。有没有人以前做过这件事可以说明一些问题?

一等奖是在用户第一次向 B2C 进行身份验证后请求访问令牌,然后将令牌保存在缓存中,以便在会话/浏览器打开或访问令牌有效时在 blazor 应用程序中用于任何 api 调用。

似乎这是正确的路径:https : //github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi/blob/master/TaskWebApp/Controllers/TasksController.cs但我什么我不明白的是:

  • 这是 Blazor 的正确方法吗?
  • 如何触发它以获取用户身份验证请求的访问令牌。我不清楚如何覆盖 B2C 身份验证构造函数。
  • 我可以在当前用户的声明中添加访问和刷新令牌,以便我可以在我的应用程序中全局使用 httpcontext 对象来获取执行我的 api 调用所需的令牌吗?
  • 上面文档中的代码当然在控制器中。希望将这种形式作为用户身份验证流程的一部分。
  • 似乎 B2C 身份验证的配置现在非常模板化......例如,我在哪里可以自定义身份验证的路由?我宁愿将用户定向到 /auth 或 /login 而不是 /AzureB2C/Login(为了掩盖明显的身份验证提供程序 url。我知道它会在地址栏中显示给用户......但是嘿......任何将非常感谢帮助将具体说明如何在 Blazor 服务器端处理此问题。

谢谢!

azure azure-ad-b2c blazor blazor-server-side

10
推荐指数
2
解决办法
2562
查看次数

标签 统计

azure ×1

azure-ad-b2c ×1

blazor ×1

blazor-server-side ×1