Facebook 的 OpenID Connect 配置
Posted
技术标签:
【中文标题】Facebook 的 OpenID Connect 配置【英文标题】:OpenID Connect Configuration for Facebook 【发布时间】:2014-08-15 15:09:38 【问题描述】:Google 在https://accounts.google.com/.well-known/openid-configuration 实现了OpenID Discovery Spec,它允许开发人员和用户找到 OpenID 身份验证所需的 URL 和密钥。
我想知道 Facebook 和可能的其他(例如 Microsoft Live)等价物是什么,以便我可以以标准方式使用 Facebook 和其他。
SalesForce 也有一个发现 URL https://login.salesforce.com/.well-known/openid-configuration
【问题讨论】:
+1,这种信息在facebook's docs很难找到。 【参考方案1】:这是 Facebook 的 OpenID 配置
https://www.facebook.com/.well-known/openid-configuration/
【讨论】:
赞成,因为原始答案已过时,而且 Facebook 已转向 OpenID 标准。 令人讨厌的是,它并没有非常严格地遵守 OpenID 标准。例如,“response_mode”无效。祝你好运,使用隐式流以外的任何东西。 这里没有令牌端点,所以看起来 Facebook 不支持 OpenID Connect(至少不完全支持) 查看 Facebook 的文档,端点是他们所谓的“limited login”,似乎有一些限制。【参考方案2】:Facebook 的登录机制/协议不是基于 OpenID Connect。 Facebook 使用 OAuth 2.0 的专有扩展,但它不是 OpenID Connect 指定的标准化扩展。因此,与遵守标准的 Google 和 Salesforce 不同,期望 Facebook 发布 OpenID Connect Discovery 文档是没有意义的。
【讨论】:
twitter 也是这样吗? 是的,对于 GitHub。不知道为什么他们没有实现如此简单但有用的 API【参考方案3】:这是 Microsoft Azure AD 的 OpenID Connect 发现 URL:https://login.windows.net/common/.well-known/openid-configuration
More information here.
【讨论】:
发行人有一个占位符“tennantid”有点奇怪 嗯,他们需要 response_mode,根据规范,它是可选的,很有趣。但让我看看那个价值是什么。response_mode
条目不需要客户端上的任何内容;它只是说服务器支持所有可能的响应模式
来自信息response_mode
[必填] 表示响应的编码。支持的值为 fragment(URL 片段)和 form_post(HTTP 表单 POST)。
对不起,我误解了:我以为您指的是 Discovery 文档中的(也是可选的)条目;似乎确实必须由与 MS Provider 交谈的客户提供此选项以上是关于Facebook 的 OpenID Connect 配置的主要内容,如果未能解决你的问题,请参考以下文章
是否有适用于所有内容的通用OpenId Connect客户端库?
更改 Liferay 登录页面中的“OpenId Connect”链接的最佳方法是啥?
使用 OpenID Connect Gluu 身份验证提供程序来保护 Spring Boot Web App 客户端