前言
SAML协议是许多身份验证提供商(Identity Provider,IdP)使用的一种开放标准,可以通过基于SAML协议的联合身份验证将身份验证提供商(Azure Active Directory)与第三方应用进行集成,从而实现自动登录(单一登录)到第三方应用,以便于减少向一个用户分发多个身份验证令牌的管理开销,使用户无需登录即可切换到第三方应用,提升用户体验。
在 SAML 协议中,涉及两个主体。一个是服务提供方(Service Provider,SP),即第三方应用。另一个是身份验证提供商(Identity Provider,IdP),其负责验证用户身份。SP提供服务,需要知道用户的身份,就需要向IdP询问。IdP知道用户的身份,当用户在IdP登录成功,IdP就将用户的身份以SAML断言的形式发给SP。SP信任IdP发来的身份断言,从而赋予该用户在SP的相关权限。
本篇文章将以Azure AD为IDP,以WordPress博客为SP,实现从Azure AD到WordPress的单点登录,即可以使用微软账号登录到WordPress博客。这里仅以WordPress博客来举例,可以把WordPress博客替换为支持SAML协议的公司内部应用或其它的第三方应用。
注意:由于WordPress本身不支持SAML协议,因此需要安装一个支持SAML协议的插件:SAML Single Sign On – SSO Login
将Azure AD配置为WordPress的IDP
1、登录到Azure AD门户
2、点击 更多服务
3、搜索并选择 Microsoft Entra ID
4、选择 企业应用程序
5、单击 新建应用程序
6、单击 创建自己的应用程序
7、输入应用的名称,然后选择“非库应用程序”部分,然后单击“创建”按钮
8、单击 设置单点登录
9、选择 SAML
10、单击 编辑按钮
11、从SP(WordPress)中获取Entity ID与ACS URL,填入到Azure应用上的对应位置,并保存
12、调整属性映射,这些属性将会发送给SP,可以根据SP的账号密码格式进行自定义
13、将用户或组分配给SAML应用程序,即指定哪些用户或组可以单点登录到SP
14、至此,成功将Azure AD配置为WordPress的IDP
将WordPress配置为SP
1、在Azure应用上复制 应用联合元数据 URL
2、将 应用联合元数据 URL 填入到SP(WordPress)的对应位置处,然后通过URL提取IDP的相关元数据,使其自动填入到SP
3、若SP无自动提取功能,也可以手动填写,相关信息可以从Azure应用上获取
4、在SP中调整由IDP发送过来的属性映射,若IDP发送的格式不合适,则可以根据SP的账号密码格式进行自定义
总结
可以从Azure应用的属性界面中获取到用户访问URL,通过该URL即可使用Azure账号快速访问第三方应用。
此外,也可以在Microsoft 365各个应用的界面左上角九宫格按钮中找到所配置的第三方应用,通过该入口也可以实现快速访问。
本文以WordPress博客作为SP来配置SSO,实际应用中可以把WordPress博客替换为支持SAML协议的公司内部应用或其它的第三方应用。