本文档介绍了 QuickNode 市场合作伙伴如何实现单点登录(SSO),以便 QuickNode 客户能够访问合作伙伴提供的服务。主要步骤包括:生成并共享密钥,QuickNode 使用该密钥签名 JWT 并将其发送给合作伙伴,合作伙伴验证 JWT 签名后,提取用户信息并允许用户登录其服务。
如果你正在与 marketplace 集成,并且拥有你自己的门户网站,你希望已激活你的插件的客户能够访问,那么本指南适合你。在本指南中,我们将介绍你成功允许 QuickNode 客户登录你的服务所需的步骤。
当你创建一个 SSO 流程时,你将获得以下信息来让客户登录:
邮箱
用户名
组织名称
QuickNode ID
流程从高层次上来看是这样的:
我们要求你生成一个不超过 64 个字符的密钥,并确保其安全。你可以使用 python 生成一个安全的 64 位密钥,如下所示:
import secrets
priv = secrets.token_hex(32)
这样,你就可以将密钥放入插件注册表单的 JWT Secret 字段中:
我们将使用它来签署 JWT,我们通过在 provisioning 或 update 响应中的 dashboard-url 密钥中,将 JWT 发送到你提供给我们的 URL。我们这里有一个完整的指南,解释如何 provisioning、更新和取消 provisioning 的插件。
一旦用户决定从 QuickNode 转到你的门户网站,他们将点击一个显示 “Dashboard” 的链接,如下所示(右侧):
然后,我们将使用你提供给我们的 JWT Secret 来签署一个 JWT,并将用户转发到你的服务,JWT 在 URL 中,如下所示:
https://auth.yoursite.com/access/jwt?jwt=eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NjM4MjAxNjMsImp0aSI6IjE2NjM4MjAxNjMvYmQ3MzAxZmFmZDhjMmU4ODAwZGEwMmU1MDY2OWQ5YjYxOGQzIiwibmFtZSI6Ikx1YSBCZWVlZSIsImVtYWlsIjoidGVzdEBxdWlrbm9kZS5pbyIsIm9yZ2FuaXphdGlvbl9uYW1lIjoiUXVpY2tOb2RlIiwicXVpY2tub2RlX2lkIjoiMGZmZTFhYmQxYTA4MjE1MzUzYzIzM2Q2ZTAwOTYxM2U5NWVlYzQyNTM4MzJhNzYxYWYyOGZmMzdhYzVhMTUwYyJ9.BLO4zzLmFxls-sb60qiy7PRn3ogkKgyBwmOv2ZahFdY
你可以这样解码这个 JWT:
import jwt
info = jwt.decode(
encoded_jwt,
"secret-from-section-above",
algorithms=["HS256"]
)
在解码和验证 JWT 上的签名后,请务必让用户登录你的服务,并将他们重定向到他们特定的门户网站。发送过来的确切键是 name
、email
、organization_name
和 quicknode_id
。
🚨 验证 JWT 是否使用你的私钥签名非常重要。
就是这样!如果你有任何问题,请随时与我们联系!
我们 ❤️ 反馈!
**
如果你对此指南有任何反馈或问题,请在此处告知我们!我们很乐意听取你的意见!
- 原文链接: quicknode.com/guides/mar...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!