Airflow + Okta 集成问题 OAuth2.0

2024-01-09

我正在尝试使用 Okta(我们的 Idp)和 OAuth2.0/OpenID 对 Airflow 进行身份验证。为此,我将此作为参考:

  • https://tech.scribd.com/blog/2021/integrating-airflow-and-okta.html https://tech.scribd.com/blog/2021/integrating-airflow-and-okta.html

  • https://flask-appbuilder.readthedocs.io/en/latest/security.html https://flask-appbuilder.readthedocs.io/en/latest/security.html

问题是,完成所有配置后,当我尝试使用 Okta 登录时,我收到消息“无效登录。请重试。”

我认为来自 Flask 的唯一日志如下:

172.17.0.1 - - [06/Aug/2021:14:05:01 +0000] "GET /static/pin_32.png HTTP/1.1" 304 0 "http://localhost:8080/login/?next=http%3A%2F%2Flocalhost%3A8080%2Fhome" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"

172.17.0.1 - - [06/Aug/2021:14:05:26 +0000] "GET /login/okta?next=http://localhost:8080/home HTTP/1.1" 302 985 "http://localhost:8080/login/?next=http%3A%2F%2Flocalhost%3A8080%2Fhome" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"

172.17.0.1 - - [06/Aug/2021:14:05:41 +0000] "GET /oauth-authorized/okta?code=V3YfnQL9IQOIwJLWt1KdALrtRRYM1xtZBDxNP9exlp4&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuZXh0IjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9ob21lIl19.GbawEXaz1lpX1nOYuGyHHSstM9b-X36sghlhBoLuot0 HTTP/1.1" 302 221 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"

172.17.0.1 - - [06/Aug/2021:14:05:41 +0000] "GET /login/ HTTP/1.1" 200 17174 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"

我看没有什么问题..

配置步骤:

1. 配置 Okta:

另外“授权服务器是默认的”

2.完成webserver_config.py

import os
from flask_appbuilder.security.manager import AUTH_OAUTH

AUTH_TYPE = AUTH_OAUTH
OAUTH_PROVIDERS = [
{'name': 'okta', 'icon': 'fa-circle-o',
'token_key': 'access_token',
'remote_app': {
'client_id': '0oa1ceaw9cxc1rXhi5d7',
'client_secret': 'MY CLIENT SECRET',
'api_base_url': 'https://MY OKTA DOMAIN/oauth2/default/v1/',
'client_kwargs': {
'scope': 'openid profile email groups'
},
'access_token_url': 'https://MY OKTA DOMAIN/oauth2/default/v1/token',
'authorize_url': 'https://MY OKTA DOMAIN/oauth2/default/v1/authorize',
}
}
]

3. 创建 Dockerfile:

 FROM apache/airflow
 enter code here`RUN pip install authlib   \
 && pip install flask-appbuilder==3.2.2 \
 && pip install sqlalchemy==1.3.18 \
 COPY ./webserver_config.py /opt/airflow/webserver_config.py

4.构建镜像并运行airflow容器:

#docker build -t airflowcustom .
#docker run -d -p 8080:8080 --name airflow airflowcustom webserver

我被困在这里......有人这样做或遇到类似的问题吗? 您知道我可以在哪里看到哪些日志吗?我没有看到气流容器内有任何东西。


尝试将这些添加到您的 webserver_config.py

AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = 'User' # Or any role that you want as default
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Airflow + Okta 集成问题 OAuth2.0 的相关文章

随机推荐

  • 将 Github 存储库移植到另一种语言

    我想将别人的存储库移植到另一种语言 就我而言 SCSS gt Stylus 但它很可能是Javascript gt Coffeescript 解决这个问题的最佳方法是什么 我是不是该 分叉存储库并编辑文件 而不是拉取请求 在这里 我只会分叉
  • 在引导程序中,如何使图像成为下拉菜单?

    在引导程序中 如何使图像成为下拉菜单 您好 我在引导程序中创建了一个下拉列表 我想放置一个图像 使其成为单击的项目以查看下拉列表 下面是我的代码
  • C++ 模板和内联

    当我编写一个简单 非模板 类时 如果函数实现 就地 提供 它会自动被视为inline class A void InlinedFunction int a 0 the same as inline void InlinedFunction
  • 输入(...)提示后显示%?

    假设我们使用的是 python3 3 和多平台 Linux 和 WIndow 如果我执行以下操作 gt gt gt eval input enter a percent from 1 100 I get enter a percent fr
  • 在 MongoDB 中查询相似数组

    我想在 MongoDB 集合中搜索具有相似数组的文档 并按相似值排序 Example 我会寻找 chars a b c 我已经存储了这些文件 1 chars s e c 2 chars i l d 3 chars b a c 4 chars
  • 如何断言 C# 异步方法在单元测试中引发异常? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用 NUnit 测试异步方法 最终使用另一个框架 https stackoverflow com questions 12191831 how do i test an async method
  • Jupyter Notebook 同时显示和捕获输出

    我试图找到一种方法来 保存 jupyter 笔记本中的变量 同时捕获丰富的输出 主要是由于 ssh 断开连接等原因 仅分配给变量是行不通的 因为某些库会打印进度条等信息 到目前为止 最有希望的方法是使用 capture然而 在最近的版本中
  • Table Row,可以将高度设置为零吗?

    可以将表格行高设置为 0 吗 IE 8 Chrome 火狐 Opera 你为什么问 好吧 我有一行是在用户单击父行时动态构建和显示的 问题是 如果没有行 当单击时 它仍然显示一个空的 1 像素高的行 这是子网格视图
  • 摆脱 Google api lib 中不必要的依赖项

    背景 我已经在客户端和服务器端使用 Google 服务成功实现了用户身份验证 我用过适用于 PHP 的 Google API 客户端库 https github com googleapis google api php client为此目
  • Nullable 是“预定义值类型”吗?或者 Equals() 和 == 在这里如何工作?

    对于我自己的 Equals 方法的实现 我想检查一堆内部字段 我这样做 myNullableInt obj myNullableInt myString obj myString 我假设 这会比较值 包括 null 是否相等 而不是对象地址
  • Chrome DevTools 协议:如何获取节点的单击事件处理程序名称

    Problem 我有一个相同节点的列表 这些节点附加了相同的处理程序或函数 我需要单击 DOM 中存在的每个交互式节点 这是功能或要求 如果已经单击了要单击的节点或者该节点附加了相同的处理程序 我想跳过要单击的节点 请参阅下面的屏幕截图以供
  • 带有 Asp.net Webforms 的 Azure Active Directory SSO

    我们在 Net 3 5 中有一个 Asp Net Webforms 应用程序 它已经具有带有 FormsAuthentication 的身份验证模块 对于新要求 我们需要使用 Azure Active Directory 实施 SSO SA
  • 纬度和经度的数据类型正确吗? (在活动记录中)

    我应该将纬度和经度存储为字符串或浮点数 或其他东西 吗 我正在 Rails 上使用 activerecord ruby 如果这很重要的话 Update 开发中的 Mysql 和生产中的 postgresql 为什么重要 这就是我使用的 ad
  • 根据字符串的特定排列对字符串数组进行排序

    在 Javascript 中 我有一个值数组 例如 Toy Car PC Water Apple 我需要按此优先级按特定顺序对值进行排序 PC Car Toy Apple Water 请注意 这不能按字母顺序排序 而是按提供的值的特定顺序排
  • NSFetchedResultsController 让我发疯

    自 1 个月以来 我一直在使用 NSFetchedResultsController 构建应用程序 并在 3 1 2 SDK 上测试该应用程序 问题是我一直在我的应用程序中到处使用 NSFetchedResultsController 并正
  • CMAKE_COMPILER_IS_GNUCXX 和 CMAKE_CXX_COMPILER_ID 为空

    我目前正在玩CMake http cmake com并想要检测编译器和编译器版本 我现在的CMakeLists txt看起来如下 cmake minimum required VERSION 2 6 set PROJECT a tour o
  • 只有创建视图层次结构的原始线程才能触摸其视图

    我正在尝试让 ImageView 在我的可绘制文件夹中的 2 个图像之间进行动画处理 我以为一切都会正常 但日志显示错误 Only the original thread that created a view hierarchy can
  • 没有 GPU 的系统上的 CUDA [重复]

    这个问题在这里已经有答案了 我的系统中没有安装 GPU 卡 我想知道是否有任何方法可以在我的无 GPU 笔记本电脑上使用 CUDA 进行编码并访问 CUDA 库 是的 您可以使用 CUDA 模拟器 例如 https code google
  • 首先使用简单的键进行地理空间索引

    在阅读了 MongoDB 和地理空间索引 http www mongodb org display DOCS Geospatial Indexing 让我惊讶的是它不支持不以二维索引开头的复合键 我不知道我是否会从中获得任何好处 但现在 m
  • Airflow + Okta 集成问题 OAuth2.0

    我正在尝试使用 Okta 我们的 Idp 和 OAuth2 0 OpenID 对 Airflow 进行身份验证 为此 我将此作为参考 https tech scribd com blog 2021 integrating airflow a