Bagaimana untuk menggantikan Cognito dengan Authing dan AWS JWT Authorizer

WBOY
Lepaskan: 2023-05-27 13:41:15
ke hadapan
709 orang telah melayarinya

Gunakan Pembekal OIDC Authing sebagai pengesah untuk AWS API Gateway untuk melindungi fungsi Lambda. Tidak perlu menulis sebarang kod pengesahan, hanya konfigurasikannya pada kedua-dua belah pihak. Ia juga menunjukkan keupayaan Authing untuk mengeluarkan OIDC IdToken untuk medan tersuai berdasarkan konteks yang berbeza.

Konfigurasi konsol Pengesahan

Daftar akaun Pengesahan

  1. Lawati https://console.authing.cn dan daftar akaun

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

  1. Log masuk ke Authing console

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

Buat kumpulan pengguna

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

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

Buat aplikasi

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

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

Cari aplikasi yang baru anda buat dalam senarai aplikasi dan klik Konfigurasikan. Pilih RS256 untuk Algoritma Tandatangan di bawah.

Buat Pengguna

Masukkan Pengurusan Pengguna> Senarai Pengguna, klik butang Baharu di sudut kanan atas, buat dua pengguna, dan akhirnya klik Simpan.

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

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

Tetapkan medan tersuai Token

Masukkan Keupayaan sambungan> Saluran Paip , klik tanda tambah di bawah pada kedudukan "Sebelum OIDC mengeluarkan Token" di hujung kanan.

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

Pilih untuk menambah IdToken tersuai.

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

Dalam laci pop timbul, masukkan kod tersuai berikut untuk menyesuaikan medan Token. Akhir sekali klik muat naik.

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)
}
Salin selepas log masuk

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

Konfigurasi konsol AWS

Buat Gerbang API

Masukkan konsol Gerbang API AWS dan klik "Buat API".

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

Pilih HTTP API dan klik "Bina".

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

Isi nama API dan klik "Seterusnya".

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

Klik "Seterusnya".

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

Klik "Seterusnya"

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

Klik "Buat".

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

Buat fungsi Lambda

Masukkan konsol AWS Lambda dan klik "Buat Fungsi".

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

Buat fungsi Lambda seperti yang ditunjukkan di bawah Nama fungsi boleh diisi dengan sewenang-wenangnya.

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

Tambah pencetus untuk fungsi Lambda

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

Pilih API Gateway.

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

Pilih Gerbang API yang baru anda buat dan klik "Tambah".

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

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

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

输入以下代码,用于返回 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;
};
Salin selepas log masuk

最后点击「Deploy」。

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

设置 API Gateway 路由 Authorizer

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

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

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

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

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

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

选择 JWT 授权方类型

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

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

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

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

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

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

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

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

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

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

到此所有配置完毕

登录示例

安装 NodeJS

http://nodejs.cn/download/

克隆项目

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

安装依赖

cd sample-poc
npm install
Salin selepas log masuk

运行

node bin/www

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

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

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

收到来自 Lambda 的响应:

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

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

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

收到来自 Lambda 的响应:

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

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

Atas ialah kandungan terperinci Bagaimana untuk menggantikan Cognito dengan Authing dan AWS JWT Authorizer. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!