Mendix 使用OIDC组件实现SSO|Azure Microsoft Entra ID 集成(原名:AD)

news2024/10/6 6:40:02

引言

在快节奏的软件开发领域,Mendix作为一款领先的低代码开发平台,为企业提供了快速构建、部署和迭代应用程序的能力。这种灵活性和效率使得Mendix成为了推动数字化转型的强大工具。随着企业应用数量的激增,单点登录(SSO)成为了提升用户体验和安全性的关键技术。通过SSO,用户可以使用一组凭证,安全地访问多个系统和应用,从而大大提高了工作效率和数据安全性。

在本文中,我们将深入探讨如何利用Mendix和OpenID Connect(OIDC)组件实现与Azure Active Directory(AD)的无缝集成,从而启用Azure SSO。我们将通过详细的配置步骤指导开发人员完成整个过程,确保您能够顺利实现系统的SSO功能。

什么是OIDC和Azure SSO

OIDC(OpenID Connect)

OpenID Connect(OIDC)是基于OAuth 2.0协议之上的一个身份层,它允许应用程序进行身份验证服务,即确认用户是谁。OIDC引入了一个ID令牌(ID Token),这是一个JSON Web Token(JWT),包含了用户的身份信息。通过OIDC,应用程序可以请求并接收关于用户的信息,并在用户授权的情况下,访问用户在其他应用中的资源。

Azure SSO(Microsoft Entra ID

Azure单点登录(SSO)是一种基于Azure Active Directory(已经改名:Microsoft Entra ID)的服务,它允许用户使用一个账户登录多个应用程序或服务。借助Azure SSO,企业可以简化用户的登录流程,提高安全性,并减少密码相关的支持请求。Azure SSO通过利用标准协议,如SAML 2.0、OAuth 2.0和OIDC,实现与各种第三方应用和服务的集成。

配置Mendix以使用Azure SSO

准备工作

在开始配置之前,需要确保以下准备工作已经完成:

Azure 的准备:

  1. 拥有一个Azure账户并能够访问Azure Active Directory。
  2. 确保你有足够的权限在Azure AD中注册新的应用程序。

Mendix项目的准备:

  1. 一个已经创建好的Mendix项目。
  2. 对Mendix项目有足够的权限,以安装和配置模块。

步骤一:在Azure中注册应用

1、登录到Azure门户,并导航到Azure Active Directory。
在这里插入图片描述

2、 在左侧菜单中选择"App registrations”,然后点击"New registration"。
在这里插入图片描述

3、 填写应用的名称,选择支持的账户类型,设置重定向URI(Web类型),这将用于OIDC响应。

在这里插入图片描述

4、完成注册并记下应用的(客户端ID)和(租户ID)。

在这里插入图片描述

5、 添加Certificates & secrets。
在这里插入图片描述

步骤二:配置Mendix OIDC模块

1、在Mendix项目中,通过Mendix Marketplace安装OIDC模块。

在这里插入图片描述
该OIDC模块需要依赖以下模块(必须安装):

  • Encryption – see Encryption documentation
  • Community Commons – see Community Commons documentation
  • Nanoflow Commons – see Nanoflow Commons documentation
  • Mx Model reflection – see Mx Model Reflection documentation

2、配置 Mx Model Reflection

App Explorer, 添加MxModelReflection 模块的 MxObjects_Overview 页面导航菜单

在这里插入图片描述

3、运行Mendix App,配置MxModelReflection 和OIDC。
在这里插入图片描述

4、配置OIDC的角色信息
在这里插入图片描述

5、设置应用的,允许Anonymous用户。
在这里插入图片描述

6、添加OIDC 配置页面和导航,OIDC_Client_Overview。
在这里插入图片描述
7、自定义登录页面,并且在页面中添加SSO按钮。

SSO 按钮设置到OIDC 的 Login_Web_Button 的页面中,用于选择SSO的身份认证服务。
在这里插入图片描述
在这里插入图片描述

步骤三:配置 OIDC Provider

1、运行Mendix 应用程序,打开OIDC client 页面, 并且新建OpenID Provider。
在这里插入图片描述

2、填写General 信息,填写Alias 和Client ID。

在这里插入图片描述
Client ID:在Azure 配置的Application ID。
在这里插入图片描述
3、填写Automatic Configuration URL,配置OIDC Provider 的Endpoints相关信息。

提示:填入URL地址之后,单击Import Configuration会自动导入相关的配置信息。

在这里插入图片描述

Automatic Configuration URL,可以在Azure 的【Endpoints】里面获取,如下图:

在这里插入图片描述

4、添加Scopes信息。
在这里插入图片描述

5、单击保存,即可完成配置。
在这里插入图片描述

步骤四:验证和测试

  1. 在Mendix中完成配置后,进行登录测试以验证SSO配置。
  2. 调试任何可能出现的问题,确保流程顺畅。

常见问题与解决方案

问题一:回调URL不匹配

现象:尝试登录时,出现错误提示,指出回调URL不匹配。

解决方案

  • 请检查Azure AD应用注册中的重定向URI设置,确保其与Mendix中OIDC模块配置的回调URL完全一致。
  • 确保在Mendix OIDC模块配置中没有多余的斜杠(/)或拼写错误。

问题二:客户端ID或租户ID配置错误

现象:无法成功进行SSO认证,提示关于认证信息的错误。

解决方案

  • 重新检查Azure AD应用注册信息,确认客户端ID和租户ID是否正确录入Mendix OIDC模块配置。
  • 确保复制粘贴时不包含任何额外空格或不可见字符。

问题三:权限不足

现象:用户无法访问某些资源或服务,显示权限不足的错误。

解决方案

  • 检查Azure AD中的应用权限设置,确保您的应用有权访问所需的资源。
  • 在Mendix应用中正确配置用户角色和权限,确保它们与Azure AD中的设置相匹配。

结论

通过在Mendix应用程序中实施Azure SSO,开发人员可以为用户提供一个安全、便捷的登录体验。SSO不仅减少了用户需要记住的密码数量,降低了忘记密码的风险,还提高了安全性,因为它减少了密码泄露的可能性,并允许集中管理用户凭证和访问权限。

此外,使用Azure AD和OIDC组件实现SSO,可以让Mendix应用无缝集成进企业的IT生态系统中,确保了企业策略和合规性的一致性。通过遵循本文的指导步骤,开发人员可以顺利地配置和部署SSO功能,从而提升用户满意度和生产效率。

希望这篇博客能够帮助你顺利实现Mendix应用的SSO集成。如果在配置过程中遇到任何问题,不妨回顾本文的常见问题解决方案,或者寻求来自Mendix社区和Azure文档的进一步帮助。

感谢阅读,祝您配置顺利!

额外资源和学习材料

为了进一步帮助您和其他读者,我们将提供一些额外的资源和学习材料,这些资源可以帮助您深入了解Mendix、OIDC和Azure SSO的集成:

  1. Mendix官方文档:Mendix提供了丰富的官方文档,包括如何开始新项目、如何使用各种模块以及如何部署和管理您的应用程序等。
    • Mendix Documentation
  2. Azure Active Directory文档:Microsoft提供了详细的文档来帮助您了解Azure Active Directory,包括如何注册应用程序、如何配置SSO以及如何管理用户和组。
    • Azure Active Directory Documentation
  3. OpenID Connect官网:OIDC是一个基于OAuth 2.0的身份验证协议,其官网提供了有关协议的详细信息,包括技术规范和实施指南。
    • OpenID Connect
  4. Mendix社区和论坛:Mendix社区是一个活跃的平台,开发人员可以在这里分享经验、提出问题和寻求帮助。
    • Mendix Community
  5. Microsoft Azure培训和认证:Microsoft提供了广泛的培训材料和认证课程,帮助您更深入地了解Azure服务,包括Azure Active Directory和多种与安全性相关的服务。
    • Microsoft Azure Training

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1494917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【debug】element-ui时间控件回显后不可编辑且显示为空

问题&#xff1a;使用element-ui的时间控件回显数据&#xff0c;编辑数据没有反应&#xff1a;点时间和“确认”按钮都没反应。 输入框中会显示数据&#xff0c;但提交时的校验显示为空。 <el-form-item label"开始时间" prop"limitStartTime"><…

【数据结构】堆的TopK问题

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解堆的TopK问题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一. 前言二. TopK三. 代码 一. 前言 TOP-K问题&#xff1a;即求数据结合中前K个最大的元…

专业145+总分410+西工大西北工业大学827信号与系统考研经验电子信息与通信工程,海航,真题,大纲,参考书。

经过一年的努力&#xff0c;分数终于出来。今年专业课827信号与系统145&#xff08;很遗憾差了一点点满分&#xff0c;没有达到Jenny老师的最高要求&#xff09;&#xff0c;数一130&#xff0c;英语和政治也都比较平衡&#xff0c;总分410分&#xff0c;当然和信息通信考研Jen…

类变量和类方法【静态变量 static】

类变量和类方法【静态变量 static】 类变量什么是类变量如何定义类变量如何访问类变量类变量使用注意事项和细节 类方法类方法的基本介绍类方法的调用类方法应用案例类方法经典的使用场景类方法使用注意事项和细节 类变量 什么是类变量 类变量&#xff0c;也叫静态属性/静态变…

Vue点击切换组件颜色

例如我有一个这样的组件&#xff0c;我希望在点击组件之后由蓝色变成橙色 先把原来的代码附上(简化掉了叉号&#xff09;&#xff1a; <div v-for"(item, index) in words" :key"index" class"scrollbar-demo-item"><span>{{ item …

一次奇特的应急响应

访问polling.oastify.com 今天&#xff08;2024/3/5&#xff09;在深信服防火墙用户安全日志页面&#xff0c;检测到我的主机在和polling.oastify.com域名进行通信 当时通知我检查我的主机&#xff0c;慌得一批&#xff0c;检查完后可能认为是我代理的问题&#xff0c;把代理关…

YOLOv7独家原创改进:特征融合涨点篇 | 广义高效层聚合网络(GELAN) | YOLOv9

💡💡💡本文独家改进:即结合用梯度路径规划(CSPNet)和(ELAN)设计了一种广义的高效层聚合网络(GELAN),高效结合YOLOv7,实现涨点。 将GELAN添加在backbone和head处,提供多个yaml改进方法 💡💡💡在多个私有数据集和公开数据集VisDrone2019、PASCAL VOC实现…

国产嵌入式DSP教学实验箱_操作教程:22-AD采集DA输出实验(采集输出正弦波)

一、实验目的 掌握EMIFA、SPI的使用&#xff0c;了解AD7606、AD5724的芯片特性和使用&#xff0c;并实现基于AD7606采集、AD5724输出正弦波。 二、实验原理 StarterWare StarterWare是一个免费的软件开发包&#xff0c;它包含了示例应用程序。StarterWare提供了一套完整的G…

【CSP试题回顾】201512-2-消除类游戏

CSP-201512-2-消除类游戏 解题思路 输入棋盘大小和颜色: 首先&#xff0c;程序从标准输入读取两个整数n和m&#xff0c;分别代表棋盘的行数和列数。然后&#xff0c;程序读取接下来的n行输入&#xff0c;每行包含m个整数&#xff0c;代表棋盘上每个方格中的棋子颜色。 初始化…

Linux-查看服务器配置信息

一、查看操作系统 1.1、查看操作系统的版本 命令:cat /etc/redhat-release 1.2、查看系统内核 命令:uname –a 二、查看cpu信息 2.1、所有信息 lscpu [root@tes ~]# lscpu Architecture: x86_64 ##cpu架构 CPU op-mode(s): 32-bit, 64-bit Byte Order:…

Qt入门(一)Qt概述

Qt是什么&#xff1f; Qt是一个跨平台应用开发框架。 Qt既包括了一系列的Qt库&#xff0c;还包括诸多配套的开发工具如QtCreater&#xff0c;GUI Designer。Qt本身是由C开发的&#xff0c;但是也提供了其他编程语言的接口。 Qt的定位以及同类 学一种技术&#xff0c;最重要的是…

vue3 如何通过一个方法触发点击事件

需求&#xff1a;在通过一个btn按钮触发另外一个按钮的点击事件。达到点击ok&#xff08;model框按钮&#xff09;,触发create&#xff08;form表单&#xff09;按钮的事件 <!-- 1.首先通过ref创建了一个名为linkRef的引用变量&#xff0c;并将其初始化为null。 --> <…

MySQL进阶之(四)InnoDB数据存储结构之行格式

四、InnoDB数据存储结构之行格式 4.1 行格式的语法4.2 COMPACT 行格式4.2.1 记录的额外信息01、变长字段长度列表02、NULL 值列表03、记录头信息 4.2.2 记录的真实数据 4.3 Dynamic 和 Compressed 行格式4.3.1 字段的长度限制4.3.2 行溢出4.3.3 Dynamic 和 Compressed 行格式 4…

java工程师面试突击第二季分布式,Java视频

一. 什么是架构和架构本质 在软件行业&#xff0c;对于什么是架构&#xff0c;都有很多的争论&#xff0c;每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前&#xff0c;我们先讨论架构的概念定义&#xff0c;概念是人认识这个世界的…

VMwareWorkstation17.0虚拟机搭建WindowsME虚拟机(完整安装步骤详细图文教程)

VMwareWorkstation17.0虚拟机搭建WindowsME虚拟机&#xff08;完整安装步骤详细图文教程&#xff09; 一、Windows ME安装准备工作3.1 Windows ME下载地址3.2 DOS软盘版下载地址3.3 UltraISO 4.用VMware虚拟模仿当年的电脑配置4.1 新建虚拟机4.2 类型配置4.3 类型配置4.4 选择版…

1、MQ_介绍、优缺点、类型等

MQ介绍 1. MQ概述 MQ&#xff08;Message Queue&#xff09;&#xff1a;消息队列&#xff0c;是基础数据结构中FIFO&#xff08;first in first out&#xff09;的一种数据结构。一般用来解决流量削峰、应用解耦、异步处理等问题&#xff0c;实现高性能&#xff0c;高可用&a…

NOC2023软件创意编程(学而思赛道)python小高组复赛真题

目录 下载原文档打印做题: 软件创意编程 一、参赛范围 1.参赛组别:小学低年级组(1-3 年级)、小学高年级组(4-6 年级)、初中组。 2.参赛人数:1 人。 3.指导教师:1 人(可空缺)。 4.每人限参加 1 个赛项。 组别确定:以地方教育行政主管部门(教委、教育厅、教育局) 认…

基于java springboot+VUE疫情防疫系统系统前后端分离设计和实现

基于java springbootVUE疫情防疫系统系统前后端分离设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

K8s Pod 进阶

目录 资源限制 Pod 和容器的资源请求和限制 CPU 资源单位 内存资源单位 示例1 示例2 重启策略&#xff08;restartPolicy&#xff09; 示例 健康检查 探针的三种规则 Probe支持三种检查方法 示例1&#xff1a;exec方式 示例2&#xff1a;httpGet方式 示例3&…

C++--调整数组顺序使奇数位于偶数前面

题目&#xff1a; 输入一个整数数组&#xff0c;实现一个函数来调整该数组中数字的顺序&#xff0c;使得所有的奇数位于数组的前半部分&#xff0c;所有的偶数位于数组的后半部分&#xff0c;并保证奇数和奇数&#xff0c;偶数和偶数之间的相对位置不变。 方法一&#xff1a; …