如果您需要使用一种认证机制对接多个不同的外部认证系统,实现对于后端服务的保护,您可以通过API网关中的后端自定义认证实现此功能。在使用后端自定义认证对后端请求进行认证授权前,您需要先在FunctionGraph创建一个函数,通过函数定义您所需的认证信息。函数作为自定义认证的后端函数,对API网关中的API进行认证授权。
使用自定义认证调用API的流程如下图所示:
自定义认证依赖函数服务。如果当前Region没有上线函数服务,则不支持使用自定义认证。
下面以python语言为例,函数代码需要满足如下条件:
{ "statusCode":200, "body": "{\"status\": \"allow\", \"context\": {\"user\": \"abc\"}}" }
其中,body字段的内容为字符串格式,json解码之后为:
{ "status": "allow/deny", "context": { "user": "abc" } }
“status”字段为必选,用于标识认证结果。只支持“allow”或“deny”,“allow”表示认证成功,“deny”表示认证失败。
“context”字段为可选,只支持字符串类型键值对,键值不支持JSON对象或数组。
context中的数据为您自定义的字段,认证通过后作为认证参数映射到API网关后端参数中,其中context中的参数名称与系统参数名称必须完全一致,且区分大小写。context中的参数名称必须以英文字母开头,支持英文大小写字母、数字、下划线和中划线,且长度为1 ~ 32个字符。
如图3所示,后端认证通过后,context中的user的值abc映射到后端服务Header位置的test参数中,并将其传递给API的后端服务。
用户数据定义代码示例:
# -*- coding:utf-8 -*- import json import base64 def handler(event, context): token=base64.b64encode(event["user_data"]) resp = { 'statusCode': 200, 'body': json.dumps({ "status":"allow", "context":{ "token":token } }) } return json.dumps(resp)
{"user_data": "123"}
根据实际情况修改后保存测试模板,单击“测试”。
执行结果为“成功”时,表示测试成功。
接下来您需要进入API网关界面创建后端自定义认证。
在自定义认证中已经创建完成用于后端自定义认证的Function API,下一步您需要进入API网关中创建后端自定义认证。
本文转载自微信公众号「大数据DT」,作者欧创新 邓頔。转载本文请联系大数据DT公...
导语 子流程调用,是标准运维新的一个功能。子流程调用功能赋予了运维人员,更高...
11月24日,国际权威调研机构Gartner发布《Magic Quadrant for Cloud Database Ma...
操作场景 Kubernetes 提供 Kubectl 命令行工具用于操作集群,Kubectl 使用 Kubec...
调用GetParametersByPath通过路径获取普通参数。 调试 您可以在OpenAPI Explorer...
1. 接口描述 接口请求域名: cvm.tencentcloudapi.com 。 本接口 (AssociateSecu...
...
虚拟主机 + 域名 登入报错403是怎么回事?虚拟主机不可能永远不出差错,在使用过...
疫情推动SaaS市场加速增长,腾讯进一步升级SaaS生态千帆计划。9月11日,在2020腾...
目前,已经有多家IT,银行公司,在逐步构建AIOps实施和落地。这几年我们也看到了...