![FastAPI REST 应用程序下的 Kerberos SPNEGO 与 OIDC 进行协商?](https://linux22.com/image/792591/FastAPI%20REST%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%8B%E7%9A%84%20Kerberos%20SPNEGO%20%E4%B8%8E%20OIDC%20%E8%BF%9B%E8%A1%8C%E5%8D%8F%E5%95%86%EF%BC%9F.png)
我们有一个基于 REST 的应用程序(非浏览器应用程序),它使用基于 Kerberos 的 SPNEGO 身份验证,并且一直在与 Flask 配合使用。我们想将此应用程序转换为在 FastAPI 下运行,但我们还没有想出如何使用 OIDC 让 Kerberos 协商在 FastAPI 下工作。
在我们的(非 OIDC)Flask 应用程序中,我们在客户端运行以下代码来发送我们的 REST 请求:
auth = HTTPKerberosAuth(mutual_authentication=OPTIONAL, principal="")
rest_response = requests.get(rest_url, headers, params, auth, verify=certfile)
...其中 rest_url、headers、params 和 certfile 均有效且有意义。
我们知道如何使 Kerberos 协商在 Flask 下工作(其中大部分内置于 Flask 环境中),并且应用程序在 Flask 下运行良好。
但是,如果我们使用 FastAPI REST 服务器的 URL 运行完全相同的客户端代码,我们就不知道如何让服务器端的 FastAPI 通过 OIDC 触发正确的 kerberos 协商。我们被告知,当在 FastAPI 服务器端运行正确的代码以触发 Kerberos 协商时,HTTPKerberosAuth 对象的客户端实例化应该可以工作,但经过几天的在线搜索并尝试了相当多的可能性后,我们仍然没有找到在 FastAPI 服务器端该做什么才能触发 Kerberos 协商。
是否有某种方法可以配置 FastAPI 中间件,以便我可以使用它来触发 FastAPI REST 服务器端基于 OIDC 的 Kerberos 协商?或者,如果不是通过 FastAPI 中间件,也许还有其他方法可以做到这一点?
提前非常感谢您。