Python为支持oauth2、adal和msal的microsoft请求会话

requests-ms-auth的Python项目详细描述


使用ADAL/MSAL和自动续订访问令牌的OAuth2的Python请求

关于

此项目提供一个简单的Requests兼容会话,您可以使用该会话通过以下方式与Microsoft进行身份验证:

  • Azure Active Directory身份验证库(ADAL
  • Microsoft身份验证库(MSAL)。(未完成,请改用ADAL

会话自动更新访问令牌(默认令牌每小时过期一次)。
该软件包在PyPi上提供。在

如何使用

安装软件包

python3 -m pip install --upgrade requests_ms_auth

举个例子

NOTE: These examples are made for easy access to Equinor specific systems.
NOTE: Before using the example you should first fill the credentials inside the example file.

DescriptionExample code
Python code to access Metadata API using session directlymetadata_api_example.py

会话应在启动时自动获取令牌,并在令牌过期时续订它。 Session还将使用可选的verification_url在构造函数中验证自己,从而允许您在失败时提前终止。在

配置

会话配置详细信息可以在docstringhere中找到

实施细节

  • 库使用pip-compile和{}来管理和固定需求。测试要求保存在单独的test_rquirements.in中。在

  • 这个库使用Makefile来管理版本的构建、打包和上传,以及运行测试、编译需求等的许多捷径。在

  • 这个库是由github actions构建和测试的。在

  • 该包由github actions准备并上载到PyPi。在

  • 该库默认为ADAL,可以告诉您使用MSAL作为选项。在

  • 提供库所依赖的OAuth2兼容性

测试

配置环境变量

导出以下环境变量(使用以前替换的值):

  • 来自壳牌公司:
^{pr2}$
  • 或将env变量添加到Pycharm或其他IDE(使用先前添加的值):
INTEGRATION_TENANT=tenant;INTEGRATION_CLIENT_ID=id;INTEGRATION_CLIENT_SECRET=secret;INTEGRATION_RESOURCE=resourse;INTEGRATION_AUTHORITY_HOST_URL=authority;INTEGRATION_LIVE_VERIFICATION_URL=verification;INTEGRATION_LIVE_VERIFICATION_ELEMENT=element;
  • 或使用.env文件:
INTEGRATION_TENANT=tenant
INTEGRATION_CLIENT_ID=id
INTEGRATION_CLIENT_SECRET=secret
INTEGRATION_RESOURCE=resourse
INTEGRATION_AUTHORITY_HOST_URL=authority
INTEGRATION_LIVE_VERIFICATION_URL=verification
INTEGRATION_LIVE_VERIFICATION_ELEMENT=element

运行测试

make test

许可证

有关详细信息,请参阅LICENSE文件。requests_ms_auth是根据GNU AFFERO通用公共许可证授权的,并且具有G-Faps。在

历史

这个项目源于latigo项目的需要。在

待办事项

  • 检查MSAL方法是否有效
  • 对关键部位进行试验
  • 清除Makefile
  • 处理代码中的待办事项
  • 为examples dir启用mypy。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么会出现这些错误?表达式的非法开始   使用HttpUrlConnection的java测试URL仅适用于前面的www   在大数据集上使用kmeans的java堆外内存   查找Java RandomAccessFile如何以字符形式读取第n个字节   java Android从BroadcastReceiver获取标题和描述   java使用构造函数参数模拟嵌套类并测试方法   正在将Azure Blob项强制转换为Java文件对象   java并行运行testNG套件   java程序在运行时似乎没有进入   贬低Java规则引擎的优点和缺点   文本区域中的java中心文本   java JPA从多个表中选择错误   类Java问题使用类加载器重新加载代码   java如何在Spring非管理类上使用@Value   java(关闭)Gradle导入VS代码失败   java arraylist拆分(“空白”)并计算字数   Android/Java如何在单独的*中调用函数。java文件?   具有基本身份验证的java Apache Camel RSS模块   java为什么程序在出现溢出或下溢时不抛出异常