尝试使用azure保管库证书密钥解密时出错:“操作返回了无效的状态码'禁止'”

时间:2019-01-24 14:30:53

标签: azure encryption azure-keyvault

我正在尝试通过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();

如果有人这样做,请在评论中写回,将会有很大帮助。

3 个答案:

答案 0 :(得分:0)

  

操作返回了无效的状态代码“禁止”

正如我已经测试过的那样,似乎您没有在Key Vault中为应用程序配置Access Policy,以访问密钥或处理加密/解密。

enter image description here

此外,请检查是否将注册的应用程序的角色分配添加到天蓝色的密钥库中。

enter image description here

有关更多详细信息,您可以参考经过测试的article,它工作正常。

答案 1 :(得分:0)

也许我的情况有所不同,但是为了防止有人遇到相同的问题,我将在这里详细说明。 我在Azure Key Vault UI上创建了一个证书(注意:一个证书,而不是一个密钥),并将其用于加密/解密,并导致 Operation返回了无效的状态码“ Forbidden” 错误。

我试图创建一个新证书,但是这次我检查了所有“高级策略配置”选项(尽管您只应检查所需的选项),而新证书对我有用:

enter image description here

答案 2 :(得分:0)

如果您尝试在具有AS2Decode的Logic应用中使用这种证书,也会发生此错误。 然后您将得到的错误是:

  • 集成帐户操作失败,状态码为:禁止和 错误KeyVaultOperationFailed:与密钥库通信 '.......... KeyVault'失败。请授权逻辑应用执行 通过授予对逻辑应用程序服务的访问权限来对密钥库进行操作 主体'7cd684f4-8a78-49b0-91ec-6a35d38739ba'用于'列表','获取', “解密”和“签名”操作。

谢谢您的解决方案!