Databricks 应用将特定 X-Forwarded-* HTTP 标头从反向代理传递到应用。 使用这些标头访问有关原始请求的信息,例如客户端 IP 地址或协议。
Databricks Apps 在从反向代理转发到应用的请求中包含以下 X-Forwarded-* 标头:
| 标题 | DESCRIPTION |
|---|---|
X-Forwarded-Host |
客户端请求的原始主机或域。 |
X-Forwarded-Preferred-Username |
IdP 提供的用户名。 |
X-Forwarded-User |
IdP 提供的用户标识符。 |
X-Forwarded-Email |
IdP 提供的用户电子邮件。 |
X-Real-Ip |
发出原始请求的客户端的 IP 地址。 |
X-Request-Id |
请求的 UUID。 |
在代码中访问标头
可以使用 Web 框架提供的请求对象访问应用代码中的转发标头。 以下示例演示如何使用常用的 Python 框架检索 X-Forwarded-User 标头:
瓶
from flask import Flask, request
app = Flask(__name__)
@app.route("/")
def index():
user = request.headers.get("x-forwarded-user")
return f"Hello, {user}!"
FastAPI
from fastapi import FastAPI, Request
app = FastAPI()
@app.get("/")
async def index(request: Request):
user = request.headers.get("x-forwarded-user")
return {"message": f"Hello, {user}!"}
仅当应用在 Databricks Apps 中运行时,这些标头才可用。 在本地测试时,必须模拟或手动包含它们。