介绍
api-umbrella-gatekeeper 是一个 Node.js 的中间件,用于验证 API 的访问令牌和权限。它可以与 API Umbrella 集成,并提供了一个可扩展的插件和授权策略系统。使用此中间件,您可以轻松地构建一个安全的 API。
安装
首先,您需要使用 NPM 安装 api-umbrella-gatekeeper 包。
npm install api-umbrella-gatekeeper --save
配置
在运行 api-umbrella-gatekeeper 之前,您需要创建一个配置文件。您可以根据您的需求,在配置文件中设置访问令牌、API 服务器地址和插件等参数。
以下是一个简单的配置文件示例:
-- -------------------- ---- ------- -------------- - - -------------------- - ------- -------------------------- ------- ----------- -- ------------- ------------------------------------- --------------- --------------------------------- --------- ------------- ------------- ----------------- -------- - --------- - -------- ----- -------- - -------- --------- -------- --------- -- -- -- --
使用
在您的应用程序中,您需要引入 api-umbrella-gatekeeper 中间件,并将其与您的 Express.js 实例进行关联。然后,您可以通过配置路由和 API 令牌来访问受保护的 API。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --------------------- - ----------------------------------- ----- ------ - -------------------- ----- --- - ---------- --------------------------------------- ------------------------------- ----- ---- -- - -------------- -------- -- --------- -- --------------------------- --- ---------------- -- -- ------------------- ------------
现在您可以通过向您的 API 发送 HTTP 请求来检查 api-umbrella-gatekeeper 是否为您的 API 请求验证了令牌和权限。例如:
curl http://localhost:3000/myProtectedEndpoint -H "Authorization: Bearer myAccessToken"
插件和授权策略
api-umbrella-gatekeeper 通过插件和授权策略系统提供了可扩展性。您可以使用默认的插件和授权策略,也可以编写自己的定制插件和授权策略。
插件
api-umbrella-gatekeeper 插件用于扩展验证逻辑,例如实现其他授权策略、支持不同的 API 格式等。默认提供的插件有:
allowlist
: 允许特定的 IP 地址访问 API。denylist
: 拒绝特定的 IP 地址访问 API。
您可以在配置文件中启用这些插件,也可以编写您自己的插件。以下是一个编写自定义插件的示例:
-- -------------------- ---- ------- -- ----------------- ----------------------------------- - ------------ ------------- -- - ------ ----- ---- ----- -- - ----- ----------- - ------------------------------- -- ------------ -- ----------- --- --------------------------- - ------ ------- - ---- - ------ ------------------------------------- - -- --
-- -------------------- ---- ------- -- --------- -------------- - - --- -------- - --------------- - -------- ----- ------- ---------------------- -------- - -------------- ----------------- -- -- -- --
在上面的例子中,我们编写了一个插件 myCustomPlugin
,它会检查请求头中的自定义键是否与配置的值匹配。如果是,则授权通过,否则禁止访问该 API。
授权策略
授权策略用于定义哪些用户可以访问 API。默认提供的授权策略有:
oauth2
: 使用 OAuth2 令牌验证用户的身份。key
: 使用访问密钥验证用户的身份。
您可以在配置文件的 authorizeUrl
和 accessTokenUrl
中定义 OAuth2 的授权和获取令牌的地址。默认情况下,这些地址是 https://auth.example.com/authorize
和 https://auth.example.com/token
。
以下是一个启用 OAuth2 授权策略的示例:
-- -------------------- ---- ------- -- --------- -------------- - - --- ------------- ------------------------------------- --------------- --------------------------------- --------- ------------- ------------- ----------------- --
在上面的例子中,我们设置了 OAuth2 的授权和获取令牌的地址,以及我们的客户端 ID 和客户机密码。
结论
api-umbrella-gatekeeper 提供了一个灵活的、可扩展的中间件,用于验证 API 令牌和权限。它具有丰富的配置选项、可扩展的插件和授权策略系统,并集成了 API Umbrella 平台,使 API 的保护变得更加容易。
希望这篇文章能够帮助您理解 api-umbrella-gatekeeper 的基本用法和配置,以及如何编写自己的插件和授权策略。如果您有任何问题或建议,请随时在评论区留言。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/105366