Dodawanie uwierzytelniania do Apache Cordova aplikacji
Podsumowanie
W tym samouczku dodasz uwierzytelnianie do projektu Szybkiego startu listy do Apache Cordova przy użyciu obsługiwanego dostawcy tożsamości. Ten samouczek jest oparty na Wprowadzenie z Mobile Apps samouczka, który należy najpierw wykonać.
Zarejestruj aplikację do uwierzytelniania i skonfiguruj App Service
Najpierw należy zarejestrować aplikację w witrynie dostawcy tożsamości, a następnie ustawić poświadczenia wygenerowane przez dostawcę w Mobile Apps danych.
Skonfiguruj preferowanego dostawcę tożsamości, korzystając z instrukcji specyficznych dla dostawcy:
Powtórz poprzednie kroki dla każdego dostawcy, którego chcesz obsługiwać w aplikacji.
Obejrzyj wideo przedstawiające podobne kroki
Ograniczanie uprawnień do uwierzytelnionych użytkowników
Domyślnie interfejsy API w Mobile Apps mogą być wywoływane anonimowo. Następnie należy ograniczyć dostęp tylko do uwierzytelnionych klientów.
Node.js (za pośrednictwem Azure Portal):
W ustawieniach Mobile Apps kliknij pozycję Łatwe tabele i wybierz tabelę. Kliknij pozycję Zmień uprawnienia, wybierz opcję Dostęp uwierzytelniony tylko dla wszystkich uprawnień, a następnie kliknij przycisk Zapisz.
.NET back end (C#):
W projekcie serwera przejdź do plikówControllersTodoItemController.cs>. Dodaj atrybut
[Authorize]
do klasy TodoItemController w następujący sposób. Aby ograniczyć dostęp tylko do określonych metod, można również zastosować ten atrybut tylko do tych metod, a nie do klasy . Ponownie opublikować projekt serwera.[Authorize] public class TodoItemController : TableController<TodoItem>
Node.js zaplecza (za pośrednictwem Node.js kodu):
Aby wymagać uwierzytelniania w celu uzyskania dostępu do tabeli, dodaj następujący wiersz do Node.js skryptu serwera:
table.access = 'authenticated';
Aby uzyskać więcej informacji, zobacz Uwierzytelnianie wymagane w celu uzyskania dostępu do tabel. Aby dowiedzieć się, jak pobrać projekt kodu szybkiego startu ze swojej witryny, zobacz How to: Download the Node.js backend quickstart code project using Git (Jak pobrać projekt kodu szybkiego startu zaplecza przy użyciu usługi Git).
Teraz możesz sprawdzić, czy dostęp anonimowy do zaplecza został wyłączony. W Visual Studio:
- Otwórz projekt, który został utworzony po ukończeniu samouczka, Wprowadzenie pomocą Mobile Apps.
- Uruchom aplikację w aplikacji Google Android Emulator.
- Sprawdź, czy po uruchamianiu aplikacji jest wyświetlany nieoczekiwany błąd połączenia.
Następnie zaktualizuj aplikację, aby uwierzytelniać użytkowników przed zażądaniem zasobów z zaplecza aplikacji mobilnej.
Dodawanie uwierzytelniania do aplikacji
Otwórz projekt w Visual Studio, a następnie otwórz plik
www/index.html
do edycji.Content-Security-Policy
Znajdź metatag w sekcji head. Dodaj hosta OAuth do listy dozwolonych źródeł.Dostawca Nazwa dostawcy zestawu SDK OAuth Host 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 Przykładowe zasady Content-Security-Policy (zaimplementowane dla Azure Active Directory) są następujące:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://login.microsoftonline.com https://yourapp.azurewebsites.net; style-src 'self'">
Zastąp
https://login.microsoftonline.com
zamień na hosta OAuth z powyższej tabeli. Aby uzyskać więcej informacji na temat metatagu content-security-policy, zobacz dokumentację Content-Security-Policy.Niektórzy dostawcy uwierzytelniania nie wymagają zmian zasad zabezpieczeń zawartości, jeśli są używane na odpowiednich urządzeniach przenośnych. Na przykład podczas korzystania z uwierzytelniania Google na urządzeniu z systemem Android nie są wymagane żadne zmiany zasad zabezpieczeń zawartości.
Otwórz plik
www/js/index.js
do edycji, znajdź metodęonDeviceReady()
i w obszarze kodu tworzenia klienta dodaj następujący kod:// 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);
Ten kod zastępuje istniejący kod, który tworzy odwołanie do tabeli i odświeża interfejs użytkownika.
Metoda login() rozpoczyna uwierzytelnianie od dostawcy. Metoda login() jest funkcją asynchroniczną, która zwraca obietnicę języka JavaScript. Pozostała część inicjalizacji jest umieszczana wewnątrz odpowiedzi obietnicy, tak aby nie była wykonywana do momentu ukończenia metody login().
W właśnie dodanym kodzie zastąp
SDK_Provider_Name
wartość nazwą dostawcy logowania. Na przykład w Azure Active Directory użyj .client.login('aad')
Uruchom projekt. Po zakończeniu inicjowania projektu aplikacja wyświetla stronę logowania OAuth dla wybranego dostawcy uwierzytelniania.
Następne kroki
- Dowiedz się więcej o uwierzytelnianiu za pomocą Azure App Service.
- Kontynuuj pracę z samouczkiem, dodając powiadomienia wypychane do Apache Cordova aplikacji.
Dowiedz się, jak korzystać z zestawów SDK.