如何在 Python 中实现基于本机浏览器的 OpenID Connect 身份验证?
How to implement native browser based OpenID Connect authentication in Python?
我正在 Python 中编写控制台应用程序,它必须使用基于 OpenID Connect 的身份验证与网络服务通信。
该工具的用户通常已经使用他们最喜欢的浏览器登录。
如何从 Python 打开/调用本机浏览器,以便我可以 return 访问令牌?
由于 IT 为大多数用户配置的个人防火墙,打开通过重定向 URI 获取请求的 http 服务器不起作用。
webbrowser.open
似乎无法提供 return 数据。
https://docs.microsoft.com/en-us/windows/uwp/security/web-authentication-broker 似乎不是我的应用程序的工作解决方案,因为它不是在 Microsoft Store 中注册的 Windows 应用程序,而是内部工具。
您可以假设所有用户都使用最近的 Windows 个客户端。
控制台应用根据 RFC8252 使用桌面 OAuth,这些是来自浏览器的登录 return 选项:
- 环回
- 私有 URI 方案
后者可能适用于您的用例,其中重定向 URI 具有这种形式。该方案是为当前用户注册的,不需要管理员权限:
x-mycompany-myapp:/回调
你可以运行我的Desktop Code Sample to see how this looks. You can test whether this works for users via a web page like this。
我不是 Python 方面的专家,但 Python online tutorials available on this topic。
我正在 Python 中编写控制台应用程序,它必须使用基于 OpenID Connect 的身份验证与网络服务通信。
该工具的用户通常已经使用他们最喜欢的浏览器登录。
如何从 Python 打开/调用本机浏览器,以便我可以 return 访问令牌?
由于 IT 为大多数用户配置的个人防火墙,打开通过重定向 URI 获取请求的 http 服务器不起作用。
webbrowser.open
似乎无法提供 return 数据。
https://docs.microsoft.com/en-us/windows/uwp/security/web-authentication-broker 似乎不是我的应用程序的工作解决方案,因为它不是在 Microsoft Store 中注册的 Windows 应用程序,而是内部工具。
您可以假设所有用户都使用最近的 Windows 个客户端。
控制台应用根据 RFC8252 使用桌面 OAuth,这些是来自浏览器的登录 return 选项:
- 环回
- 私有 URI 方案
后者可能适用于您的用例,其中重定向 URI 具有这种形式。该方案是为当前用户注册的,不需要管理员权限:
x-mycompany-myapp:/回调
你可以运行我的Desktop Code Sample to see how this looks. You can test whether this works for users via a web page like this。
我不是 Python 方面的专家,但 Python online tutorials available on this topic。