ak sk认证java demo_AK-SK鉴权

本文详细介绍了在Java中使用AK/SK进行鉴权的步骤,包括构造规范请求、创建待签字符串、计算签名以及如何将签名信息添加到请求头。还提供了请求参数说明和成功配置示例。
摘要由CSDN通过智能技术生成

插件名称类别

名称

描述

属性

服务插件

AK/SK 鉴权

gw-ak_sk_auth

用户鉴权

功能描述

配置自己的AK/SK,或是使用网关自动生成的AK/SK,完成认证。

客户端涉及的AK/SK签名以及请求发送的流程概述如下:

(1)构造规范请求。将待发送的请求内容按照与API网关后台约定的规则组装,确保客户端签名、API网关后台认证时使用的请求内容一致。

(2)使用规范请求和其他信息创建待签字符串。

(3)使用AK/SK和待签字符串计算签名。

(4)将生成的签名信息作为请求消息头添加到HTTP请求中,或者作为查询字符串参数添加到HTTP请求中。

请求参数说明:

参数名

说明

必填

值可能性

参数位置

Authorization-Type

鉴权方式

AK/SK

Header

Authorization

token值

Header

使用说明

一、构造规范请求

使用AK/SK方式进行签名与认证,首先需要规范请求内容,然后再进行签名。客户端与API网关使用相同的请求规范,可以确保同一个HTTP请求的前后端得到相同的签名结果,从而完成身份校验。

HTTP请求规范伪代码如下:

CanonicalRequest =

HTTPRequestMethod + '\n' +

CanonicalURI + '\n' +

CanonicalQueryString + '\n' +

CanonicalHeaders + '\n' +

SignedHeaders + '\n' +

HexEncode(Hash(RequestPayload))

假设 原始请求 如下:

GET http://www.demo.com/demo/login?parm1=value1&parm2= HTTP/1.1

Host: www.demo.com

X-Gateway-Date: 20200605T104456Z

1、HTTPRequestMethod:构造HTTP请求方法,以换行符结束。

HTTP请求方法,如GET、PUT、POST等。

构造示例:

GET

2、CanonicalURI:添加规范URI参数,以换行符结束。规范URI,即请求资源路径,是URI的绝对路径部分的URI编码。

根据RFC 3986标准化URI路径,移除冗余和相对路径部分,路径中每个部分必须为URI编码。如果URI路径不以“/”结尾,则在尾部添加“/”。

注意:

计算签名时,URI必须以“/”结尾。发送请求时,可以不以“/”结尾。

构造示例:

GET

/demo/login/

3、CanonicalQueryString:添加规范查询字符串,以换行符结束。查询字符串,即查询参数。如果没有查询参数,则为空字符串,即规范后的请求为空行。

规范查询字符串需要满足以下要求ÿ

海康威视的aksk是用于API鉴权的,用于保证API请求的安全性。具体的认证流程如下: 1. 在海康威视开发者平台注册账号,创建应用并获取对应的aksk。 2. 构造请求,将ak和请求参数组合成一个字符串,然后使用sk对该字符串进行HMAC-SHA256加密,得到一个签名字符串。 3. 将签名字符串添加到请求头中,请求海康威视API。 4. 服务器接收到请求后,会从请求头中获取签名字符串和ak,然后使用该ak在后台获取对应的sk,并且使用该sk对请求参数进行HMAC-SHA256加密,得到一个签名字符串。 5. 服务器将该签名字符串和请求头中的签名字符串进行比对,如果一致,则认为请求合法,返回API响应结果;否则认为请求不合法,返回错误响应。 需要注意的是,aksk是非常重要的信息,开发者应该妥善保管,避免泄露。在Python中,可以使用hmac库实现海康威视aksk的HMAC-SHA256摘要认证。具体的代码如下: ```python import hmac import hashlib ak = "your ak" # 填写你的ak sk = "your sk" # 填写你的sk params = "your params" # 填写你的请求参数,注意需要按照字典序排序并且进行urlencode编码 message = ak + params digest = hmac.new(sk.encode(), message.encode(), hashlib.sha256).hexdigest().upper() # 将digest添加到请求头中,然后发起API请求即可 ``` 其中,aksk是你在海康威视开发者平台获取的认证信息,params是你的请求参数。需要注意的是,params需要按照字典序排序,并且进行urlencode编码,否则认证会失败。最后将digest添加到请求头中,然后发起API请求即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值