当前位置: 首页 > news >正文

如何将 Azure Active Directory (Azure AD) 作为 SAML IdP 对接到 Keycloak

✅ 一、在 Azure AD 创建 SAML 应用

🔧 1. 登录 Azure 门户

前往 https://portal.azure.com,使用管理员账号登录。

📌 2. 创建企业应用(Enterprise Application)

  • 左侧菜单进入 “企业应用程序”
  • 点击 “新建应用程序”
  • 选择 “从库中创建” → 搜索 “Non-gallery application”,起一个名字,比如 Keycloak SAML → 创建。

🔗 3. 配置 SAML 登录方式

  • 进入你刚创建的应用 → 左侧选择 “单一登录” → 选择 SAML

  • 点击第一步【基本 SAML 配置】的编辑图标 ✏️,填写:

    字段
    Identifier (Entity ID)https://<keycloak-host>/realms/<realm-name>
    Reply URL (Assertion Consumer Service URL)https://<keycloak-host>/realms/<realm-name>/broker/<idp-alias>/endpoint

    示例:

    Identifier: https://sso.example.com/realms/demo
    Reply URL: https://sso.example.com/realms/demo/broker/azure-ad/endpoint
    
  • 保存。


📎 4. 下载 IdP Metadata

在 Azure SAML 设置页面第 3 步,找到:

  • Federation Metadata XML:复制 URL 或下载 XML 文件。

✅ 二、在 Keycloak 中配置 Azure AD 作为 SAML IdP

➕ 添加 SAML IdP

  1. Keycloak 管理后台 → Identity Providers → 选择 SAML v2.0
  2. 填写以下字段:
字段
Aliasazure-ad(你自定义的 IdP 别名)
Import from URL粘贴 Azure 的 Metadata URL,或上传 XML 文件
First Login Flow可以使用默认的 first broker login,也可以自定义跳过填写资料(见上条)

其他字段通常 Keycloak 会自动填好。

  1. 保存。

👤 映射 Azure 返回的属性

切换到 Mappers 标签,添加如下属性映射(根据 Azure 返回的内容而定):

Mapper NameMapper TypeSAML Attribute NameUser Attribute
emailAttribute Importerhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressemail
first nameAttribute Importerhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/givennamefirstName
last nameAttribute Importerhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/surnamelastName
usernameAttribute Importerhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameusername

Azure AD 默认返回的字段是长 URI 格式。


✅ 三、让 Azure AD 知道 Keycloak 是谁

你可以将以下地址(SP Metadata)发给 Azure 管理员参考:

https://<keycloak-host>/realms/<realm-name>/broker/<idp-alias>/endpoint/descriptor

✅ 四、测试登录

用户可以通过以下 URL 自动跳转到 Azure AD 登录:

https://<keycloak-host>/realms/<realm-name>/protocol/openid-connect/auth?client_id=<client-id>&redirect_uri=<redirect-uri>&response_type=code&kc_idp_hint=azure-ad

🔄 可选:自定义首次登录行为(跳过填写资料)

可以结合上面提到的:

  • 修改 First Broker Login Flow
  • 映射好用户信息字段

就能避免用户登录后看到“Update Account Info”页面。

http://www.xdnf.cn/news/96571.html

相关文章:

  • 从零手写 RPC-version1
  • django软件开发招聘数据分析与可视化系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 搭建Stable Diffusion图像生成系统实现通过网址访问(Ngrok+Flask实现项目系统公网测试,轻量易部署)
  • JavaEE学习笔记(第二课)
  • C#开发usb hid 简易GUI调试工具记录
  • 2025山东省职业院校技能大赛网络安全赛项样题
  • rk3588 驱动开发(二)第四章嵌入式 Linux LED 驱动开发实验
  • 初阶数据结构--排序算法(全解析!!!)
  • 【JVS更新日志】物联网、智能BI、智能APS 4.23更新说明!
  • Android仿今日头条Kotlin版本
  • gem5教程第五章 了解gem5默认配置脚本
  • eplan许可证与防火墙安全软件冲突
  • MobileNetV2:面向移动端的高效神经网络架构革新——突破轻量化模型的设计边界
  • 三目云台转动性能稳定性
  • C# 中的 `lock` 关键字本质
  • 3.6/Q1,GBD数据库最新文章解读
  • 鸿蒙中的并发线程间通信、线程间通信对象
  • 【计算机视觉】CV项目实战- SiamMask 单阶段分割跟踪器
  • 深入理解 java synchronized 关键字
  • 【C语言-选择排序算法】实现对十个数进行排序
  • 如何确定置信水平的最佳大小
  • 进行网页开发时,怎样把function()中变量值在控制台输出,查看?
  • 大模型框架技术全景与下一代架构演进
  • Ollama API 应用指南
  • leetcode - 字符串
  • 实现SpringBoot底层机制【Tomcat启动分析+Spring容器初始化+Tomcat 如何关联 Spring容器】
  • 微服务Nacos组件的介绍、安装、使用
  • 网络安全风险评估报告书模版(Word)
  • Python项目--基于计算机视觉的手势识别控制系统
  • 自建开源远程协助服务RustDesk —— 筑梦之路