【问题标题】:How to implement native browser based OpenID Connect authentication in Python?如何在 Python 中实现基于本机浏览器的 OpenID Connect 身份验证?
【发布时间】:2022-01-07 21:46:15
【问题描述】:

我正在用 Python 编写一个控制台应用程序,它必须使用基于 OpenID Connect 的身份验证与网络服务通信。

该工具的用户通常已经使用他们喜欢的浏览器登录。

如何以某种方式从 Python 打开/调用本机浏览器,以便返回访问令牌?

由于 IT 为大多数用户配置了个人防火墙,因此无法打开通过重定向 URI 获取请求的 http 服务器。

webbrowser.open 似乎无法返回数据。

https://docs.microsoft.com/en-us/windows/uwp/security/web-authentication-broker 似乎不是我这种应用程序的有效解决方案,因为它不是在 Microsoft Store 中注册的 Windows 应用程序,而是内部工具。

您可以假设所有用户都使用最近的 Windows 客户端。

【问题讨论】:

    标签: python openid-connect desktop-application


    【解决方案1】:

    控制台应用根据RFC8252 使用桌面 OAuth,这些是来自浏览器的登录返回选项:

    • 环回
    • 私有 URI 方案

    后者可能适用于您的用例,其中重定向 URI 具有这种形式。该方案是为当前用户注册的,这不需要管理员权限:

    x-mycompany-myapp:/回调

    您可以运行我的Desktop Code Sample 来查看它的外观。您可以通过web page like this 测试这是否适用于用户。

    我不是 Python 专家,但有 Python online tutorials available on this topic

    【讨论】:

      猜你喜欢
      • 2015-03-20
      • 2011-04-28
      • 1970-01-01
      • 2016-11-27
      • 2021-09-07
      • 2019-06-26
      • 2019-08-08
      • 2016-06-28
      • 2018-07-01
      相关资源
      最近更新 更多