Azure 在服务器到第三方身份验证失败的情况下返回哪个http状态代码
我有一个场景,我们有一个Azure多租户应用程序。客户授予我们的服务与Azure AD对话的权限,并使用授予我们的多租户应用程序的授权代码流从他们的Azure AD租户中搜索(用户/广告组)数据 发布Azure AD安装用户登录到我们的UI,并尝试从其AAD租户搜索用户/组。我们的服务使用授予多租户应用程序的授权调用AAD API 现在,如果客户的AAD管理员通过登录到他们的AAD控制台来删除对我们的AAD多租户应用程序的访问,那么当我们的服务尝试调用AAD API来搜索用户时,AAD将开始抛出http 403(禁止) 对于这个特定场景,应该向UI返回什么http状态代码? 我们想通知用户这一点,以便他们能够恢复我们的多租户应用程序的授权 我认为返回http 4xx不是一个好主意。如果我们从UI中看到,这不是客户端错误 我认为这是某种服务器错误。由于缺乏授权,我们对AAD的服务连接中断Azure 在服务器到第三方身份验证失败的情况下返回哪个http状态代码,azure,rest,http,Azure,Rest,Http,我有一个场景,我们有一个Azure多租户应用程序。客户授予我们的服务与Azure AD对话的权限,并使用授予我们的多租户应用程序的授权代码流从他们的Azure AD租户中搜索(用户/广告组)数据 发布Azure AD安装用户登录到我们的UI,并尝试从其AAD租户搜索用户/组。我们的服务使用授予多租户应用程序的授权调用AAD API 现在,如果客户的AAD管理员通过登录到他们的AAD控制台来删除对我们的AAD多租户应用程序的访问,那么当我们的服务尝试调用AAD API来搜索用户时,AAD将开始抛出
请在此场景中从5xx系列或4xx系列中建议一个合理的http状态代码。您应该使用4xx HTTP 403是一个标准的HTTP状态代码,通过 HTTP服务器,以指示用户对请求的(有效)URL的访问 由于某种原因,客户被禁止
最后,您的应用程序达到了当前用户不允许执行某些操作的状态。根据您的普通用户的技术熟练程度,您可以向她提供或多或少的技术信息。因为你似乎能够定义什么是特别的错误,你有机会告诉用户它和她应该如何反应。在我看来,没有HTTP代码是必要的。将它提供给用户并没有什么好处(除非她技术熟练)。因此,我会在UI中给出一个很好的解释(可能还有一个小字体的文本,其中包含HTTP代码)。但这只是我的意见,我会怎么做 最后,这还取决于您使用软件实现的业务流程。因此,我建议您向负责软件背后业务部分的人员(如产品所有者)提问。如果你有一些想法,询问你的用户体验设计师也是一个好主意 4xx(客户端错误)类状态代码表示客户端 似乎犯了错误。除非在响应HEAD请求时 服务器应发送一个表示,其中包含对 错误情况,以及它是临时的还是永久的 条件 有效载荷是向最终用户传达实际问题的主要方式 HTTP状态码是元数据;目标受众是参与消息交换的通用组件。在网络上,有效载荷是给人类的;状态代码用于浏览器、缓存、爬行器等 在你的情况下,请求是可以的。特别是,客户无法改善结果。所以4xx应该不在桌子上 5xx(服务器错误)类状态代码表示服务器 意识到自己犯了错误或无法执行 请求的方法 5xx类状态代码比4xx类具体得多(主要是因为其他组件无法采取纠正措施) 你可以选择的实物期权是
- 500内部服务器错误
- 503服务不可用