Databricks Apps は、リバース プロキシからアプリに特定の X-Forwarded-* HTTP ヘッダーを渡します。 これらのヘッダーを使用して、クライアントの IP アドレスやプロトコルなど、元の要求に関する情報にアクセスします。
Databricks Apps には、リバース プロキシからアプリに転送される要求に、次の X-Forwarded-* ヘッダーが含まれています。
| ヘッダ | 説明 |
|---|---|
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 内で実行されている場合にのみ使用できます。 ローカルでテストする場合は、それらをシミュレートまたは手動で含める必要があります。