atlassian服务到服务身份验证规范的python实现。

atlassian-jwt-auth的Python项目详细描述


https://img.shields.io/travis/atlassian/asap-authentication-python/master.svg?label=Linux%20build%20%40%20Travis%20CIhttps://img.shields.io/pypi/v/atlassian-jwt-auth.svg

这个包提供了Service to Service Authentication规范的实现。


安装

要安装,只需运行

$ pip install atlassian-jwt-auth

使用此库

为认证创建jwt

importatlassian_jwt_authsigner=atlassian_jwt_auth.create_signer('issuer','issuer/key',private_key_pem)a_jwt=signer.generate_jwt('audience')

在传统位置使用磁盘上的文件创建jwt

每次调用generate_jwt时,都会找到最新的活动密钥文件(以.pem结尾),并使用它生成jwt。

importatlassian_jwt_authsigner=atlassian_jwt_auth.create_signer_from_file_private_key_repository('issuer','/opt/jwtprivatekeys')a_jwt=signer.generate_jwt('audience')

发出经过身份验证的http请求

如果使用atlassian_jwt_auth.contrib.requests.JWTAuth提供程序,则 当使用requests库 执行经过身份验证的http请求。

importatlassian_jwt_authfromatlassian_jwt_auth.contrib.requestsimportJWTAuthsigner=atlassian_jwt_auth.create_signer('issuer','issuer/key',private_key_pem)response=requests.get('https://your-url',auth=JWTAuth(signer,'audience'))

也可以使用atlassian_jwt_auth.contrib.aiohttp.JWTAuth 验证aiohttp请求:

importaiohttpimportatlassian_jwt_authfromatlassian_jwt_auth.contrib.aiohttpimportJWTAuthsigner=atlassian_jwt_auth.create_signer('issuer','issuer/key',private_key_pem)asyncwithaiohttp.ClientSession()assession:asyncwithsession.get('https://your-url',auth=JWTAuth(signer,'audience'))asresp:...

如果要重用在其有效期内具有相同声明的令牌 然后在调用create-signer时通过reuse-jwts=true。 例如:

importatlassian_jwt_authfromatlassian_jwt_auth.contrib.requestsimportJWTAuthsigner=atlassian_jwt_auth.create_signer('issuer','issuer/key',private_key_pem,reuse_jwts=True)response=requests.get('https://your-url',auth=JWTAuth(signer,'audience'))

验证jwt

importatlassian_jwt_authpublic_key_retriever=atlassian_jwt_auth.HTTPSPublicKeyRetriever('https://example.com')verifier=atlassian_jwt_auth.JWTAuthVerifier(public_key_retriever)verified_claims=verifier.verify_jwt(a_jwt,'audience')

对于从Python 3.5^{tt8}开始的python版本$ 为下列组件提供插入式替换 执行http请求,以便它们使用aiohttp,而不是requests

importatlassian_jwt_auth.contrib.aiohttppublic_key_retriever=atlassian_jwt_auth.contrib.aiohttp.HTTPSPublicKeyRetriever('https://example.com')verifier=atlassian_jwt_auth.contrib.aiohttp.JWTAuthVerifier(public_key_retriever)verified_claims=awaitverifier.verify_jwt(a_jwt,'audience')

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

推荐PyPI第三方库


热门话题
在java中将字符串转换为音频输入   java如何使用Spring Boot RestTemplate解组json列表   计算机上C++ OpenCV项目转换为OpenCV Android的java步骤   Java Spring Telegraf数据表不工作   openurlconnection与connect之间的java差异?   java Solr字段搜索、通配符和转义字符   java如何使用DLFolderLocalServiceUtil类的getFolders()方法?   尝试用Java编写文件   java连续双缓冲解决方案不起作用   两个数组的Java乘积   java Jackson,如何正确编写自定义反序列化程序   java将布尔标志按一定顺序排列以获得更好的性能是否有意义   java Vaadin无缓冲网格无法关闭   java在MySQL中以同一用户身份同时从不同客户端登录安全吗?   java如何使用安卓asynchttp库   java无法在Android中使用AlarmManager停止服务   java在Hibernate的XML配置文件中指定默认值   Spring启动应用程序中的java内存SQLITE不工作   Java代码无法写入文本文件,