首页 > 其他分享 >geteway 认证配置

geteway 认证配置

时间:2023-06-15 10:11:46浏览次数:39  
标签:00 配置 插件 认证 geteway date hmac HMAC GMT

认证配置

API网关Kong系列(四)认证配置

 

目前根据业务需要先介绍2种认证插件:Key Authentication 及 HMAC-SHA1 认证

  Key Authentication

 

向API添加密钥身份验证(也称为API密钥)。 然后,消费者可以在 querystring 参数或 Header 头中添加其密钥,以验证其请求。


 进入之前部署好的kong-ui,选择plugins,点击+号

 

按需求输入参数

同样创建一个消费者

 其中客户Id为选填

生成后进入消费者列表,编辑该用户,按一下操作生成对应的key。

同时我们可以看到消费者中包含有其他插件所需的属性等,可以按需自己生成。

 

 

 添加后如下

 

 

使用起来也很简单,将key(之前添加插件是设置的key名称)插入header值即可

 

如果验证错误则返回403

 

   HMAC Authentication

为您的API添加HMAC签名身份验证以建立使用者的身份。 插件将在代理授权和授权Header中检查有效的签名(按此顺序)。 这个插件实现遵循draft-cavage-http-signatures-00草案略有改变的签名方案。

 根据如上方法,同理增加HMAC认证凭证

同理加入HMAC插件

 

 

 HMAC-SHA1,C#代码实现:

复制代码
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace Security.Cryptography
{
    public static class HMAC_SHA1
    {
        public static string Sign(string text, string key, string inputCharset = "utf-8")
        {
            Encoding _encode = Encoding.GetEncoding(inputCharset);
            byte[] _byteData = Encoding.GetEncoding(inputCharset).GetBytes(text);
            HMACSHA1 _hmac = new HMACSHA1(_encode.GetBytes(key));

            using (CryptoStream _cs = new CryptoStream(Stream.Null, _hmac, CryptoStreamMode.Write))
            {
                _cs.Write(_byteData, 0, _byteData.Length);
            }
            return Convert.ToBase64String(_hmac.Hash);
        }
    }
}
复制代码

 

请求的时候主要是header中

Authorization 的构造,根据官方文档

Authorization: hmac username="bob", algorithm="hmac-sha1", headers="date content-md5", signature="Base64(HMAC-SHA1(signing string))"

如果有多个Header的话,header名称用空格隔开,注意官方文档中的"date"如今应该改成"x-date",date的格式请使用GMT时间诸如"Wed, 01 Mar 2017 05:05:24 GMT"

官方文档中加密字符串:

date: Fri, 09 Oct 2015 00:00:00 GMT\ncontent-md5: lCMsW4/JJy9vc6HjbraPzw==

注意也要将date修改成x-date,如果没有content-md5这个头,那就不用加\n,直接为

x-date: Fri, 09 Oct 2015 00:00:00 GMT

 

这边提供一组正确的加密字串,供大家实现算法后验证

secret:secret7496

加密前字符串:x-date: Wed, 01 Mar 2017 05:05:24 GMT

摘要字符串为:XefFQYm8HRXsocJHF4ibDEPWW3k=

 

重要备注:

这个HMAC主要碰到2类错误

1.HMAC signature cannot be verified, a valid date or x-date header is required for HMAC Authentication

这个错误主要2种情况都跟日期有关

  1)服务器时间跟客户端发出去的x-date的间隔时间超过之前定义的clock skew秒数(通过docker容器安装的容易产生这个问题)

  2)请确认是GMT时间格式

  3)把date改成x-date

2.HMAC signature does not match

这个就是签名算法有问题了

标签:00,配置,插件,认证,geteway,date,hmac,HMAC,GMT
From: https://www.cnblogs.com/Leo_wl/p/17482104.html

相关文章

  • windows php7、PHPStudy(小皮)配置oracle扩展
    一、php配置oci扩展1.访问链接下载对应oracle版本的即时客户端(OracleInstantClient)https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html  2.解压下载文件,将下面两个文件放入php目录下   3.访问链接https://windows.php.net/down......
  • v3路由配置
    importtype{RouteRecordRaw}from'vue-router';importtype{App}from'vue';import{createRouter,createWebHistory}from'vue-router';import{basicRoutes}from'./routes';import{REDIRECT_NAME}from&#......
  • apache/nginx配置
    apache配置文件里修改如下<IfModulemod_fcgid.c>AddHandlerfcgid-script.fcgiFcgidProcessLifeTime100000FcgidIOTimeout100000FcgidConnectTimeout100000#togetarounduploaderrorswhenuploadingimagesincreasethe......
  • 华为的MSTP+VRRP配置.
     AR11undoterminalmonitor2system-view3sysnameAR14interfaceGigabitEthernet0/0/05ipaddress192.168.0.2255.255.255.2526quit7interfaceGigabitEthernet0/0/18ipaddress192.168.0.6255.255.255.2529quit10interfaceloopback01......
  • VScode配置C语言环境
    0.前言运行系统为【Windows11专业版】1.安装VScode 官网下载 VScode或使用电脑自带【MicrosoftStore】(微软商店)下载。2.运行配置VScode3.安装编译器(MinGW-W64GCC)下载地址官网:MinGW-w64蓝奏云:https://hyborn.lanzouw.com/iqb1x0i0wwjc密码:0000下载完成后把压缩......
  • uniapp vue.config.js配置chunk-vendors.js文件拆分
    constpath=require('path')functionresolve(dir){returnpath.join(__dirname,dir);}constCompressionPlugin=require('compression-webpack-plugin')consthtmlWebpackPlugin=require('html-webpack-plugin')htmlWebpackPl......
  • 01企业项目开发流程,你平时的工作流程,pip永久换源,虚拟环境和虚拟环境搭建,luffy后台创建
    1企业项目类型#1面向互联网用户:商城类项目 -微信小程序商城-app商城-得物-饿了么-问卷网#2面向互联网用户:二手交易类的 -咸鱼 -转转#3公司内部项目:python写的重点#传统软件行业,互联网 -给客户做软件:国家电网,社保局,银行,医院,大客户......
  • SpringBoot使用自定义日志注解,配置切面
    1.使用技巧以下是需要注意的部分:在环绕通知中使用ProceedingJoinPoint,控制目标方法的运行。在其他通知类型中使用JoinPoint。如果使用JoinPoint则必须位于参数的第一位。ProceedingJoinPoint中有特殊的方法proceed()。当有多个切面时,使用@Order(11)来指定注解的优先级。......
  • 【OpenCV】在VS2017中配置OpenCV开发环境
    开发环境:OpenCV4.5.4、VS2017、x64打开属性管理器:视图-->其他窗口-->属性管理器找到Release|x64,配置OpenCV环境主要操作的对象就是Micorosoft.Cpp.x64.user需要注意的是Micorosoft.Cpp.x64.user在VS2019里没有了,只能手动创建,手动创建方式:右击Release|x64,选择“添加新项目属......
  • doris/starrocks配置参数修改
    FE参数分为动态参数和静态参数。动态参数可通过SQL命令进行在线配置和调整,方便快捷。静态参数必须在FE配置文件 fe.conf 中进行配置和调整。调整完成后,需要重启FE使变更生效。参数是否为动态参数可通过 ADMINSHOWCONFIG 返回结果中的 IsMutable 列查看。TRUE 表......