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, aby zarządzać tożsamościami za pomocą usługi aprowizacji Microsoft Entra.

Uwaga

Użyj modułu sprawdzania poprawności Microsoft Entra SCIM, aby przetestować punkt końcowy podczas jego tworzenia. To nie jest weryfikacja wymagana przez proces wdrażania w Microsoft Entra App Gallery. Aby opublikować integrację aprowizacji użytkowników z galerią, uruchom szablon weryfikacji Azure Logic Apps i prześlij wyniki. Aby uzyskać więcej informacji, zobacz Sprawdzanie obsługi administracyjnej użytkowników w galerii aplikacji Microsoft Entra.

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.

Prześlij schemat Microsoft Entra — prześlij schemat pobrany z przykładowej aplikacji w usłudze 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 przesyłasz schemat, wybierz plik .json do przesłania. Opcja akceptuje plik .json wyeksportowany z przykładowej aplikacji w centrum administracyjnym firmy Microsoft Entra. Aby dowiedzieć się, jak wyeksportować schemat, zobacz Instrukcje: jak eksportować konfigurację aprowizacji i przywracać znany dobry stan.

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ść łączenia, znana również jako atrybut dopasowujący, to atrybut, za pomocą którego można jednoznacznie wyszukiwać zasoby użytkowników i grup w systemie źródłowym oraz dopasowywać je w systemie docelowym.

Zweryfikuj punkt końcowy SCIM

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

  1. Wybierz Test Schema, aby rozpocząć test.

  2. Przejrzyj wyniki wraz z podsumowaniem testów zakończonych 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żeniami lub po nich, aby uzyskać pożądany rezultat; na przykład po dodaniu {% generateRandomString 6 %}@contoso.com do pola wartości atrybutu userName przy każdym teście będzie generowana nowa wartość atrybutu userName z zachowaniem 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 walidatorem SCIM Microsoft Entra

  • Miękkie usuwanie (wyłączenia) 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ć.
  • Operacja patch usuwania atrybutów użytkownika może próbować usunąć obowiązkowe atrybuty w niektórych systemach. Takie błędy powinny być ignorowane.

Następne kroki