gpt4 book ai didi

c# - 如何使用 B2C 和 Blazor 获取 JWT 不记名 token

转载 作者:行者123 更新时间:2023-11-30 12:37:44 25 4
gpt4 key购买 nike

我使用 Visual Studio 模板创建了一个新的 Blazor 应用,并在项目创建期间使用向导添加了 B2C。

一切都与身份验证配合得很好。我可以使用我最喜欢的身份提供商登录并接收 id_token。我不知道从哪里可以获得 id_token,但我可以在我的用户身份中看到声明。

我需要帮助的是如何获取声明中的信息以获取访问 token 。我需要此 token 来调用我的端点。

这看起来应该很简单而且很常见,但我似乎找不到任何好的例子。

在普通的 MVC 应用程序中,我可以通过 ConfidentialClientApplicationBuilder.AcquireTokenByAuthorizationCode 获取它,但这在 Blazor 中不起作用(除非我做错了什么)。

我试过这个:https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-access-tokens

我认为它会起作用。如何在我的 Blazor 应用程序中获取“代码”(id_token)?这是在幕后解码的内容,我能找到的只是解码“代码”所产生的声明。

我已经使用 azure 的“运行用户流程”来访问示例 id_token("code") 并将其粘贴到我的项目中并在上面的链接中进行调用,它似乎可以正常工作。我遇到了权限问题,但这至少是一次成功的调用。

也许如果我可以访问 id_token,我可以从那里开始工作吗?

最佳答案

这看起来像是一个客户端应用程序,类似于 SPA。在这种情况下,您必须使用隐式流程,其中响应类型为“id_token token”,并在一次调用中将 id token 和 access token 返回给浏览器。这不是一个确切的答案,但只有我们的 MSAL.js 库可以进行此类调用,但 Blazor 似乎使用 C#,而 msal .net 不进行客户端身份验证调用。只要您将应用程序注册为 native 应用程序,acquireTokenByAuthCode() 就会在客户端工作,因此不需要密码。

关于c# - 如何使用 B2C 和 Blazor 获取 JWT 不记名 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58998305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com