首页 > 解决方案 > 在 Powershell 中使用 MFA 的 OAuth 2.0/OIDC => 如何转换为 Python

问题描述

我们的身份提供商 (IDP) 仅允许 MFA(证书)身份验证。如果我们想请求 OAuth 访问 + ID 令牌,我们通过 Powershell 以下列形式进行:

$url = "IDP_TOKEN_ENDPOINT"
$body = @{grant_type="password";scope="openid";client_id=$client_id}
# how to get certificate Thumbprint: ls cert:CurrentUser\My
$response = Invoke-RestMethod -Method Post -Uri $url -Body $body -CertificateThumbprint <THUMBPRINT_OF_PERSONAL_CERTIFICATE_STORED_IN_WINDOWS>

在 $response 中,我们得到了正常的 OIDC 返回(使用 access_token、refresh_toke、...)

如何在 python 中归档相同的内容?我用 requests_oauthlib 尝试过,但我没有看到任何功能如何提供客户端证书 - 只有用户名/密码(https://oauthlib.readthedocs.io/en/latest/oauth2/clients/legacyapplicationclient.html) ? 我还想避免将证书与密钥文件一起存储在文件系统中,因为那样我必须将它们安全地存储并且必须使用安全的方法来提供密钥密码。

任何想法?

PS:我们想得到什么。通过访问令牌连接到 RestAPI 的本地脚本。从 IDP 请求访问令牌。

提前致谢。

亲切的问候

雷格吉尔

标签: pythonpowershelloauth-2.0openid-connect

解决方案


推荐阅读