You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在IIS反向代理后Grafana的Azure AD登录跳转异常排查

问题解决:IIS反向代理Grafana后OAuth跳转异常的修复方案

核心原因

Grafana未识别到自身处于反向代理环境,导致生成OAuth授权URL时误用了代理域名而非认证提供商的地址,同时IIS未正确传递外部请求的协议、主机头等关键信息,进一步加剧了URL生成错误。

具体修复步骤

1. 修正Grafana的custom.ini配置

打开Grafana安装目录下的conf/custom.ini,添加/修改以下参数:

# 指定外部访问的真实地址
root_url = https://grafana.example.com/
# 子域名部署需设为false(子路径部署才设为true)
serve_from_sub_path = false
# 信任IIS代理的IP(同一机器填127.0.0.1,不同机器填IIS服务器IP)
trusted_proxies = 127.0.0.1
# 强制使用root_url指定的域名生成外部链接
enforce_domain = true

修改后重启Grafana服务。

2. 完善IIS重写规则的请求头传递

在IIS站点的web.config中,为反向代理规则添加转发头配置,确保Grafana能获取外部请求的真实协议和主机名:

<rewrite>
  <rules>
    <rule name="GrafanaReverseProxy" stopProcessing="true">
      <match url="(.*)" />
      <action type="Rewrite" url="http://localhost:3000/{R:1}" />
      <!-- 添加转发头配置 -->
      <serverVariables>
        <set name="HTTP_X_FORWARDED_PROTO" value="https" />
        <set name="HTTP_X_FORWARDED_HOST" value="grafana.example.com" />
        <set name="HTTP_X_FORWARDED_PORT" value="443" />
      </serverVariables>
    </rule>
  </rules>
</rewrite>

额外操作:打开IIS管理器 → 选中目标站点 → 点击「URL重写」→ 右侧「查看服务器变量」→ 将上述三个HTTP_X_FORWARDED_*变量添加到允许修改的列表中。

3. 验证Azure AD应用的重定向URI

登录Azure Entra ID后台,找到对应的Grafana应用注册,确保重定向URI设置为:
https://grafana.example.com/login/azuread
(必须与外部访问地址完全匹配,不能保留localhost相关的旧配置)

原理说明

  • root_url和enforce_domain强制Grafana使用指定的外部域名生成所有公共链接(包括OAuth授权地址);
  • trusted_proxies让Grafana信任IIS传递的转发头,避免忽略这些关键信息;
  • IIS添加的X-Forwarded-*头将外部请求的HTTPS协议、正确域名传递给Grafana,确保其生成的OAuth跳转URL指向微软登录服务器而非自身域名。

内容的提问来源于stack exchange,提问作者jklemmack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 11:47:10