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结合两个Date实例使用Joda创建datetime   带有POI和FileOutputStream的java Swing应用程序性能问题   Java中是否存在类似于Python的异常?   Java中有界通配符的泛型   使用字符和子字符串的java不同输出   在Java中获取LDAP模式   java自定义类在自身上生成ClassNotFoundException   java连接到从internet到通过LAN连接到internet的系统的serversocket   java如何通过maven在jaxws中使用jaxb插件?   java Kerberos如何获取主体或客户端名称?   java应用服务器中是否有JDBC的单点登录解决方案?   java是存储矩阵值以便以后访问的更好方法   Java等级计算器。开始这门课我需要一些帮助   未找到Android“libc++\u shared.so”中的java OpenCV实现   当我使用web配置部署描述符时使用java。xml。它显示了错误   java为什么我的ArrayList的add方法冲突,如何编辑我的自定义add方法   java创建一个以集合为键的映射?   java如何将用户输入到数字三角形中   为什么Java在读取LinkedHashMap时会自动从字符串转换为整数   类动态创建和读取java类