You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Azure B2C登录界面添加并集成Azure工作账户按钮?

在Azure B2C中添加Azure工作账户登录按钮的完整实现步骤

我刚帮团队搞定了Azure B2C集成工作账户(也就是Azure AD组织账户)登录的需求,把踩过的坑和完整步骤整理给你,照着来肯定能成:

一、先搞定前置准备

  • 得有Azure B2C租户的全局管理员权限,不然很多配置入口看不到
  • 已经创建了至少一个B2C用户流(比如登录/注册流,这是基础载体)
  • 如果要限制仅特定组织的工作账户登录,提前记好目标Azure AD的租户ID;要是允许所有组织,这步暂时不用管

二、添加Azure AD作为身份提供者

  1. 登录Azure门户,先切换到你的B2C租户(别选错成普通Azure AD租户了!)
  2. 左侧菜单找身份体验框架,点进去后选身份提供者
  3. 点击新建OpenID连接提供者,开始配置工作账户的身份源
  4. 关键配置项填这些:
    • 名称:直接填Azure AD 工作账户就行,这个名称会直接显示在登录按钮上
    • 元数据URL:如果允许所有组织的工作账户登录,填https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration;如果只开放给特定组织,把common换成该组织的租户ID
    • 客户端ID:得先去目标Azure AD租户(不是B2C!)注册一个应用:
      • 切换到目标Azure AD租户,进入应用注册 > 新注册
      • 名称随便填,支持账户类型选「任何组织目录中的账户」(或特定组织,看你需求)
      • 重定向URI选Web,值填https://<你的B2C租户名>.b2clogin.com/<你的B2C租户名>.onmicrosoft.com/oauth2/authresp(把<你的B2C租户名>换成实际名称)
      • 注册完成后,复制应用程序(客户端)ID,回到B2C的配置页面粘贴进去
    • 客户端密码:在刚才注册的Azure AD应用里,找证书和密码,新建一个客户端密码(记得保存生成的密码,离开页面就看不到了),然后粘贴到B2C的对应字段
    • 范围:默认填openid profile email就足够获取用户基本信息了
    • 响应类型:选code,响应模式选form_post,别乱改
  5. 全部填完点击保存,这一步就搞定了身份源的配置

三、把工作账户按钮挂到用户流上

  1. 回到B2C租户的身份体验框架 > 用户流,选你要修改的那个登录/注册流(比如默认的B2C_1_signupsignin1
  2. 左侧菜单点身份提供者,然后勾选你刚才创建的Azure AD 工作账户
  3. 点击保存,然后直接点运行用户流测试!此时登录页面应该会出现你命名的那个工作账户登录按钮

四、自定义按钮样式(可选)

如果默认按钮样式不符合你的产品风格,可以改自定义UI:

  1. 在用户流的页面布局里,选择自定义页面,上传你的自定义HTML模板(如果还没模板,可以先下载B2C的默认模板来改)
  2. 在模板里找到身份提供者按钮的区块,对应Azure AD的按钮ID是AzureAD(或者你刚才设置的身份提供者名称对应的ID),可以加CSS调整样式,比如:
#AzureAD {
  background-color: #0078d4;
  color: #fff;
  border: none;
  padding: 12px 24px;
  border-radius: 4px;
  font-size: 14px;
  cursor: pointer;
}
#AzureAD:hover {
  background-color: #005a9e;
}
  1. 保存模板后重新运行用户流,就能看到自定义后的按钮了

五、踩过的坑提醒

  • 一定要注意区分B2C租户和普通Azure AD租户,很多人配置时选错租户导致失败
  • 重定向URI必须完全一致,多一个空格、大小写错了都会导致回调失败
  • 如果测试时出现权限错误,检查Azure AD应用的API权限,确保已经添加了openid相关权限(默认注册时会自动加,但最好确认下)

内容的提问来源于stack exchange,提问作者Hitesh Prajapati

火山引擎 最新活动