Поделиться через


Добавление проверки подлинности в приложение Apache Cordova

Сводка

В этом учебнике вы добавляете проверку подлинности в учебный проект ToDoList для Apache Cordova с помощью поддерживаемого поставщика удостоверений. Этот учебник создан на основе учебника Начало работы с мобильными службами , который необходимо изучить в первую очередь.

Регистрация приложения для проверки подлинности и настройка службы приложений

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

  1. Настройте выбранный поставщик удостоверений, следуя соответствующим инструкциям:

  2. Повторите предыдущие шаги для каждого поставщика, поддержку которого вы хотите включить в свое приложение.

Видео, демонстрирующее аналогичные действия

Ограничение разрешений для пользователей, прошедших проверку подлинности

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

  • Серверная часть Node.js (через портал Azure):

    В параметрах мобильных приложений щелкните простые таблицы и выберите таблицу. Щелкните Изменить разрешения, выберите для всех разрешений параметр Authenticated access only (Доступ только с проверкой подлинности) и нажмите кнопку Сохранить.

  • Серверная часть .NET (C#):

    В серверном проекте перейдите к контроллерам>TodoItemController. CS. Примените атрибут [Authorize] к классу TodoItemController следующим образом. Чтобы предоставить доступ только определенным методам, этот атрибут можно также применить именно к ним, а не к классу. Повторная публикация серверного проекта

      [Authorize]
      public class TodoItemController : TableController<TodoItem>
    
  • Серверная служба Node.js (через код Node.js) :

    Чтобы доступ к таблице предоставлялся только после проверки подлинности, добавьте в серверный скрипт Node.js следующую строку:

      table.access = 'authenticated';
    

    Дополнительные сведения см. в разделе Практическое руководство. Обязательная аутентификация для доступа к таблицам. Узнайте, как загрузить проект быстрого запуска кода с веб-узла, в разделе Загрузка серверной части на основе Node.js в виде готового кода для быстрого запуска с помощью Git.

Теперь можно убедиться, что анонимный доступ к серверной части был отключен. В Visual Studio сделайте следующее:

  • Откройте проект, созданный при выполнении заданий руководства Начало работы с мобильными приложениями.
  • Запустите приложение в эмуляторе Google Android.
  • Проверьте, отображается ли сообщение о непредвиденном сбое подключения после запуска приложения.

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

Добавление проверки подлинности в приложение

  1. Откройте проект в Visual Studio, а затем откройте файл www/index.html для редактирования.

  2. Найдите мета-тег Content-Security-Policy в разделе head. Добавьте узел OAuth в список допустимых источников.

    Поставщик Имя поставщика SDK Узел OAuth
    Azure Active Directory aad https://login.microsoftonline.com
    Facebook facebook https://www.facebook.com
    Google Google https://accounts.google.com
    Microsoft microsoftaccount https://login.live.com
    Twitter Twitter https://api.twitter.com

    Пример политики безопасности содержимого (для Azure Active Directory):

     <meta http-equiv="Content-Security-Policy" content="default-src 'self'
         data: gap: https://login.microsoftonline.com https://yourapp.azurewebsites.net; style-src 'self'">
    

    Замените https://login.microsoftonline.com узлом OAuth из приведенной выше таблицы. Дополнительные сведения о метатеге политики безопасности содержимого см. в документации по политике безопасности содержимого.

    Некоторые поставщики аутентификации не требуют изменений в политике безопасности содержимого при использовании на соответствующих мобильных устройствах. Например, изменения в политики безопасности содержимого не требуются, если на устройстве Android используется проверка подлинности Google.

  3. www/js/index.jsОткройте файл для редактирования, перейдите к onDeviceReady() методу и в коде создания клиента добавьте следующий код:

     // Login to the service
     client.login('SDK_Provider_Name')
         .then(function () {
    
             // BEGINNING OF ORIGINAL CODE
    
             // Create a table reference
             todoItemTable = client.getTable('todoitem');
    
             // Refresh the todoItems
             refreshDisplay();
    
             // Wire up the UI Event Handler for the Add Item
             $('#add-item').submit(addItemHandler);
             $('#refresh').on('click', refreshDisplay);
    
             // END OF ORIGINAL CODE
    
         }, handleError);
    

    Этот код заменит существующий код, который создает ссылку на таблицу и обновляет пользовательский интерфейс.

    Метод login() запускает аутентификацию с использованием поставщика. Метод login() — это асинхронная функция, которая возвращает обещание JavaScript. Остальная часть инициализации помещается в ответ обещания и до завершения метода login() не выполняется.

  4. В коде, который вы только что добавили, замените SDK_Provider_Name именем своего поставщика входа. Например, для Azure Active Directory используйте client.login('aad').

  5. Выполните проект. Когда инициализация проекта будет завершена, в приложении откроется страница входа OAth для выбранного поставщика аутентификации.

Next Steps

  • Узнайте больше об аутентификации с использованием службы приложений Azure.
  • Продолжите работу с учебником, добавив в приложение Apache Cordova push-уведомления .

Подробнее об использовании пакетов SDK.