Аутентификация и авторизация LightSwitch

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

Например, в приложении заработной платы сотрудники могут просматривать, но не изменять сведения о своей заработной плате.Однако начальнику отдела заработной платы могут быть предоставлены разрешения на просмотр и изменение сведений о сотруднике.Сотрудникам будет назначена роль Employee (сотрудник), а руководителю будет назначена роль Supervisor (руководитель).

Администрирование прав можно упростить, добавляя пользователей в группы безопасности в Active Directory и присваивая права этим группам.Так как членство и права наследуются, то можно запрещать или предоставлять права не только группе, но также и ее подгруппам, выполнив лишь одно изменение.Например, можно добавить Bob'а к группе Продажи в Active Directory.Если группа Продажи является подгруппой Маркетинг, то любые права, предоставленные группе Маркетинг, также будут предоставлены и Bob'у.

Проверка подлинности

Первым шагом обеспечения безопасности приложения является включение проверки подлинности.Можно использовать проверку подлинности Windows или проверку подлинности с помощью форм.Управление проверкой подлинности с помощью форм осуществляется самим приложением; при этом для доступа к приложению пользователь должен предоставить имя пользователя и пароль.При использовании проверки подлинности Windows для проверки подлинности пользователя приложения используются те же учетные данные, что и для входа на компьютер, где оно выполняется; дополнительное имя пользователя или пароль не требуется.В обоих случаях администратор приложения ведет список авторизованных пользователей; при проверке подлинности с помощью форм администратор также ведет зашифрованные пароли.

Включение проверки подлинности

  1. В Обозреватель решений откройте контекстное меню узла Свойства, а затем выберите Открыть.

  2. В Конструктор приложений перейдите на вкладку Управление доступом.

  3. В списке Выберите тип проверки подлинности: выберите Использовать проверку подлинности Windows или Использовать проверку подлинности с помощью форм.

    Если установлен флажок Использовать проверку подлинности Windows, выберите переключатель или переключатель Разрешить только пользователям, перечисленным на экране " Пользователи" приложения или Разрешить всем пользователям, прошедшим проверку подлинности Windows.

    Приложение не будет требовать, чтобы пользователи предоставляли учетные данные для доступа к нему.

Отключение проверки подлинности

  1. В Обозреватель решений откройте контекстное меню узла Свойства, а затем выберите Открыть.

  2. В Конструктор приложений перейдите на вкладку Управление доступом.

  3. В списке Выберите тип проверки подлинности: выберите Не включать проверку подлинности.

    Приложение не будет требовать, чтобы пользователи предоставляли учетные данные для доступа к нему, и любой пользователь сможет получить доступ к любой части приложения.

Разрешения

Следующим шагом обеспечения безопасности приложения является создание разрешений.Можно определить разрешения для экранов, команд, сущностей данных и запросов.Во-первых, определите объект разрешений в Конструкторе приложений.Затем можно ссылаться на объект в коде в одном из методов Can, например CanRun<Имя_экрана> или <Имя_запроса>_CanExecute.Код в этих методах обычно проверяет, имеется ли у текущего пользователя или роли разрешение, а затем, если разрешение проверено, отображает форму или выполняет запрос.

При тестировании запустите приложение от имени пользователя, у которого есть разрешение, и от имени пользователя, у которого его нет.Установив разрешения отладки, можно олицетворять пользователя при тестировании или отладке приложения.

Создание разрешения

  1. В Обозреватель решений откройте контекстное меню узла Свойства, а затем выберите Открыть.

  2. В Конструктор приложений перейдите на вкладку Управление доступом.

  3. В сетке Определение разрешений или выделите на использование для отладки в столбце Имя выберите <Add New Permission>, а затем введите программное имя для разрешения.

    Имя должно начинаться с буквы и содержать только буквы, цифры и знаки подчеркивания.

  4. В столбце Отображаемое имя введите имя разрешения, как требуется. его в экран, что администратор приложения будет использоваться для присвоения ролей.

  5. В столбце Описание введите описание разрешения.

Создание кода для задания разрешений для экрана

  1. В Обозреватель решений откройте контекстное меню для узла экрана, а затем выберите Открыть.

    Конструктор экрана Для этого экрана открывается.

  2. В списке Запись кода выберите CanRunScreenName, где ScreenName - имя выбранного экрана.

  3. В поле Редактор кода введите следующий код в метод CanRunScreenName:

    If Current.User.HasPermission(Can_View_Products) Then
        result =  True
    Else
        result = False
    End If
    
    if (Current.User.HasPermission(Permissions.Can_View_Products)) 
    {
        result = true;
    } 
    else 
    {
        result = false;
    }
    

    Этот код будет оцениваться при каждом запуске приложения.

    ПримечаниеПримечание

    Обратите внимание, что код примера проверяет разрешение с именем Can_View_Products.Замените имя разрешения, определенного в приложении, везде, где оно встречается.

Создание кода для задания разрешений для команды

  1. В Обозреватель решений откройте контекстное меню для узла экрана, а затем выберите Открыть.

    Конструктор экрана Для этого экрана открывается.

  2. В области Дерево содержимого экрана разверните узел команды, а затем выберите команду, для которой необходимо написать код.

  3. Открыть контекстное меню для команды, а затем выберите ButtonName**_CanExecute**, где ButtonName - имя команды, выполнялась.

  4. В поле Редактор кода введите следующий код, который должен метода ButtonName**_CanExecute**.

    ПримечаниеПримечание

    Пример кода см. в подразделе "Создание кода для задания разрешений для экрана" ранее в этом разделе.

Создание кода для задания разрешений для сущности

  1. В Обозреватель решений откройте контекстное меню для узла сущности, а затем выберите Открыть.

    Будет открыт Конструктор сущностей для этой сущности.

  2. В списке Запись кода выберите метод EntityName**_Can**Операция, где EntityName - имя сущности, а Операция - имя операции, для которой необходимо написать код.

    ПримечаниеПримечание

    Доступные методы различаются контекстом.Примеры: CanDelete и CanUpdate.

  3. В поле Редактор кода введите код, который требуется в методе _CanEntityNameОперация.

    ПримечаниеПримечание

    Пример кода см. в подразделе "Создание кода для задания разрешений для экрана" ранее в этом разделе.

Создание кода для задания разрешений для запроса

  1. В Обозреватель решений откройте контекстное меню для узла запроса, а затем выберите Открыть.

    Конструктор запросов Для этого запроса открытия.

  2. В списке Запись кода выберите один из методов _CanExecuteQueryName, где QueryName - имя запроса.

  3. В поле Редактор кода введите следующий код, который должен метода QueryName**_CanExecute**.

    ПримечаниеПримечание

    Пример кода см. в подразделе "Создание кода для задания разрешений для экрана" ранее в этом разделе.

Включение разрешений для отладки

  1. В Обозреватель решений откройте контекстное меню узла Свойства, а затем выберите Открыть.

  2. В Конструктор приложений перейдите на вкладку Управление доступом.

  3. В сетке Определение разрешений или выделите на использование для отладки выберите разрешения, необходимо включить в целях отладки, а затем выделите флажок Предоставлено для отладки.

Публикация

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

Предоставление данных проверки подлинности при публикации приложения

  1. В Мастер публикации приложений LightSwitch выберите страницу Параметры безопасности, а затем выберите переключатель Да, создать администратора приложения.

    ПримечаниеПримечание

    Необходимо выполнить остальные действия, только если вы публикуете непосредственно на сервер.При создании пакета, будет предложено добавить административная учетная запись при развертывании пакета.

  2. В текстовом поле Имя пользователя введите имя пользователя.

    Если используется проверка подлинности Windows, необходимо задать допустимое имя входа Windows, имеет форму Домен\Имя пользователя.

    СоветСовет

    Группу безопасности в Active Directory можно также назначить группой администрирования по умолчанию.

  3. В текстовом поле Полное имя введите полное имя пользователя или группы, будут по умолчанию администратором.

  4. В текстовом поле Пароль введите пароль.

    ПримечаниеПримечание

    Если используется проверка подлинности Windows, то поля Полное имя, Пароль и Подтверждение пароля не отображаются.

  5. В текстовом поле Подтверждение пароля, введите пароль еще раз.

    Не забудьте имя пользователя и пароль, поскольку необходимо указать их при первом запуске приложения.

  6. Завершите публикацию приложения.

Роли и пользователи

Если администратор приложения, необходимо выполнить публикованное приложение в первый раз.После этого используется на экране Роли и Пользователи для определения ролей, присвойте разрешения к ролям, и присвоить роли пользователям или группам в составе пользователей.Доступ к этим экранах в выполняемом приложении во время разработки или во время развертывания.Во время разработки настройте разрешение отладки для доступа к экранам.В развернутом приложении любой пользователь, которому было предоставлено разрешение на администрирование безопасности, может получить доступ к экранам.

ПримечаниеПримечание

Чтобы ввести, необходимо использовать имя пользователя и пароль, указанный при публиковали приложение.

Определение роли и назначение разрешений

  1. Публикованном в приложении, которое работает разрешениями администратора, в строке меню выберите Роли.

  2. В области Роли, нажмите кнопку +… (добавить).

  3. В диалоговом окне Добавляет новую роль введите имя роли, а затем нажмите кнопку ОК.

  4. В области Разрешения, нажмите кнопку +… (добавить).

    Новая строка появляется в сетке Разрешения.

  5. В первом столбце сетки выберите разрешения в списке.

    В списке содержатся все доступные разрешения для приложения.Можно добавить столько разрешений, сколько требуется, однако необходимо выбрать кнопки +… (добавить) для каждый из, чтобы добавить его.

  6. На панели инструментов приложения нажмите кнопку Сохранить для сохранения изменений.

Добавление пользователя или группы пользователей

  1. В строке меню выберите Пользователи, чтобы отобразить экрана Пользователи.

  2. В области Пользователи и группы, нажмите кнопку +… (добавить).

  3. В текстовом поле Имя введите имя пользователя.

    Если используется проверка подлинности Windows, необходимо указать допустимое имя пользователя в форме псевдонима (Terry), домена и псевдонима (пример \ Terry), псевдонима и домена (terry@example.com) или полного доменного имени и псевдонима (northamerica.corp.example.com \ Terry).Вся строка должна содержать не более 256 символов.Можно также указать имя группы безопасности в Active Directory.Если используется проверка подлинности с помощью форм, имя пользователя должно быть уникальным и содержать не более 256 символов.

  4. В текстовом поле Полное имя введите полное имя пользователя.

    Сведения в поле Полное имя используются только для отображения.

    ПримечаниеПримечание

    Для проверки подлинности Windows в поле Полное имя автоматически будет заполнено на основе имени пользователя и нельзя изменить.

  5. В текстовом поле Пароль введите пароль.

    ПримечаниеПримечание

    Поля Пароль и Подтверждение пароля не отображаются, если используется проверка подлинности Windows.

  6. В текстовом поле Подтверждение пароля введите тот же пароль.

  7. В области Роли, нажмите кнопку Добавить, а затем выберите роль в списке Роли.

    Можно присвоить пользователя к нескольким ролям, выполнить этот шаг для каждой роли.

  8. На панели инструментов приложения нажмите кнопку Сохранить для сохранения изменений.

Удаление пользователя или группы пользователей

  1. В строке меню выберите Пользователи, чтобы отобразить экрана Пользователи.

  2. В области Пользователи и группы выберите учетную запись, которую необходимо удалить, а затем нажмите кнопку X (удаление).

    ПримечаниеПримечание

    Если пользователь вошел в систему с учетной записью, которая удалена, пользователь больше не может сохранить или нет доступа к данным на сервере.Если пользователь пытается получить данные из сервера, доступ отказ сообщение.

    ПримечаниеПримечание

    При удалении учетной записи группы любой пользователь, роль которого была унаследована от этой группы будет, утратит все права, предоставляемые этой ролью.

  3. На панели инструментов приложения нажмите кнопку Сохранить для сохранения изменений.

См. также

Основные понятия

Вопросы безопасности LightSwitch

Другие ресурсы

Проекты: контейнер для приложения

Группы безопасности Active Directory