我正在尝试通过C#代码和天蓝色的密钥库证书密钥解密加密的字符串,加密部分可以正常工作,但解密时会出现异常:“ Operation returned an invalid status code 'Forbidden'
,“ Operation decrypt is not permitted on this key.
”
从AD刀片服务器将其注册到Azure AD“应用程序注册”选项时,我已允许所有权限。还有其他需要添加更多权限的地方吗?已遵循此article来设置证书和与AD的关联。
我用于解密的一行代码:
var decryptedData = kv.DecryptAsync(key.Key.Kid,JsonWebKeyEncryptionAlgorithm.RSAOAEP, encryptedTextNew).GetAwaiter().GetResult();
如果有人这样做,请在评论中写回,将会有很大帮助。
答案 0 :(得分:0)
操作返回了无效的状态代码“禁止”
正如我已经测试过的那样,似乎您没有在Key Vault中为应用程序配置Access Policy
,以访问密钥或处理加密/解密。
此外,请检查是否将注册的应用程序的角色分配添加到天蓝色的密钥库中。
有关更多详细信息,您可以参考经过测试的article,它工作正常。
答案 1 :(得分:0)
也许我的情况有所不同,但是为了防止有人遇到相同的问题,我将在这里详细说明。 我在Azure Key Vault UI上创建了一个证书(注意:一个证书,而不是一个密钥),并将其用于加密/解密,并导致 Operation返回了无效的状态码“ Forbidden” 错误。
我试图创建一个新证书,但是这次我检查了所有“高级策略配置”选项(尽管您只应检查所需的选项),而新证书对我有用:
答案 2 :(得分:0)
如果您尝试在具有AS2Decode的Logic应用中使用这种证书,也会发生此错误。 然后您将得到的错误是:
谢谢您的解决方案!