recherche
MaisonOpération et maintenanceSécuritéComment remplacer Cognito par Authing et AWS JWT Authorizer

Utilisez le fournisseur OIDC d'Authing comme authentificateur pour AWS API Gateway afin de protéger les fonctions Lambda. Il n'est pas nécessaire d'écrire un code d'authentification, il suffit de le configurer des deux côtés. Cela démontre également la capacité d'Authing à émettre un IdToken OIDC pour des champs personnalisés en fonction de différents contextes.

Configuration de la console Authing

Enregistrez un compte Authing

  1. Visitez https://console.authing.cn et enregistrez un compte

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

  1. Connectez-vous à la console Authing

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

Créez un pool d'utilisateurs

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

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

Créez une application

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

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

Recherchez l'application que vous venez de créer dans la liste des applications et cliquez sur Configurer. Sélectionnez RS256 pour l'algorithme de signature ci-dessous.

Créer un utilisateur

Entrez Gestion des utilisateurs> Liste des utilisateurs, cliquez sur le bouton Nouveau dans le coin supérieur droit, créez deux utilisateurs et enfin cliquez sur Enregistrer.

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

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

Définissez le champ personnalisé du jeton

Entrez les Capacités d'extension> Pipeline, cliquez sur le signe plus ci-dessous à la position « Avant que l'OIDC n'émet le jeton » à l'extrême droite.

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

Choisissez d'ajouter un IdToken personnalisé.

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

Dans le tiroir contextuel, saisissez le code personnalisé suivant pour personnaliser le champ Jeton. Cliquez enfin sur Télécharger.

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)
}

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

Configuration de la console AWS

Créer une passerelle API

Entrez dans la console AWS API Gateway et cliquez sur "Créer une API".

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

Sélectionnez l'API HTTP et cliquez sur "Construire".

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

Remplissez le nom de l'API et cliquez sur "Suivant".

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

Cliquez sur "Suivant".

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

Cliquez sur "Suivant"

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

Cliquez sur "Créer".

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

Créer une fonction Lambda

Entrez dans la console AWS Lambda et cliquez sur "Créer une fonction".

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

Créez une fonction Lambda comme indiqué ci-dessous. Le nom de la fonction peut être renseigné arbitrairement.

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

Ajouter un déclencheur pour la fonction Lambda

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

Sélectionnez API Gateway.

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

Sélectionnez la passerelle API que vous venez de créer et cliquez sur "Ajouter".

如何使用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;
};

最后点击「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

运行

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 已经根据用户的信息字段,进行逻辑判断然后返回了另外一个。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP