使用OAuth 2.0的一个挑战是规范的可变性意味着每个提供程序实现OAuth的方式略有不同。如果我想为OAuth编写消费者,我需要为我想要实现的每个提供者做一些非常具体的编码。
说明OpenID Connect的定义是否足以避免此陷阱,是否准确?单个通用OIC消费者库是否能够连接到任何经过认证的OIC提供商,而无需为每个提供商提供自定义代码?
提前致谢!
[edit] - 语法
答案 0 :(得分:2)
当使用OAuth 2.0进行用户身份验证时,您会遇到您描述的陷阱,也会在此处记录:http://oauth.net/articles/authentication/,即每个提供商都必须实现自己的扩展,以使OAuth 2.0适合该用例,因为OAuth 2.0不是为用户身份验证或Web SSO而设计的。
但是当使用OAuth 2.0的OpenID Connect配置文件时,您确实可以使用通用的OpenID Connect Client / RP对任意提供商进行身份验证,假设两者都遵循规范。作为示例,请参阅:https://github.com/pingidentity/mod_auth_openidc