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.
Enregistrez un compte Authing
Visitez https://console.authing.cn et enregistrez un compte
Connectez-vous à la console Authing
Créez un pool d'utilisateurs
Créez une application
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.
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.
Choisissez d'ajouter un IdToken personnalisé.
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) }
Créer une passerelle API
Entrez dans la console AWS API Gateway et cliquez sur "Créer une API".
Sélectionnez l'API HTTP et cliquez sur "Construire".
Remplissez le nom de l'API et cliquez sur "Suivant".
Cliquez sur "Suivant".
Cliquez sur "Suivant"
Cliquez sur "Créer".
Créer une fonction Lambda
Entrez dans la console AWS Lambda et cliquez sur "Créer une fonction".
Créez une fonction Lambda comme indiqué ci-dessous. Le nom de la fonction peut être renseigné arbitrairement.
Ajouter un déclencheur pour la fonction Lambda
Sélectionnez API Gateway.
Sélectionnez la passerelle API que vous venez de créer et cliquez sur "Ajouter".
点击 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-poc npm install
运行
node bin/www
然后在浏览器访问 https://kone.authing.cn
在登录页面输入账号和密码
收到来自 Lambda 的响应:
点击登出,再使用账号和密码登录
收到来自 Lambda 的响应:
注意 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!