是否可以保护基于 Active Directory(或其他 SSO)身份验证的秘密?

Is it possible to protect a secret based on Active Directory (or other SSO) Authentication?

我有一个应用程序,理想情况下,用户将使用 AD 登录。我还需要为每个用户存储一个加密密钥,在存储之前应该对其进行加密。

AD、kerberos 或任何社交 SSO 是否提供任何机制,可以根据我的 authentication/authorization 给我一个秘密,我可以用它来加密密钥?

或者与 DPAPI 相似但可以跨设备可靠工作的任何 API?

最后,在 AD 中存储未加密的加密密钥是否被视为不良做法?在我看来,bitlocker 正在有效地执行此操作。

到目前为止我能找到的最好的方法是使用像 Hashicorp Vault 这样的东西,它允许针对 AD 用户存储密钥并最终基于内存驻留密钥进行加密。

您正在寻找 Kerberos 密钥表,是吗?

Hashicorp Vault 支持多个身份验证后端。 LDAP 就是其中之一。 另请参阅 t-vault。它建立在 Hashicorp Vault 之上,它会给你一个很好的 UI 以及更高的抽象级别,称为安全。您可以为 AD 中的每个用户创建保险箱。为用户或 ldap 组授予安全访问权限。

您可以查看 t-vault 的快速演示 here