创建自定义鉴权
功能介绍
应用服务器可调用此接口在物联网平台创建一个自定义鉴权。自定义鉴权是指用户可以通过函数服务自定义实现鉴权逻辑,以对接入平台的设备进行身份认证。
-
单个实例最大可配置10个自定义鉴权
-
仅标准版实例、企业版实例支持该接口调用,基础版不支持。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v5/iot/{project_id}/device-authorizers
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数说明:项目ID。获取方法请参见 获取项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
否 |
String |
参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 |
Instance-Id |
否 |
String |
参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考 查看实例详情。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
authorizer_name |
是 |
String |
参数说明:自定义鉴权器名称,同一租户下的自定义鉴权器名称不能重复。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 |
func_urn |
是 |
String |
参数说明:函数的URN(Uniform Resource Name),唯一标识函数,即自定义鉴权器对应的处理函数地址。 |
signing_enable |
否 |
Boolean |
参数说明:是否启动签名校验,启动签名校验后不满足签名要求的鉴权信息将被拒绝,以减少无效的函数调用。推荐用户进行安全的签名校验,默认开启, 开启时signing_token与signing_public_key必填。 |
signing_token |
否 |
String |
参数说明:签名校验的Key值,开启签名校验时使用。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 |
signing_public_key |
否 |
String |
参数说明:签名校验的公钥,开启签名校验时使用。用于认证设备携带的签名信息是否正确。 |
default_authorizer |
否 |
Boolean |
参数说明:当前自定义鉴权是否为默认的鉴权方式,默认为false,当设置为true时,用户所有支持SNI的设备,如果在鉴权时不指定使用特定的设备鉴权,将统一使用当前鉴权器策略进行鉴权。 |
status |
否 |
String |
参数说明:是否激活该鉴权方式
|
cache_enable |
否 |
Boolean |
参数说明:是否开启缓存,默认为false,设备为true时,当设备入参(username,clientId,password,以及证书信息,函数urn)不变时,当缓存结果存在时,将直接使用缓存结果,建议在调试时设置为false,生产时设置为true,避免频繁调用函数。 |
响应参数
状态码: 201
参数 |
参数类型 |
描述 |
---|---|---|
authorizer_id |
String |
参数说明:自定义鉴权ID。 |
authorizer_name |
String |
参数说明:自定义鉴权器名称,同一租户下的自定义鉴权器名称不能重复。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 |
func_name |
String |
参数说明:函数名称。 |
func_urn |
String |
参数说明:函数的URN(Uniform Resource Name),唯一标识函数,即自定义鉴权器对应的处理函数地址。 |
signing_enable |
Boolean |
参数说明:是否启动签名校验,启动签名校验后不满足签名要求的鉴权信息将被拒绝,以减少无效的函数调用。推荐用户进行安全的签名校验,默认开启。 |
signing_token |
String |
参数说明:签名校验的Key值,开启签名校验时使用。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 |
signing_public_key |
String |
参数说明:签名校验的公钥,开启签名校验时使用。用于认证设备携带的签名信息是否正确。 |
default_authorizer |
Boolean |
参数说明:是否为默认的鉴权方式,默认为false。 |
status |
String |
参数说明:是否激活该鉴权方式
|
cache_enable |
Boolean |
参数说明:是否开启缓存,默认为false,设备为true时,当设备入参(username,clientId,password,以及证书信息,函数urn)不变时,当缓存结果存在时,将直接使用缓存结果,建议在调试时设置为false,生产时设置为true,避免频繁调用函数。 |
create_time |
String |
在物联网平台进行自定义鉴权相关操作的时间。格式:yyyyMMdd'T'HHmmss'Z',如:20151212T121212Z。 |
update_time |
String |
在物联网平台更新自定义鉴权相关操作的时间。格式:yyyyMMdd'T'HHmmss'Z',如:20151212T121212Z。 |
请求示例
创建自定义鉴权
POST https://{endpoint}/v5/iot/{project_id}/device-authorizers { "authorizer_name" : "myTest", "func_urn" : "urn:fss:cn-north-5:d92d9c5eb8e347b5bb31ecfe5bc0c4e1:function:default:mqtt_auth:latest", "signing_enable" : true, "signing_token" : "string", "signing_public_key" : "string", "default_authorizer" : false, "status" : "ACTIVE", "cache_enable" : true }
响应示例
状态码: 201
Created
{ "authorizer_id" : "5c90fa7d3c4e4405e8525079", "authorizer_name" : "myTest", "func_name" : "mqtt_auth", "func_urn" : "urn:fss:cn-north-5:d92d9c5eb8e347b5bb31ecfe5bc0c4e1:function:default:mqtt_auth:latest", "signing_enable" : true, "signing_token" : "string", "signing_public_key" : "string", "default_authorizer" : false, "status" : "ACTIVE", "cache_enable" : false, "create_time" : "20231031T070547Z", "update_time" : "20231031T070547Z" }
状态码
状态码 |
描述 |
---|---|
201 |
Created |
400 |
Bad Request |
401 |
Unauthorized |
403 |
Forbidden |
500 |
Internal Server Error |
错误码
请参见错误码。