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中的字符串反转字符,同时保留一些字符   java将系统时间与我获取它的时间进行比较   java解析ODATA URL以在准备entityset之前读取ID值   java中的有界通配符下界泛型即使在传递超类时也不会编译   c#Java的JVM和Java的内部工作方式有什么不同。NET的CLR?   java如何在windows7上指定JDK的版本?   Java:列出单个目录中的所有文件(1020000+)   java使用Logback和Lombok   安卓谷歌玩java。lang.NullPointerException   使用RSA的解密结果在普通Java和Android中有所不同   具有默认连接池的java Spring引导   java我如何在一个坏的测试环境中前进?