Python中的SSO Cookie加密

时间:2017-02-16 05:22:57

标签: python cookies encryption single-sign-on rsa

我尝试在单独的服务器上生成用户身份验证(由其他公司运营):

https://www.example.com(我的网站)
https://forums.example.com(由公司运营的论坛实例)

要执行此身份验证,他们可以选择使用以下选项接受加密的SSO Cookie:

  • Cookie名称:测试
  • 编码:

    的Base64
    地址
  • 加密算法:
    AES
    RSA
  • 密码:
    AES / CBC / NoPadding
    AES / CBC / PKCS7Padding
    AES / CBC / PKCS5Padding
    RSA / ECB / PKCS1Padding
  • 解密Cookie的关键:
    上传文件(private_key.pem)
  • 字节数组后的处理块大小:
  • 数据类型:
    平原
    JSON
    XML

我已经在没有加密的情况下对此实现进行了测试,但它确实有效,因此我知道问题不在于JSON,而在于加密。我已多次尝试加密cookie并将其传递,但​​论坛网站无法解密cookie,无论各种实现如何。这就是我现在所拥有的:

from Crypto.Cipher import RSA
from Crypto.Cipher import PKCS1_v1_5
import base64

def login(request):
    key = RSA.generate(2048)
    pubKey = key.publickey()
    privKey = key.exportKey('PEM') // save into private_key.pem and uploaded

    msg = '{"id": 1, "user": "jdoe"}'

    cipher = PKCS1_v1_5.new(pubKey)
    emsg = base64.b64encode(cipher.encrypt(msg))

    response = redirect("https://forum.example.com")

    response.set_cookie("test", emsg, secure=True, httponly=True, domain="example.com")

    return response

0 个答案:

没有答案