【问题标题】:Get bearer token from Active Directory in Python从 Python 中的 Active Directory 获取不记名令牌
【发布时间】:2019-09-25 09:14:11
【问题描述】:

我正在尝试使用 OAuth 为 Python 中的 Web 服务编写身份验证功能。 Web 服务仅请求我将不记名令牌发布到 REST API 端点。

在我的公司中,我们使用的是已为 OAuth 设置的本地 Active Directory 实例。因此,我正在研究基于用户名/密码对(首先)请求不记名令牌的正确方法是什么(然后我可以采用更高级和更安全的方式,例如证书)。

如果能帮助我指出 Python 的正确方向,我将不胜感激。建议使用什么模块来执行此操作? ADAL 定期出现,但我想知道它是否仅适用于 Azure AD,因此不适用于我的情况。由于没有那么多代码示例,我不确定。

提前致谢!

R.

【问题讨论】:

    标签: python oauth active-directory adfs


    【解决方案1】:

    我假设你已经在 Azure Active Directory 中注册了应用程序。

    几天前我遇到了这个确切的问题,最后做了这样的事情:

    import json
    import requests
    
    TOKEN_URL = "https://login.microsoftonline.com/organizations/oauth2/v2.0/token"
    
    def authenticate():
        request_payload = {"username": YOUR USERNAME/EMAIL,
                           "password": YOUR PASSWORD,
                           "scope": THE SCOPES YOU NEED,
                           "grant_type": "password",
                           "client_id": YOUR AAD CLIENT ID,
                           "client_secret": YOUR AAD CLIENT SECRET}
    
        bearer_token = requests.post(url=TOKEN_URL, data=request_payload).json()["access_token"]
    
        return bearer_token
    

    我还建议您实际上不要对 python 文件中的敏感信息进行硬编码。考虑使用配置 json 文件或类似文件。

    【讨论】:

    • 我的公司没有使用 Azure AD。我们正在使用本地 ADFS。
    • 这很有魅力,谢谢!我不需要 scope 或 client_secret 来获得令牌,所以可以将这些行注释掉。
    【解决方案2】:

    是的 - ADAL 是要走的路。

    在 Server 2019 上,现在也支持 MSAL。

    有很多ADAL samples是为ADFS量身定做的。

    这些都来自 AAD 样本,因为协议相同,ADFS 的更改很小。

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 2019-11-06
      • 2021-06-02
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 2020-12-03
      • 2020-05-25
      • 1970-01-01
      相关资源
      最近更新 更多