使用Azure B2C登录时如何在自定义页面中嵌入登录控件

2024-03-29

我正在使用 Azure AD B2C 示例,出于测试目的,我使用稍作修改的单页应用程序sample https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp。我还创建了一个 Azure B2C 和一个测试 api(作为 Azure 函数)。测试 API 和单页应用程序已在 Azure B2C 中注册为正确的应用程序,并且设置正常工作。

该场景是用户登录Azure B2C,获取令牌并使用令牌调用Azure函数。问题是登录页面在一个单独的窗口中打开,B2C Url 在地址栏中。我想要的是将登录控件嵌入到单页应用程序中。

我浏览了文档,发现可以自定义登录页面(在用户流程策略/页面布局中),但似乎它仍然是一个单独的页面,这是我不想要的。另一个想法是让单页应用程序将登录请求作为 AJAX 请求发送到我自己的服务器,然后该服务器代表该用户执行登录,然后将令牌中继回单页应用程序。但这似乎有很多麻烦和不必要的间接,我想尽可能避免。

Following is an screenshot of the scenario: Azure B2C login scenario showing login control opens in a separate page/window


目前,单页应用程序无法嵌入登录体验,因为 Azure AD B2C 不允许 CORS 或 iframe,这意味着您只有以下选项:

  1. 浏览器重定向
  2. 浏览器弹出窗口
  3. 通过您自己的服务器将登录凭据发布到资源所有者密码凭据 (ROPC) 策略 https://learn.microsoft.com/en-us/azure/active-directory-b2c/configure-ropc

浏览器弹出窗口和重定向之间的差异描述于https://learn.microsoft.com/en-us/azure/active-directory/develop/scenario-spa-acquire-token?tabs=javascript#choose- Between-a-pop-up-or-redirect-experience https://learn.microsoft.com/en-us/azure/active-directory/develop/scenario-spa-acquire-token?tabs=javascript#choose-between-a-pop-up-or-redirect-experience

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Azure B2C登录时如何在自定义页面中嵌入登录控件 的相关文章

  • 使用 MSAL 与 Angular 进行重定向_uri_mismatch Azure AD B2C

    使用时loginRedirect or acquireTokenRedirect 我收到以下错误 redirect uri mismatch AADB2C90006 3a 请求中提供的重定向 URI http 3a 2f 2flocalho
  • Terraform azurerm 计划 start_time 始终在新部署时重置

    我正在尝试获取资源azurerm automation schedule在特定时间部署 ex 18 00 每月发生 我正在使用以下代码 locals update time 18 00 update date formatdate YYYY
  • Azure Functions:CosmosDBTrigger 在 Visual Studio 中未触发

    TL DR 这个例子 https learn microsoft com en us azure azure functions functions bindings cosmosdb trigger c example在 VS2017 中
  • 使用 Rails 自动登录?

    我正在尝试使用 Rails 的 Restful Authentication 插件建立一个简单的身份验证系统 我只是想知道它是如何工作的 b c 我似乎无法弄清楚 cookie 的要求是什么 以及如何做到这一点浏览器始终会记住您 6 个多月
  • Azure PostgreSQL 时间点还原不起作用

    我们在 Azure 中有一个 Postgre 数据库 但遇到了一个问题 表中的所有行都被删除 我们尝试使用 de azure 门户中的 时间点还原 选项 但创建的数据库与当前运行的数据库具有相同的数据 我们还尝试了其他日期和时间 数据库问题
  • html 表单发布到 Flex 应用程序

    我有一个基本完成的 Flex 应用程序 它使用 Zend AMF 来连接 提供数据 我的应用程序确实有一个登录屏幕 看起来工作正常 现在我想在我的网站上添加另一个登录表单 允 许用户输入用户名 密码 提交表单时应将数据传递给 Flex 应用
  • 为什么 $_SERVER["PHP_AUTH_USER"] 和 $_SERVER["PHP_AUTH_PW"] 没有设置?

    在开始之前 我想指出我浏览过 Stack Overflow 并发现了其他类似的问题 PHP AUTH USER 未设置 https stackoverflow com questions 3663520 php auth user not
  • 在闪亮的应用程序和多个页面中进行身份验证

    在我正在开发的系统中 我有 3 个不同的参与者 用户 管理员 支持团队 使用 Shiny App 我想知道如何向这三个参与者进行身份验证 每个参与者只能访问他们的页面 我发现使用闪亮的服务器专业版可以实现这一点 但它不是免费的 有什么方法可
  • AngularJS + Laravel 5 身份验证

    在使用 AngularJS 构建 SPA 时 我想在 AngularJS 网站中实现用户身份验证 但是 我不知道从哪里开始以及最佳实践是什么 基本上我有一个确定可以担任一个或多个角色 我寻找了一些例子 这样我就可以对如何正确处理这个问题有一
  • Azure AD B2C - 具有 HRD、域提示和 MFA 的自定义策略

    我正在尝试构建一个利用主域发现和域提示的 B2C 自定义策略 我们有 2 个角色 使用 MFA 在 B2C 中进行身份验证的本地用户 必须重定向到其公司的登录页面的外部用户 用例 用户被重定向到https customdomain b2cl
  • Golang 网络爬虫 NTLM 身份验证

    Golang 网络抓取工具需要从经过 NTLM 验证的网页中提取信息 有了有效的用户名和密码 网络抓取工具如何与服务器进行 NTLM 4 次握手 以获得对后面受保护网页的访问权限 url username password http www
  • Connect-AzAccount 无提示

    我正在尝试使用以下方式登录 Azure 门户 Connect AzAccount 此代码要求我输入我不想要的提示 我们可以使用一些简单的配置脚本自动登录吗 正如Joy所说 您可以通过凭据使用用户帐户登录 但不会出现任何提示 请确保您的帐户未
  • Keycloak 社交登录 REST API

    我已经为我的 keycloak 实例启用了谷歌社交登录 但我需要将其用作休息服务 是否有可用于执行此操作的端点 Keycloak 中没有 Google 身份验证 API 但您可以使用以下方法解决它代币交换 https www keycloa
  • 生产中未使用快速会话设置 Cookie

    我的应用程序分为客户端和服务器 客户端是托管在 Now sh 上的前端 Nextjs 应用程序 服务器是使用 Express 创建并托管在 Heroku 上的后端 因此域是 client app now sh 和 server app he
  • 使用 laravel 检查活动用户状态

    这是非常标准的登录功能和验证 效果很好 但我还想检查用户是否处于活动状态 我在用户表中设置了一列 并将 活动 设置为 0 或 1 public function post login input Input all rules array
  • 流分析作业 -> 数据湖输出

    我想使用 StreamAnalytics 作业设置 CI CD ARM 模板 并将输出设置为 DataLake Store https learn microsoft com en us azure templates microsoft
  • Windows 任务计划程序报告不正确/不一致的结果代码

    背景 我正在尝试在计划任务失败时收到电子邮件通知 我的任务可以通过退出代码 错误级别 指示失败 我想使用它并遵循中描述的过滤方法这个答案 https stackoverflow com a 4289360 29805触发电子邮件 Probl
  • 在浏览器上验证 JWT

    我一直在读关于JWT https jwt io 我知道它分为三个部分 即header payload and signature 我将哈希算法保留在标头中 将基本信息保留在有效负载中例如 姓名 年龄 职务 有效期等在有效负载中 然后这两个都
  • 将 gsutil 与谷歌驱动器(不是谷歌云存储)一起使用

    gsutil https cloud google com storage docs gsutil csw 1 gettingstarted use 博托配置文件 https cloud google com storage docs gs
  • 使用单个查询和每用户密码盐进行用户登录

    我决定使用存储在数据库中的每用户盐来实现用户登录 盐作为密码的前缀 该密码使用 SHA 进行哈希处理并存储在数据库中 过去 当我不使用盐时 我会使用典型的方法 使用用户输入的用户名和密码来计算查询返回的行数 然而 对于每个用户的盐 您需要先

随机推荐