千家信息网

如何使用Authing和AWS JWT Authorizer替换Cognito

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"如何使用Authing和AWS JWT Authorizer替换Cognito"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何使用Auth
千家信息网最后更新 2025年01月20日如何使用Authing和AWS JWT Authorizer替换Cognito

这篇文章主要介绍"如何使用Authing和AWS JWT Authorizer替换Cognito"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何使用Authing和AWS JWT Authorizer替换Cognito"文章能帮助大家解决问题。

使用 Authing 的 OIDC Provider 作为 AWS API Gateway 的认证器,用于保护 Lambda 函数。无需编写任何鉴权代码,只需要在两边配置即可完成。同时还演示了 Authing 可以根据上下文不同情况来签发自定义字段的 OIDC IdToken 能力。

Authing 控制台配置

注册一个 Authing 账号

  1. 访问 https://console.authing.cn,注册一个账号

  1. 登录进入 Authing 控制台

创建一个用户池

创建一个应用

在应用列表找到刚刚创建的应用,点击配置。在下方签名算法处选择 RS256。

创建用户

进入用户管理> 用户列表,点击右上角的新建按钮,创建两个用户,最后点击保存。

设置 Token 自定义字段

进入扩展能力> 流水线 Pipeline,在最右侧「OIDC 签发 Token 前」位置,点击下面的加号。

选择添加自定义 IdToken。

在弹出的抽屉中,输入以下自定义代码来自定义 Token 字段。最后点击上传。

async function pipe(user, context, callback) {  if(user.email === 'sample@sample.com') {    user.addIdToken("companyCode", "sample")  }  if(user.email === 'sample2@sample.com') {    user.addIdToken("companyCode", "sample2")  }  callback(null, user, context)}

AWS 控制台配置

创建 API Gateway

进入 AWS API Gateway 控制台,点击「创建 API」。

选择 HTTP API,然后点击「构建」。

填写 API 名称,点击「下一步」。

点击「下一步」。

点击「下一步」

点击「创建」。

创建 Lambda 函数

进入 AWS Lambda 控制台,点击「创建函数」。

按下图方式创建 Lambda 函数,函数名称可以任意填写。

为 Lambda 函数添加触发器

选择 API Gateway。

选择刚刚创建的 API Gateway,点击「添加」。

点击 Lambda 函数,向下滚动浏览器窗口,进入编辑界面。



输入以下代码,用于返回 Token 中的信息,包括 companyCode。

exports.handler = async (event) => {    // TODO implement    const token = event.headers.authorization.replace('Bearer ', '');    const claims = event.requestContext.authorizer.claims;    const response = {        statusCode: 200,        body: JSON.stringify({            token,            claims,            companyCode: claims.companyCode        })        };    return response;};

最后点击「Deploy」。

设置 API Gateway 路由 Authorizer

进入 AWS API Gateway 控制台,找到刚创建的 API。

找到刚刚为 Lambda 函数设置的触发器路由,点击「附加授权」。

点击「创建并附加授权方」。

选择 JWT 授权方类型

授权方按照以下方式设置。

上面的信息可以在 Authing 控制台找到:

应用> 应用列表,找到你的应用,点击「配置」。

发布者 URL 填写这里的 Issuer,受众填写应用 ID。

最后点击「创建并附加」。

到此所有配置完毕

登录示例

安装 NodeJS

http://nodejs.cn/download/

克隆项目

git clone https://git.authing.co/yezuwei/sample-poc

安装依赖

cd sample-pocnpm install

运行

node bin/www

然后在浏览器访问 https://kone.authing.cn

在登录页面输入账号和密码

收到来自 Lambda 的响应:

点击登出,再使用账号和密码登录

收到来自 Lambda 的响应:

注意 companyCode 已经根据用户的信息字段,进行逻辑判断然后返回了另外一个。

关于"如何使用Authing和AWS JWT Authorizer替换Cognito"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0