Liferay 7.4 OpenID Connect 作为 Azure B2C 的 SP
Posted
技术标签:
【中文标题】Liferay 7.4 OpenID Connect 作为 Azure B2C 的 SP【英文标题】:Liferay 7.4 OpenID Connect as SP for Azure B2C 【发布时间】:2021-10-20 13:33:10 【问题描述】:我正在尝试通过 OpenId Connect 将 Liferay 配置为具有 Azure B2C IdP 的 SP。
我的问题是我无法在门户登录过程中处理 Liferay 启动的哪种 OAuh/oidc 流。在 Liferay 中配置 OpenID Connect Provider 时的第一个登录请求(并在登录页面上选择 openid connect)是对您的授权 URL 的重定向,Liferay 在 URL 中设置了 response_type=code。没关系,Azure B2C 可以处理它,向我询问用户/通行证。
但是,当 IdP 使用代码响应时(在成功登录后),如协议定义,Liferay 会尝试解析它,就像它是 JWT 访问令牌一样。但不是吗。因为这是 Liferay 需要验证的代码,以请求身份验证令牌端点的令牌(在 Liferay 的 OpenID Connect Provider 部分中配置)。
所以我在 Liferay 登录页面上收到了内部错误。
我已遵循此程序, https://help.liferay.com/hc/en-us/articles/360028711312-Authenticating-with-OpenID-Connect
提前致谢!
【问题讨论】:
【参考方案1】:B2C 配置为here。
B2C 范围通常是 openid 和 offline_access。
您是否创建了 B2C application?
【讨论】:
【参考方案2】:终于发现 Liferay 需要实现 user_info 端点才能使用 openid。 这很少见,因为它实际上不是必需的。我的意思是,Liferay 在调用授权后转到 user_info 端点,以获取用户的电子邮件地址,即使此信息在第一个授权令牌中。
无论如何,解决方案是在 B2C 中实现 user_info,所以 Liferay 现在运行良好。
【讨论】:
以上是关于Liferay 7.4 OpenID Connect 作为 Azure B2C 的 SP的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 liferay7 中覆盖 liferay 模块?