我在动态 CRM 中编写了一个插件。此插件访问部署在 Azure 云中的一些 Web API 2 方法(通过
HTTPS
)。当 CRM 中的联系人数据发生变化时,将触发该插件。许多 CRM 帐户持有人会更新联系数据。
我将在插件中硬编码一个“密钥”(一次性生成的 Guid),并在每次访问 Web API 方法时发送此密钥。我将在 web api 方法中验证此 guid 以防止未经授权的访问。
我不喜欢在源代码中存储密钥(guid)。
问题
注意
一般来说,我所有的Web API都是通过自定义认证web api过滤器进行认证的,但是从插件访问的Web API并不是自定义认证的一部分。
CRM版本是2013
我认为这种方法永远不会安全。
可以从 CRM 中提取插件程序集。然后有人可以拆卸组件并找到 Guid。实际上,您的密码以纯文本形式存储。
至少您可以将用户名/密码/密钥存储在 CRM 记录中。然后可以使用 CRM 安全保护 CRM 记录。
您最好“正常”实施身份验证。
对于 D365 在线实例,安全/不安全配置 是最佳实践。