诸如Okta赞助站点之类的消息源(请参阅“按请求自定义”部分)提到,自动请求的redirect_uri参数不应包含动态查询部分(例如:用于会话匹配)。
引用:
服务器应拒绝所有重定向URL与注册URL不完全匹配的授权请求。
我们的OAuth AZ提供程序是BIG-IP F5。我们正在设置它,它们似乎符合上述观点。
我们的客户是在其他地方构建的Web应用程序,它们似乎不遵循上述规则。这是授权端点的完整表示(已编辑):https ://ourownF5host.ca/f5-oauth2/v1/authorize ? client_id = theIDofOurClient & redirect_uri =https% 3A%2F%2FourClientAppHostname%2FClientRessource%2FRessource%3FSessionId%3D76eab448-52d1 -4adb-8eba-e9ec1b9432a3&state = 2HY-MLB0ST34wQUPCyHM-A&scope = RessourceData&response_type = code
他们使用的redirect_uri格式类似于(为简单起见,在这里我不进行urlencode):redirect_uri = https:// ourClientAppHostname / ClientRessource / Ressource?SessionId = SOMELONGSESSIONID,每个调用的SOMELONGSESSIONID值都是不同的。
我们将DEEP挖入RFC6749(OAuth2),并在第3.1.2.2节中找到了这一点:
授权服务器应该要求客户端提供
完整的重定向URI(客户端可以使用“ state”请求
参数来实现每个请求的自定义)。如果
不可能要求注册完整的重定向URI,则
授权服务器应要求注册URI
方案,权限和路径(允许客户端
在请求
授权时仅动态更改重定向URI的查询组件)。
我了解并希望在此进行验证的是,第一个来源Okta和F5仅接受上述规则的第一部分,并且要求重定向uri必须完全注册而没有任何动态部分。
我是否可以肯定他们(Okta和F5)不遵守摘录的第二部分,并指出他们应“ 允许客户端在请求授权时仅动态更改重定向URI的查询组件 ”?
或者,是否有任何形式的RFC6749官方更正/发展可以保证两家公司的设计地位?