开发者社区 > 云原生 > Serverless > 正文

阿里云Serverless 中在钉钉机器人中,怎么使用函数计算的签名认证?

阿里云Serverless 中在钉钉机器人中,怎么使用函数计算的签名认证?钉钉机器人只能设置outgoing链接和token,无法实现计算签名的逻辑。

展开
收起
小小鹿鹿鹿 2023-11-20 22:31:18 50 0
3 条回答
写回答
取消 提交回答
  • 可以参考这个:
    https://help.aliyun.com/zh/fc/developer-reference/signature-authentication
    这个是签名认证的算法 。此回答来自钉群Serverless 开发者技术学习群。

    2023-11-22 08:19:03
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    要使用函数计算在钉钉机器人中实现签名认证,可以通过以下步骤进行:

    1. 生成签名:调用 SDK 方法,根据钉钉机器人提供的 outgoing links 和 token 创建签名。
    2. 验证签名:在发送请求前,在函数计算中验证签名的有效性。
    3. 发送请求:将签名附带到 URL 上发送给钉钉机器人,确保请求成功。

    需要注意的是,签名的生成过程比较复杂,需要实现多步处理。具体来说,需要在函数计算环境中处理许多细节,例如验证时间戳和 nonce 参数,调用 HMAC-SHA256 算法,以及判断返回码等。

    2023-11-21 17:15:22
    赞同 展开评论 打赏
  • 在阿里云Serverless中,如果你想在钉钉机器人中使用函数计算的签名认证,你可以将签名认证的逻辑放在函数计算函数中,然后通过API调用这个函数来计算签名。

    以下是一个简单的示例:

    1. 在函数计算控制台中,创建一个新的函数,并设置触发器为API网关触发器。

    2. 在函数代码中,编写签名认证的逻辑。例如,你可以使用Python的hashlib库来计算签名。

    import hashlib
    import hmac
    import urllib.parse
    
    def main_handler(event, context):
        secret_key = "your_secret_key"
        method = "GET"
        url = "https://api.dingtalk.com/robot/sendmsg?access_token=your_access_token&msgtype=text"
        data = {
            "content": "Hello, world!"
        }
        data_string = urllib.parse.urlencode(data)
        digest = hmac.new(secret_key.encode(), data_string.encode(), digestmod=hashlib.sha256).digest()
        signature = urllib.parse.quote(digest)
        return {
            "url": url,
            "method": method,
            "data": data_string,
            "signature": signature
        }
    
    1. 配置钉钉机器人的Outgoing Webhook,将生成的URL、Method、Data和Signature填入相应的字段。

    这样,当你发送消息时,钉钉机器人就会调用函数计算函数来计算签名,然后发送消息。

    2023-11-21 16:23:19
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    阿里云云原生 Serverless 技术实践营西安站材料合集 立即下载
    阿里云产品十一月刊来啦! 立即下载
    阿里云产品安全基线白皮书 立即下载