如何将 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. 填写以下字段:
字段 值
Alias azure-ad(你自定义的 IdP 别名)
Import from URL 粘贴 Azure 的 Metadata URL,或上传 XML 文件
First Login Flow 可以使用默认的 first broker login,也可以自定义跳过填写资料(见上条)

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

  1. 保存。

👤 映射 Azure 返回的属性

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

Mapper Name Mapper Type SAML Attribute Name User Attribute
email Attribute Importer http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress email
first name Attribute Importer http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname firstName
last name Attribute Importer http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname lastName
username Attribute Importer http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name username

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"页面。

相关推荐
java资料站9 小时前
十一、Spring AI Alibaba · 高级 · 多智能体(Multi-agent)
人工智能·spring·microsoft
专业程序开发源11 小时前
flask家电故障预测系统92491-计算机课程设计/毕业设计
vscode·python·sql·算法·flask·课程设计
空 白II13 小时前
10.10 大语言模型研究简报:Microsoft 发布 Windows 端侧混合智能架构
windows·microsoft·语言模型
毕业设计70316 小时前
(免费领源码)django空气净化器销售系统09218- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
python·scrapy·mysql·pycharm·django·flask·pandas
小黄人软件21 小时前
curl中途续传下载Codex离线安装包 Microsoft Store离线包下载。
microsoft
释厄62321 小时前
智能体释放度子集律——文本 ⊂ 音频 ⊂ 视频⊂ 游戏
开发语言·游戏·microsoft·音视频
龙腾-虎跃1 天前
AI-Vue3-python-flask-Blog 全栈博客项目深度解析:从零搭建你的 AI 博客
人工智能·python·flask
霍格沃兹测试学院-小舟畅学1 天前
UI 智能遍历测试:状态识别、路径规划与覆盖率评估
microsoft·ui
智码看视界2 天前
Edge AI 全栈实战 ⑤:云边协同收尾——MQTT 桥接 + 云端看板管 N 台边缘设备
mqtt·flask·iot·全栈开发·云边协同·edgeai