Rest 多种身份验证方案和WWW身份验证挑战
我正在开发一个RESTAPI,它支持多种身份验证方案(Rest 多种身份验证方案和WWW身份验证挑战,rest,http,authentication,oauth,oauth-2.0,Rest,Http,Authentication,Oauth,Oauth 2.0,我正在开发一个RESTAPI,它支持多种身份验证方案(OAuth、Bearer和Basic)。当授权标头不存在或包含不受支持的方案时,服务将使用多个WWW-Authenticate标头进行响应: WWW-Authenticate: OAuth realm="myRealm" WWW-Authenticate: Bearer realm="myRealm" WWW-Authenticate: Basic realm="myRealm" 当请求包含带有一个受支持方案但凭据无效的授权标头时,我的服务
OAuth
、Bearer
和Basic
)。当授权
标头不存在或包含不受支持的方案时,服务将使用多个WWW-Authenticate
标头进行响应:
WWW-Authenticate: OAuth realm="myRealm"
WWW-Authenticate: Bearer realm="myRealm"
WWW-Authenticate: Basic realm="myRealm"
当请求包含带有一个受支持方案但凭据无效的授权
标头时,我的服务应该使用所有受支持的WWW-Authenticate
方案响应,还是仅使用请求中提供的方案响应
例如,如果客户机提供:
Authorization: Bearer invalid
我的服务是否应该只响应承载挑战
WWW-Authenticate: Bearer realm="myRealm", error="invalid_token", error_description="token is malformed or represents invalid credentials"
或者它应该用所有WWW-Authenticate
挑战来响应
WWW-Authenticate: Bearer realm="myRealm", error="invalid_token", error_description="token is malformed or represents invalid credentials"
WWW-Authenticate: OAuth realm="myRealm"
WWW-Authenticate: Basic realm="myRealm"
编辑:似乎提供了一个建议,虽然它不是具体的。我相应地添加了一个。虽然它不是严格要求的,但似乎建议应该返回所有支持的身份验证方案。这将为调用者提供最多的信息,只要他们能够正确解析这些头
4.1。WWW认证
“WWW-Authenticate”标头字段表示身份验证
适用于目标资源的方案和参数
WWW Authenticate=1#挑战
生成401(未经授权)响应的服务器必须发送
WWW验证标头字段至少包含一个质询。A.
服务器可能会在其他响应中生成WWW认证头字段
指示提供凭据(或其他凭据)的消息
凭据)可能会影响响应
虽然它不是严格要求的,但似乎建议应该返回所有支持的身份验证方案。这将为调用者提供最多的信息,只要他们能够正确解析这些头
4.1。WWW认证
“WWW-Authenticate”标头字段表示身份验证
适用于目标资源的方案和参数
WWW Authenticate=1#挑战
生成401(未经授权)响应的服务器必须发送
WWW验证标头字段至少包含一个质询。A.
服务器可能会在其他响应中生成WWW认证头字段
指示提供凭据(或其他凭据)的消息
凭据)可能会影响响应
回复问题:为什么不全部发送?我在说明书中没有找到任何明确的指导,除了尝试的方案外,为其他方案/领域添加挑战可能会让来电者感到困惑。也就是说,我同意,这还不足以成为不这样做的理由。我添加了一个相应的问题。回问:为什么不全部发送?我在规范中没有找到任何明确的指导,并且除了尝试的方案/领域之外,为其他方案/领域添加挑战可能会让来电者感到困惑。也就是说,我同意,这还不足以成为不这样做的理由。我已相应地添加了一个。