Samouczek: konfigurowanie usługi Azure Active Directory B2C za pomocą platformy Arkose Labs

Z tego samouczka dowiesz się, jak zintegrować uwierzytelnianie usługi Azure Active Directory B2C (Azure AD B2C) z platformą Arkose Labs Arkose Protect Platform. Produkty Arkose Labs pomagają organizacjom w walce z atakami botów, przejęciem konta i fałszywymi otwarciami kont.

Wymagania wstępne

Aby rozpocząć pracę, potrzebne są następujące elementy:

Opis scenariusza

Integracja produktów Arkose Labs obejmuje następujące składniki:

  • Arkose Protect Platform — usługa chroniąca przed botami i innymi zautomatyzowanymi nadużyciami
  • Azure AD przepływ użytkownika rejestracji B2C — środowisko rejestracji korzystające z platformy Arkose Labs
    • Niestandardowe łączniki HTML, JavaScript i API integrują się z platformą Arkose
  • Azure Functions — hostowany punkt końcowy interfejsu API współdziałający z funkcją łączników interfejsu API

Na poniższym diagramie pokazano, jak platforma Arkose Labs integruje się z usługą Azure AD B2C.

Diagram platformy Arkose Labs i architektury integracji B2C Azure AD.

  1. Użytkownik zarejestruje się i utworzy konto. Użytkownik wybierze pozycję Prześlij, a zostanie wyświetlone wyzwanie wymuszania usługi Arkose Labs.
  2. Użytkownik ukończy wyzwanie. Azure AD B2C wysyła stan do usługi Arkose Labs w celu wygenerowania tokenu.
  3. Usługa Arkose Labs wysyła token do Azure AD B2C.
  4. Azure AD B2C wywołuje pośredni internetowy interfejs API w celu przekazania formularza rejestracji.
  5. Formularz rejestracji jest kierowany do usługi Arkose Labs w celu weryfikacji tokenu.
  6. Usługa Arkose Labs wysyła wyniki weryfikacji do pośredniego internetowego interfejsu API.
  7. Interfejs API wysyła wynik powodzenia lub niepowodzenia do Azure AD B2C.
  8. Jeśli wyzwanie zakończy się pomyślnie, formularz rejestracji zostanie Azure AD B2C, który kończy uwierzytelnianie.

Żądanie pokazu z usługi Arkose Labs

  1. Przejdź do arkoselabs.com, aby zarezerwować pokaz.
  2. Utwórz konto.
  3. Przejdź do strony logowania w portalu Arkose .
  4. Na pulpicie nawigacyjnym przejdź do ustawień witryny.
  5. Znajdź klucz publiczny i klucz prywatny. Te informacje będą używane później.

Uwaga

Wartości klucza publicznego i prywatnego to ARKOSE_PUBLIC_KEY i ARKOSE_PRIVATE_KEY. Zobacz Azure-Samples/active-directory-b2c-node-sign-up-user-flow-arkose.

Integracja z usługą Azure AD B2C

Tworzenie atrybutu niestandardowego ArkoseSessionToken

Aby utworzyć atrybut niestandardowy:

  1. Zaloguj się do Azure Portal, a następnie przejdź do Azure AD B2C.
  2. Wybierz pozycję Atrybuty użytkownika.
  3. Wybierz pozycję Dodaj.
  4. Wprowadź ciąg ArkoseSessionToken jako nazwę atrybutu.
  5. Wybierz przycisk Utwórz.

Dowiedz się więcej: Definiowanie atrybutów niestandardowych w usłudze Azure Active Directory B2C

Tworzenie przepływu użytkownika

Przepływ użytkownika służy do tworzenia konta i logowania lub tworzenia konta. Przepływ użytkownika usługi Arkose Labs jest wyświetlany podczas rejestracji.

  1. Tworzenie przepływów użytkownika i zasad niestandardowych w usłudze Azure Active Directory B2C. Jeśli korzystasz z przepływu użytkownika, użyj opcji Zalecane.

  2. W ustawieniach przepływu użytkownika przejdź do pozycji Atrybuty użytkownika.

  3. Wybierz oświadczenie ArkoseSessionToken .

    Zrzut ekranu przedstawiający token sesji arkose w obszarze Atrybuty użytkownika.

Konfigurowanie niestandardowego układu html, JavaScript i strony

  1. Przejdź do pozycji Azure-Samples/active-directory-b2c-node-sign-up-user-flow-arkose.
  2. Znajdź szablon HTML z tagami języka JavaScript <script> . Te czynności wykonują trzy czynności:
  • Załaduj skrypt usługi Arkose Labs, który renderuje widżet i wykonuje weryfikację aplikacji Arkose Labs po stronie klienta.

  • Ukryj element wejściowy i etykietę extension_ArkoseSessionToken odpowiadającą atrybutowi niestandardowemu ArkoseSessionToken .

  • Gdy użytkownik ukończy wyzwanie usługi Arkose Labs, odpowiedź użytkownika zostanie zweryfikowana i wygenerowany token. Wywołanie zwrotne arkoseCallback w niestandardowym języku JavaScript ustawia wartość extension_ArkoseSessionToken na wygenerowaną wartość tokenu. Ta wartość jest przesyłana do punktu końcowego interfejsu API.

    Uwaga

    Przejdź do developer.arkoselabs.com instrukcji po stronie klienta. Wykonaj kroki, aby użyć niestandardowego kodu HTML i języka JavaScript dla przepływu użytkownika.

  1. W obszarze Azure-Samples zmodyfikuj plik selfAsserted.html , tak aby <ARKOSE_PUBLIC_KEY> był zgodny z wartością wygenerowaną na potrzeby weryfikacji po stronie klienta.

  2. Hostowanie strony HTML w internetowym punkcie końcowym z włączonym udostępnianiem zasobów między źródłami (CORS).

  3. Create a storage account (Tworzenie konta magazynu).

  4. Obsługa mechanizmu CORS dla usługi Azure Storage.

    Uwaga

    Jeśli masz niestandardowy kod HTML, skopiuj i wklej <script> elementy na stronie HTML.

  5. W Azure Portal przejdź do Azure AD B2C.

  6. Przejdź do pozycji Przepływy użytkownika.

  7. Wybierz przepływ użytkownika.

  8. Wybierz pozycję Układy stron.

  9. Wybierz pozycję Układ strony rejestracji konta lokalnego.

  10. W obszarze Użyj niestandardowej zawartości strony wybierz pozycję TAK.

  11. W obszarze Użyj niestandardowej zawartości strony wklej niestandardowy identyfikator URI HTML.

  12. (Opcjonalnie) Jeśli używasz dostawców tożsamości społecznościowych, powtórz kroki dla strony rejestracji konta społecznościowego.

    Zrzut ekranu przedstawiający opcje nazwy układu i opcje strony rejestracji konta społecznościowego w obszarze Układy strony.

  13. W przepływie użytkownika przejdź do pozycji Właściwości.

  14. Wybierz pozycję Włącz język JavaScript.

Dowiedz się więcej: Włączanie języka JavaScript i wersji układu strony w usłudze Azure Active Directory B2C

Tworzenie i wdrażanie interfejsu API

W tej sekcji założono, że do wdrażania Azure Functions używasz Visual Studio Code. Do wdrożenia można użyć Azure Portal, terminalu lub wiersza polecenia.

Przejdź do witryny Visual Studio Marketplace, aby zainstalować Azure Functions dla Visual Studio Code.

Uruchamianie interfejsu API lokalnie

  1. W programie Visual Studio Code w obszarze nawigacji po lewej stronie przejdź do rozszerzenia platformy Azure.
  2. Wybierz folder Projekt lokalny dla lokalnej funkcji platformy Azure.
  3. Naciśnij klawisz F5 lub wybierz pozycję Debuguj>Rozpocznij debugowanie. To polecenie używa utworzonej konfiguracji debugowania platformy Azure.
  4. Funkcja platformy Azure generuje pliki na potrzeby programowania lokalnego, instaluje zależności i narzędzia podstawowe funkcji, jeśli to konieczne.
  5. W panelu Visual Studio Code Terminal zostanie wyświetlone dane wyjściowe narzędzia Podstawowe funkcje.
  6. Po uruchomieniu hosta wybierz pozycję Alt+kliknij lokalny adres URL w danych wyjściowych.
  7. Przeglądarka zostanie otwarta i uruchomi funkcję .
  8. W eksploratorze Azure Functions kliknij prawym przyciskiem myszy funkcję, aby wyświetlić adres URL funkcji hostowanej lokalnie.

Dodawanie zmiennych środowiskowych

Przykład w tej sekcji chroni internetowy punkt końcowy interfejsu API podczas korzystania z uwierzytelniania podstawowego PROTOKOŁU HTTP. Dowiedz się więcej na stronie internetowej inżynieryjnej grupy zadaniowej RFC 7617: Uwierzytelnianie podstawowe.

Nazwa użytkownika i hasło są przechowywane jako zmienne środowiskowe, a nie część repozytorium. Dowiedz się więcej na temat kodu i testowania Azure Functions lokalnie pliku ustawień lokalnych.

  1. W folderze głównym utwórz plik local.settings.json.
  2. Skopiuj i wklej następujący kod do pliku:
{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "BASIC_AUTH_USERNAME": "<USERNAME>",
    "BASIC_AUTH_PASSWORD": "<PASSWORD>",
    "ARKOSE_PRIVATE_KEY": "<ARKOSE_PRIVATE_KEY>",
    "B2C_EXTENSIONS_APP_ID": "<B2C_EXTENSIONS_APP_ID>"
  }
}
  1. BASIC_AUTH_USERNAME iBASIC_AUTH_PASSWORD to poświadczenia służące do uwierzytelniania wywołania interfejsu API do funkcji platformy Azure. Wybierz wartości.
  • <> ARKOSE_PRIVATE_KEY to wpis tajny po stronie serwera wygenerowany na platformie Arkose Labs.
    • Wywołuje on interfejs API weryfikacji po stronie serwera usługi Arkose Labs w celu zweryfikowania wartości ArkoseSessionToken wygenerowanej przez fronton.
    • Zobacz Instrukcje po stronie serwera.
  • <> B2C_EXTENSIONS_APP_ID jest identyfikatorem aplikacji używanym przez Azure AD B2C do przechowywania atrybutów niestandardowych w katalogu.
  1. Przejdź do Rejestracje aplikacji.

  2. Wyszukaj ciąg b2c-extensions-app.

  3. W okienku Przegląd skopiuj identyfikator aplikacji (klienta).

  4. - Usuń znaki.

    Zrzut ekranu przedstawiający nazwę wyświetlaną, identyfikator aplikacji i datę utworzenia w obszarze Rejestracje aplikacji.

Wdrażanie aplikacji w Internecie

  1. Wdróż funkcję platformy Azure w chmurze. Dowiedz się więcej z dokumentacją Azure Functions.

  2. Skopiuj internetowy adres URL punktu końcowego funkcji platformy Azure.

  3. Po wdrożeniu wybierz opcję Przekaż ustawienia .

  4. Zmienne środowiskowe są przekazywane do ustawień aplikacji usługi App Service. Dowiedz się więcej na temat ustawień aplikacji na platformie Azure.

    Uwaga

    Aplikację funkcji można zarządzać. Zobacz też Wdrażanie plików projektu, aby dowiedzieć się więcej na temat Visual Studio Code programowania dla Azure Functions.

Konfigurowanie i włączanie łącznika interfejsu API

  1. Tworzenie łącznika interfejsu API. Zobacz Dodawanie łącznika interfejsu API do przepływu użytkownika rejestracji.

  2. Włącz go dla przepływu użytkownika.

    Zrzut ekranu przedstawiający nazwę wyświetlaną, adres URL punktu końcowego, nazwę użytkownika i hasło w obszarze Konfigurowanie i łącznik interfejsu API.

  • Adres URL punktu końcowego — adres URL funkcji skopiowany podczas wdrażania funkcji platformy Azure
  • Nazwa użytkownika — zdefiniowana nazwa użytkownika
  • Hasło — zdefiniowane hasło
  1. W ustawieniach łącznika interfejsu API dla przepływu użytkownika wybierz łącznik interfejsu API do wywołania na stronie Przed utworzeniem użytkownika.

  2. Interfejs API weryfikuje ArkoseSessionToken wartość.

    Zrzut ekranu przedstawiający wpis przed utworzeniem użytkownika w obszarze Łączniki interfejsu API.

Testowanie przepływu użytkownika

  1. Otwórz dzierżawę usługi Azure AD B2C.
  2. W obszarze Zasady wybierz pozycję Przepływy użytkownika.
  3. Wybierz utworzony przepływ użytkownika.
  4. Wybierz pozycję Uruchom przepływ użytkownika.
  5. W polu Aplikacja wybierz zarejestrowaną aplikację (na przykład JWT).
  6. W polu Adres URL odpowiedzi wybierz adres URL przekierowania.
  7. Wybierz pozycję Uruchom przepływ użytkownika.
  8. Wykonaj przepływ rejestracji.
  9. Utwórz konto.
  10. Wyloguj się.
  11. Wykonaj przepływ logowania.
  12. Wybierz opcję Kontynuuj.
  13. Pojawia się zagadka Arkose Labs.

Zasoby