azure - 验证 Azure 静态 Web 应用程序时出现 404 错误

标签 azure azure-static-web-app

我在 Azure 中创建了一个静态 Web 应用程序。这只是一个只有 HTML 页面的普通网站。我能够部署和访问该应用程序。

问题是当我尝试将 Azure Active Directory 与此服务集成时。我的staticwebapp.config.json如下。

{
  "routes":[
    {
      "route": "/login",
      "rewrite": "/.auth/login/aad"
    },
    {
        "route": "/*",
        "allowedRoles": ["authenticated"]
    }
  ],
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<tenant id removed>",
          "clientIdSettingName": "<client id value>",
          "clientSecretSettingName": "<client secret value>"
        }
      }
    }
  },
  "responseOverrides": {
    "401": {
      "redirect": "/login",
      "statusCode": 302
    }
  }
}

此后,当我尝试访问任何页面时,它会被重定向到/login 并收到 404 页面。我预计它会转到 azure 身份验证页面(由于重定向规则)。是否还需要进行任何其他配置来验证静态 Web 应用程序?

最佳答案

这里需要仔细检查的一件事是 clientIdSettingNameclientSecretSettingName 字段。

这些不是实际值,而是对 SWA settings引用 。这样做的原因是为了确保不会将纯文 native 密提交给源代码管理。

因此,给定文字值

"clientIdSettingName": "AZURE_CLIENT_ID",
"clientSecretSettingName": "AZURE_CLIENT_SECRET"

Azure 门户应设置如下: azure portal showing SWA configuration parameter names

Documentation明确提到了这一步,但在前几次通读时我错过了此设置的引用性质。最终,变量名称泄露了它。

关于azure - 验证 Azure 静态 Web 应用程序时出现 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68521349/

相关文章:

具有自定义 Azure AD 租户的 Azure 静态 Web 应用程序未重定向

reactjs - 通过 Azure CLI 基于 Azure DevOps git 存储库部署 ReactJs Azure 静态 Web 应用程序

angular - 服务工作线程不适用于 Azure 静态 Web 应用上的自定义域

具有基本 SKU 的 Azure 点到站点 VPN 无法在 Windows 10 上运行(错误代码 = 720 错误源 = RAS)

c# - 如何发送 Microsoft Graph 上传 session 的最终字节?

c# - ListBlob 在 cloudblobdirectory 类中不可用?

azure - 自 Azure SDK 2.5 起,在 Visual Studio Online 中构建失败

c# - 使用 c# 从 Azure 外部身份协作设置读取目标域列表

azure - 与 API 通信以获取数据的 React/Angular 应用程序是否可以被视为静态 Web 应用程序

azure-web-app-service - 为静态Web应用程序购买域名