【问题标题】:Understanding HTTP error in Azure Web App log file output了解 Azure Web App 日志文件输出中的 HTTP 错误
【发布时间】:2021-11-29 09:10:05
【问题描述】:

我有一个 net core web 应用程序,它在本地和 Azure web 应用程序服务中运行时会显示一个登录页面。到目前为止,没有任何解释,它刚刚开始在 Azure Web App Service 中出错。据我所知,我没有更改任何会改变这一点的代码。 Github 构建来自 YAML。没有在 Github 中注册任何更改。

我使用了 Chrome 开发工具并为 Azure 应用服务中的应用启用了诊断日志记录。我认为日志记录可能会给我更多信息。

总结一下。我的本地 v Azure 应用启动的比较 URL 输出如下:

https://localhost:44357/Identity/Account/Login?ReturnUrl=%2F

https://example-app-service-rollbase.azurewebsites.net/Identity/Account/Login?ReturnUrl=%2FHome%2FError%3FReturnUrl%3D%252FHome%252FError ... etc ...

在开发工具中 本地 = HTTP 101 Azure = 找到 HTTP 302(重定向过多。您要查找的资源已被删除、名称已更改或暂时不可用。请尝试清除您的 cookie)

在 Azure CLI 中使用以下内容:

az webapp log tail --name example-app-service-rollbase --resource-group example-resources --provider http

我启动应用程序并记录日志输出。对我来说,这比问题更令人困惑(为简洁起见,我已经删除了时间/日期/浏览器类型和参考链接,并且正在打印连续的输出行):

EXAMPLE-APP-SERVICE-ROLLBASE GET / X-ARR-LOG-ID=fffed190-2641-4ebd-b4b8-1e3034635ffe 443 - 121.74.116.232 

上面的输出是:Web App name, HTTP method, Azure Resource Reference-LOG-ID?和我的公共 IP 地址(我在专用网络的防火墙后面)

EXAMPLE-APP-SERVICE-ROLLBASE GET /Identity/Account/Login ReturnUrl=%2F&X-ARR-LOG-ID=dc48d20d-4859-4956-95e0-020c6f592afd 443 - 121.74.116.232

这就是问题出现的地方。返回网址。我的理解是 %2F returnUrl 通常只是作为一种指向上一页的机制而存在。

EXAMPLE-APP-SERVICE-ROLLBASE GET /Identity/Account/Login ReturnUrl=%2FHome%2FError%3FReturnUrl%3D%252F&X-ARR-LOG-ID=ec2e323b-b593-4272-8b61-b9b72245255d 443 - 121.74.116.232

这里是一个编码的 '?'被添加 (%3F) 并且从这里返回 URLs 堆积起来。

大约在这一点上,我不明白我所看到的。除了我从开发工具获得的相同信息。

如果有人有任何想法,我将不胜感激。

【问题讨论】:

    标签: azure asp.net-core http identity http-status-code-302


    【解决方案1】:

    Azure 使用 redirect_uriReply URL's 的这种配对和匹配作为一种安全措施,以防止滥用您的应用程序,这样,有人可能会尝试对自己的应用程序进行身份验证使用您的 Azure 应用程序协调,并将访问令牌发送到他们的应用程序而不是您的应用程序。

    使用 redirect_uri 参数创建了另一个授权 URL,该参数未在我的 Azure 应用程序中配置为有效的回复 URL

    https://login.microsoftonline.com/1c3d2eea-12db-2ec3-437e-2eec7289e1a1/oauth2/authorize
    ?client_id=ef92a29b-b332-9d43-1341-23326315fa42
    &response_type=id_token+token
    &redirect_uri=https%3a%2f%2fpdogs-babel.azurewebsites.net%2Fcallback.html
    &state=12345
    &nonce=678910
    &resource=https%3A%2F%2Fgraph.microsoft.com%2F

    这里我已将 redirect_uri 参数设置为 https://pdogs-babel.azurewebsites.net,当我将其发送到授权端点时……

    我们看到以下错误消息...

    AADSTS50011:回复地址 https://pdogs-babel.azurewebsites.net/callback.html 与为应用配置的回复地址不匹配:ef92a29b-b332-9d43-1341-23326315fa42。

    如果您使用隐式授权流程,这可能允许某人使用您的应用程序坐标获得访问令牌。初始授权 URL 由浏览器通过 HTTP 发送,授权端点使用 HTTP 302 [Found] 响应返回回复,其中包含找到的 URL 的 Location 标头值在 redirect_uri 参数加上包含 access_token

    的哈希片段

    更多信息请联系here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多