python - 在 Python 中从 Active Directory 获取不记名令牌
问题描述
我正在尝试使用 OAuth 为 Python 中的 Web 服务编写身份验证功能。Web 服务仅请求我将不记名令牌发布到 REST API 端点。
在我的公司,我们使用的是已为 OAuth 设置的本地 Active Directory 实例。因此,我正在研究基于用户名/密码对(首先)请求不记名令牌的正确方法是什么(然后我可以采用更高级和更安全的方式,例如证书)。
我很感激能帮助我在 Python 中指明正确的方向。建议使用什么模块来执行此操作?ADAL定期出现,但我想知道它是否仅为 Azure AD 设计,因此不适用于我的情况。由于没有那么多代码示例,我不确定。
提前致谢!
R。
解决方案
我假设你已经在 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 文件或类似文件。
推荐阅读
- excel - 对值求和,直到达到某个值,然后从下一列开始
- python - TensorFlow 不使用 GPU
- .htaccess - Varnish Cache 是否会阻止 .conf 文件规则?(例如:网页之间的重定向)
- html - 如何使用 fullpage.js 在移动设备上从 3 张幻灯片制作 9 张幻灯片?
- swift - 在 swift 4 或更高版本上创建触摸测试应用程序
- reactjs - 如何使用 React PWA 像原生 iOS 应用一样进行导航转换?
- java - 没有 web.xml 的 JNDI 参考和查找资源
- javascript - 扩展 ng2-pdf-viewer 以支持在 pdf 之上绘图的方法?
- java - 如何使用 Jackson 和 spring-boot 将简单的 Kotlin 数据类映射到/从 json
- web - 从 Web 向 Ionic3 发送推送通知