2016-10-19 9 views
0

Я написал плагин в динамике CRM. Этот плагин обращается к нескольким методам Web API 2, которые развертываются в облаке Azure (через HTTPS). Подключаемый модуль запускается при изменении контактных данных в CRM. Многие владельцы учетных записей CRM будут обновлять контактные данные.Аутентификация динамики Плагин CRM для доступа к методам Web API 2

Я собираюсь записать код «секретный ключ» (генерируемый вручную Guid) в подключаемом модуле и отправлять этот ключ каждый раз, когда я обращаюсь к методам веб-api. Я проверю это руководство в методах веб-api, чтобы предотвратить несанкционированный доступ.

Я не люблю хранить секретный ключ (guid) в исходном коде.

Вопросы

  1. Каковы мои варианты, если не хотите «жесткий код» секретный ключ?
  2. Каковы недостатки безопасности при таком подходе?

Примечание

В общем, всех моих веб-интерфейсы идентифицируются с помощью Web API пользовательского фильтра аутентификации, но веб-интерфейсы, которые доступны из плагина не являются частью пользовательской аутентификации.

CRM версия 2013

ответ

2

Как и в предыдущих ответах, первым вариантом является сохранение вашей информации в настраиваемом объекте конфигурации, который вы можете извлечь из своего плагина. Эти записи будут защищены системой безопасности CRM, поэтому, если ваш плагин работает в контексте вызывающего пользователя, вам нужно убедиться, что у пользователей есть привилегии читать эту информацию (не очень хорошая идея) или изменить плагин для выполнения в контексте пользователя администратора.

Другой вариант заключается в использовании Secure/Unsecure Configuration: enter image description here Те два (строка) параметры, которые можно настроить в пределах шага, и вы будете иметь возможность читать их из плагина. Я бы сказал, что безопасная конфигурация соответствует вашим требованиям, но дайте ей взглянуть. Вы также можете легко найти, как его реализовать (example).

Третьим и последним вариантом, о котором я могу думать, является создание XML WebResource и чтение его из плагина. Опять же, вам нужно убедиться, что пользовательский контекст под плагином работает, имеет к нему доступ.

1

Я не думаю, что такой подход никогда не будет безопасным.

Возможно собрать сборку плагина из CRM. Затем кто-то может разобрать сборку и найти Guid. Эффективно ваш пароль хранится в виде простого текста.

По крайней мере, вы можете сохранить имя пользователя/пароль/секретный ключ в записи CRM. Затем запись CRM может быть защищена с помощью CRM-безопасности.

Возможно, вам лучше реализовать аутентификацию «обычно».