"right" 结合 Vue(前端)、Python(后端 API)和 Okta(身份验证)的方式
The "right" way to combine Vue (frontend), Python (backend API) and Okta (authentication)
我想为前端使用 Vue 构建一个 Web 应用程序,并为后端 API 调用使用 Python(Flask 或 FastAPI)。
在前端和后端,我都希望通过 Okta 进行身份验证。
我既可以创建一个前端(我使用 Okta cli 作为样板),也可以创建一个后端(使用 Flask-OIDC)和后端(使用 Flask-OIDC)。但是,我不确定如何将这两者结合在一起:是否足以保护 API 调用并相信用户将通过前端登录?我是否需要同时保护前端和后端(我坚信:是的)?我敢肯定那里有某种最佳实践,但我找不到;非常感谢任何正确方向的指示。
谢谢!
您的方法应该没问题:前端将从 Okta 获得一个 access_token,您将把它发送到您的后端,在那里应该对其进行适当的验证。
如果您只打算让前端与后端对话,则可以使用另一种架构,即通过后端建立您自己的会话(某种传统的网络客户端应用程序)。这可以通过传统的 authorization_code 流程轻松完成,其中服务器将同时具有 client_id 和 client_secret 参数。 Okta Developer 网站对此进行了更详细的描述。
我不熟悉 Python 框架,所以无法提供示例,但我相信您可以在线找到一些示例。
我想为前端使用 Vue 构建一个 Web 应用程序,并为后端 API 调用使用 Python(Flask 或 FastAPI)。
在前端和后端,我都希望通过 Okta 进行身份验证。
我既可以创建一个前端(我使用 Okta cli 作为样板),也可以创建一个后端(使用 Flask-OIDC)和后端(使用 Flask-OIDC)。但是,我不确定如何将这两者结合在一起:是否足以保护 API 调用并相信用户将通过前端登录?我是否需要同时保护前端和后端(我坚信:是的)?我敢肯定那里有某种最佳实践,但我找不到;非常感谢任何正确方向的指示。
谢谢!
您的方法应该没问题:前端将从 Okta 获得一个 access_token,您将把它发送到您的后端,在那里应该对其进行适当的验证。
如果您只打算让前端与后端对话,则可以使用另一种架构,即通过后端建立您自己的会话(某种传统的网络客户端应用程序)。这可以通过传统的 authorization_code 流程轻松完成,其中服务器将同时具有 client_id 和 client_secret 参数。 Okta Developer 网站对此进行了更详细的描述。
我不熟悉 Python 框架,所以无法提供示例,但我相信您可以在线找到一些示例。