メインコンテンツまでスキップ

Databricks アプリに渡された HTTP ヘッダーにアクセスする

Databricks Apps は、リバース プロキシから特定の X-Forwarded-* HTTP ヘッダーをアプリに渡します。これらのヘッダーを使用して、クライアントの IP アドレスやプロトコルなど、元の要求に関する情報にアクセスします。

Databricks Apps には、リバース プロキシからアプリに転送される要求に次の X-Forwarded-* ヘッダーが含まれています。

Header

説明

X-Forwarded-Host

クライアントによって要求された元のホストまたはドメイン。

X-Forwarded-Preferred-Username

IdP によって提供されるユーザー名。

X-Forwarded-User

IdP によって提供されるユーザー識別子。

X-Forwarded-Email

IdPが提供するユーザーEメール。

X-Real-Ip

元の要求を行ったクライアントの IP アドレス。

X-Request-Id

要求の UUID。

コード内のヘッダーへのアクセス

転送されたヘッダーには、Web フレームワークによって提供される request オブジェクトを使用して、アプリ コードでアクセスできます。次の例は、一般的な Python フレームワークを使用して X-Forwarded-User ヘッダーを取得する方法を示しています。

flask

Python
from flask import Flask, request

app = Flask(__name__)

@app.route("/")
def index():
user = request.headers.get("X-Forwarded-User")
return f"Hello, {user}!"

fastapi

Python
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 アプリ内で実行されている場合にのみ使用できます。ローカルでテストする場合は、シミュレートするか、手動で含める必要があります。