使用 Airflow API 进行 JWT 身份验证
Posted
技术标签:
【中文标题】使用 Airflow API 进行 JWT 身份验证【英文标题】:JWT Authentication with Airflow API 【发布时间】:2021-08-19 05:50:05 【问题描述】:我正在尝试实施基于令牌的身份验证作为触发气流 dag 的一部分。有没有办法我们可以添加 JWT 身份验证来生成 access_token 来触发 API?非常感谢任何帮助!
【问题讨论】:
【参考方案1】:我们的身份验证服务返回一个JSON
响应,如下所示:
"clientToken": "322e8df6-0597-479e-984d-db6d8705ee66"
这是我在气流 2.1 中使用SimpleHttpOperator
和XCOM
变量传递机制来克服这个问题的示例代码:
get_token = SimpleHttpOperator(
task_id='get_token',
method='POST',
http_conn_id='http_service',
data=json.dumps(
"username": "user_name",
"password": "n46r4A83"
),
endpoint='/authenticate',
dag=dag,
headers =
'Content-Type': 'application/json',
'Cache-Control': 'no-cache',
,
response_filter=lambda response: response.json()['clientToken'],
)
get_cities = SimpleHttpOperator(
task_id='get_cities',
method='GET',
http_conn_id='http_service',
endpoint='/cities?dsCode=120',
dag=dag,
headers =
'X-CLIENT-TOKEN':' ti.xcom_pull(task_ids="get_token") '
# response_filter=lambda response: response.json()['clientToken'],
)
get_token >> get_cities
【讨论】:
以上是关于使用 Airflow API 进行 JWT 身份验证的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core API 使用 JWT 不记名令牌进行身份验证
使用带有 KONG API 网关的 cookie 进行 JWT 身份验证