市场合作伙伴的单点登录(SSO)如何运作

本文档介绍了 QuickNode 市场合作伙伴如何实现单点登录(SSO),以便 QuickNode 客户能够访问合作伙伴提供的服务。主要步骤包括:生成并共享密钥,QuickNode 使用该密钥签名 JWT 并将其发送给合作伙伴,合作伙伴验证 JWT 签名后,提取用户信息并允许用户登录其服务。

概述

如果你正在与 marketplace 集成,并且拥有你自己的门户网站,你希望已激活你的插件的客户能够访问,那么本指南适合你。在本指南中,我们将介绍你成功允许 QuickNode 客户登录你的服务所需的步骤。

当你创建一个 SSO 流程时,你将获得以下信息来让客户登录:

  1. 邮箱

  2. 用户名

  3. 组织名称

  4. QuickNode ID

流程从高层次上来看是这样的:

生成密钥并与 QuickNode 共享

我们要求你生成一个不超过 64 个字符的密钥,并确保其安全。你可以使用 python 生成一个安全的 64 位密钥,如下所示:

import secrets
priv = secrets.token_hex(32)

这样,你就可以将密钥放入插件注册表单的 JWT Secret 字段中:

我们将使用它来签署 JWT,我们通过在 provisioning 或 update 响应中的 dashboard-url 密钥中,将 JWT 发送到你提供给我们的 URL。我们这里有一个完整的指南,解释如何 provisioning、更新和取消 provisioning 的插件。

解码 JWT 并让客户登录

一旦用户决定从 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 上的签名后,请务必让用户登录你的服务,并将他们重定向到他们特定的门户网站。发送过来的确切键是 nameemailorganization_namequicknode_id

🚨 验证 JWT 是否使用你的私钥签名非常重要。

就是这样!如果你有任何问题,请随时与我们联系!

我们 ❤️ 反馈!

**

如果你对此指南有任何反馈或问题,请在此处告知我们!我们很乐意听取你的意见!

  • 原文链接: quicknode.com/guides/mar...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。