Samouczek: weryfikowanie punktu końcowego SCIM

W tym samouczku opisano sposób używania modułu sprawdzania poprawności SCIM firmy Microsoft w celu sprawdzenia, czy serwer aprowizacji jest zgodny z klientem SCIM platformy Azure. Samouczek jest przeznaczony dla deweloperów, którzy chcą utworzyć serwer zgodny ze standardem SCIM w celu zarządzania tożsamościami za pomocą usługi aprowizacji Firmy Microsoft.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Wybieranie metody testowania
  • Konfigurowanie metody testowania
  • Weryfikowanie punktu końcowego SCIM

Wymagania wstępne

Wybieranie metody testowania

Pierwszym krokiem jest wybranie metody testowania w celu zweryfikowania punktu końcowego SCIM.

  1. Otwórz przeglądarkę internetową i przejdź do modułu sprawdzania poprawności SCIM: https://scimvalidator.microsoft.com/.

  2. Wybierz jedną z trzech opcji testu. Możesz użyć atrybutów domyślnych, automatycznie odnaleźć schemat lub przekazać schemat.

    Zrzut ekranu przedstawiający stronę główną modułu sprawdzania poprawności SCIM.

Użyj atrybutów domyślnych — system udostępnia atrybuty domyślne i modyfikuje je zgodnie z potrzebami.

Odnajdź schemat — jeśli punkt końcowy obsługuje /Schemas, ta opcja umożliwia narzędziu odnajdywanie obsługiwanych atrybutów. Zalecamy tę opcję, ponieważ zmniejsza obciążenie związane z aktualizowaniem aplikacji podczas jej kompilowania.

Przekaż schemat Firmy Microsoft Entra — przekaż schemat pobrany z przykładowej aplikacji w witrynie Microsoft Entra ID.

Konfigurowanie metody testowania

Po wybraniu metody testowania następnym krokiem jest jej skonfigurowanie.

Zrzut ekranu przedstawiający stronę atrybutów modułu sprawdzania poprawności SCIM.

  1. Jeśli używasz opcji atrybutów domyślnych, wypełnij wszystkie wskazane pola.
  2. Jeśli używasz opcji odnajdywania schematu, wprowadź adres URL i token punktu końcowego SCIM.
  3. Jeśli przekazujesz schemat, wybierz plik .json do przekazania. Opcja akceptuje plik .json wyeksportowany z przykładowej aplikacji w centrum administracyjnym firmy Microsoft Entra. Aby dowiedzieć się, jak wyeksportować schemat, zobacz Instrukcje: eksportowanie konfiguracji aprowizacji i wycofywanie do znanego dobrego stanu.

Uwaga

Aby przetestować atrybuty grupy, wybierz pozycję Włącz testy grupy.

  1. Edytuj atrybuty listy zgodnie z potrzebami zarówno dla typów użytkowników, jak i grup przy użyciu opcji "Dodaj atrybut" na końcu listy atrybutów i znaku minus (-) po prawej stronie.
  2. Wybierz właściwość dołączania zarówno z listy atrybutów użytkownika, jak i grupy.

Uwaga

Właściwość dołączania, znana również jako pasujący atrybut, jest atrybutem, którego zasoby użytkownika i grupy mogą być jednoznacznie odpytywane w źródle i dopasowane w systemie docelowym.

Weryfikowanie punktu końcowego SCIM

Na koniec należy przetestować i zweryfikować punkt końcowy.

  1. Wybierz pozycję Test Schema (Schemat testu), aby rozpocząć test.

  2. Przejrzyj wyniki z podsumowaniem testów z powodzeniem i niepowodzeniem.

  3. Wybierz kartę Pokaż szczegóły i przejrzyj i rozwiąż problemy.

  4. Kontynuuj testowanie schematu, dopóki wszystkie testy nie przejdą.

    Zrzut ekranu przedstawiający stronę wyników modułu sprawdzania poprawności SCIM.

Walidacje notatek wykonywane przez moduł sprawdzania poprawności SCIM

Tworzenie nowego użytkownika

  • POST /Users — tworzy nowego użytkownika z pełnym ładunkiem JSON.
    • Punkt końcowy zwraca błąd HTTP 201
    • Odpowiedź POST zawiera utworzony identyfikator użytkownika
  • GET /Users?filter={joiningProperty} eq "value" — weryfikuje tworzenie, filtrując właściwość dołączania.
    • Funkcja GET zwraca utworzonego użytkownika
    • Zwrócone wartości z żądania GET są zgodne z przekazanymi wartościami żądania POST (różni się w zależności od punktu końcowego)
  • DELETE /Users — czyści użytkownika testowego. -Wywoływane tylko wtedy, gdy usuwanie twarde jest obsługiwane

Tworzenie zduplikowanego użytkownika

  • POST /Users — próbuje utworzyć użytkownika przy użyciu identycznego ładunku (z tym samym atrybutem unikatowym/dołączania) do istniejącego użytkownika.
    • Zwracanie protokołu HTTP 201 podczas pierwszego żądania utworzenia
    • Zwracanie protokołu HTTP 409 w drugim żądaniu tworzenia

Dodawanie atrybutów

  • POST /Users — tworzy zasób użytkownika
    • Powodzenie http 2xx
  • PATCH /Users/{id} — używa dokumentu poprawki JSON (z operacją dodawania), aby wstawić dodatkowe atrybuty, które nie są wymagane.
  • GET /Users?filter={joiningProperty} eq "value" — pobiera użytkownika w celu zweryfikowania dodanych atrybutów.
    • Użytkownik jest zwracany
    • Wstawione atrybuty są teraz obecne dla użytkownika

Zamień atrybuty użytkownika

  • POST /Users — tworzy zasób użytkownika
    • Powodzenie http 2xx
  • PATCH /Users/{id} — wysyła dokument poprawki JSON (przy użyciu operacji zastępowania) w celu zaktualizowania co najmniej jednego atrybutu.
  • GET /Users?filter={joiningProperty} eq "value" – sprawdza, czy zaktualizowane atrybuty są prawidłowo zastosowane.
    • Użytkownik jest zwracany
    • Zaktualizowane atrybuty są obecne w użytkowniku

Aktualizuj atrybut łączeniowy

  • POST /Users — tworzy zasób użytkownika
    • Powodzenie http 2xx
  • PATCH /Users/{id} — aktualizuje właściwość dołączania (np. userName) za pośrednictwem dokumentu poprawki JSON.
  • GET /Users?filter={joiningProperty} eq "newValue" — potwierdza, że właściwość dołączania została zaktualizowana.
    • Atrybut dołączenia jest aktualizowany dla użytkownika

Aktualizowanie aktywnego atrybutu na false

  • POST /Users/ — tworzy zasób na podstawie schematu
    • Powodzenie http 2xx
    • Na żądanie GET powinien zostać zwrócony użytkownik o wyłączonym koncie.
  • PATCH /Users/{id} — wystawia dokument poprawki JSON, który ustawia atrybut "aktywny" na false.
    • Powodzenie http 2xx
  • GET /Users?filter={joiningProperty} eq "value" — pobiera użytkownika, aby potwierdzić, że aktywny atrybut jest teraz false.
    • Zwrócony rekord użytkownika powinien mieć wartość ACTIVE=FALSE"

Utwórz nową grupę

  • POST /Groups — tworzy nową grupę z pełnym ładunkiem JSON.
    • Punkt końcowy zwraca błąd HTTP 201
    • Odpowiedź POST zawiera utworzony identyfikator grupy
  • GET /Group?filter={joiningProperty} eq "value" — weryfikuje tworzenie, filtrując parametr łączenia.
    • Funkcja GET zwraca utworzoną grupę
    • Zwrócone wartości z żądania GET są zgodne z przekazanymi wartościami żądania POST (różni się w zależności od punktu końcowego)
  • DELETE /Groups — czyści użytkownika testowego.
    • Wywoływane tylko wtedy, gdy usuwanie twarde jest obsługiwane

Utwórz zduplikowaną grupę

  • POST /Groups — próbuje utworzyć grupę przy użyciu identycznego ładunku (z tym samym atrybutem unikatowym/dołączania) do istniejącej grupy.
    • Zwracanie protokołu HTTP 201 podczas pierwszego żądania utworzenia
    • Zwracanie protokołu HTTP 409 w drugim żądaniu tworzenia

Aktualizowanie atrybutów grupy

  • POST /Groups — tworzy nowy zasób grupy w celu zaktualizowania atrybutów
    • Funkcja POST zwraca http 2xx
  • PATCH /Groups/{id} — wysyła dokument JSON Patch z użyciem operacji replace w celu zaktualizowania jednego lub więcej atrybutów istniejącej grupy (z wyłączeniem członków).
    • Funkcja PATCH zwraca powodzenie (HTTP 2xx)
  • GET /Groups?filter={joiningProperty} eq "value" — potwierdza, że atrybuty grupy zostały poprawnie zaktualizowane.
    • Funkcja GET zwraca poprawioną grupę
    • Atrybuty zwracanej grupy pasują do zmienionych atrybutów w żądaniu PATCH

Tworzenie nowego zasobu grupy

  • POST /Groups: tworzy nowy zasób grupy w celu dodania członka do grupy.
    • Funkcja POST zwraca http 2xx
  • POST /Users — tworzy nowy zasób użytkownika, który ma być używany jako członek grupy.
    • Funkcja POST zwraca http 2xx
  • PATCH /Groups/{id} — dodaje nowo utworzony identyfikator użytkownika do grupy przy użyciu dokumentu poprawki JSON.
    • Operacja PATCH zakończyła się pomyślnie.

Używanie wyrażeń w modułach sprawdzania poprawności SCIM

Moduł sprawdzania poprawności SCIM obsługuje używanie wyrażeń do generowania żądanych wartości atrybutów.

Jak używać wyrażeń

  1. Przejdź do strony Atrybuty.
  2. Wprowadź żądane wyrażenie w kolumnie wartości atrybutu, który chcesz dostosować.
  3. Uruchamianie testu

Uwaga

Te wyrażenia działają zarówno dla atrybutów użytkownika, jak i grupy.

Dostępne wyrażenia

Poniższa tabela zawiera listę dostępnych wyrażeń

Wyrażenie Znaczenie Przykład Wynik
generateRandomString {liczba znaków ciągu} Generowanie losowego ciągu z określoną liczbą znaków alfabetu {%generateRandomString 6%}@contoso.com CXJHYP@contoso.com
generateRandomNumber {liczba liczb} Generowanie liczby losowej z określoną liczbą cyfr {%generateRandomNumber 4%} 8821
generateAlphaNumeric {liczba znaków} Generowanie losowego ciągu z kombinacją alfabetów i liczb z określoną liczbą znaków {%generateAlphaNumeric 7%} 59Q2M9W
generateAlphaNumericWithSpecialCharacters {Liczba znaków} Generowanie losowego ciągu z kombinacją alfabetów, liczb i znaku specjalnego w oparciu o określoną liczbę znaków {%generateAlphaNumericWithSpecialCharacters 8%}TEST D385N05'TEST

Możesz dodać wartości przed wyrażeniem lub po nim, aby osiągnąć żądany wynik, na przykład podczas dodawania wartości {% generateRandomString 6 %}@contoso.com do pola wartości atrybutu userName, wygeneruje nową wartość userName z każdym testem przy zachowaniu domeny contoso.com.

Czyszczenie zasobów

Jeśli w testach utworzono jakiekolwiek zasoby platformy Azure, które nie są już potrzebne, nie zapomnij ich usunąć.

Znane problemy z modułem sprawdzania poprawności SCIM firmy Microsoft

  • Usuwanie nietrwałe (wyłącza) nie jest jeszcze obsługiwane.
  • Format strefy czasowej jest generowany losowo i kończy się niepowodzeniem w przypadku systemów, które próbują je zweryfikować.
  • Usunięcie atrybutów użytkownika poprawki może podjąć próbę usunięcia obowiązkowych/wymaganych atrybutów dla niektórych systemów. Takie błędy powinny być ignorowane.

Następne kroki