我试图从开放的id规范中得到一些关于at_hash定义的澄清。
访问令牌哈希值。它的值是base64url值的ASCII表示的八进制哈希值的左半部分的哈希编码,其中使用的哈希算法是ID令牌的JOSE报头的alg参数头中使用的哈希算法。例如,如果alg是RS256,则使用SHA-256散列access_token值,然后取最左边的128位,base64url对它们进行编码。at_hash值是区分大小写的字符串。
ASCII表示的值的八进制哈希
这是我困惑的地方。
这是否意味着我们应该散列整个访问令牌?
或
我们是否应该对访问令牌进行解码,并像JTI那样散列一个字段?
发布于 2020-06-03 09:36:31
我想伪码应该是:
getBase64UrlString(getLeftHalfOfArray(getSha256Bytes(getAsciiBytes(accessTokenJwtString))))
这里的示例C#实现:
在CreateHashClaimValue()中
https://stackoverflow.com/questions/62167408
复制相似问题