Weryfikowanie atrybutów zebranych podczas rejestracji

Ukończone

Ćwiczenie — weryfikowanie atrybutów zebranych podczas rejestracji

Rozszerzenie uwierzytelniania niestandardowego obsługuje zdarzenie przesyłania kolekcji atrybutów. To zdarzenie umożliwia przeprowadzenie walidacji atrybutów zebranych od użytkownika podczas rejestracji. W naszej witrynie internetowej sklepów spożywczych zweryfikujemy nazwę Miasta na liście krajów skompilowanych w niestandardowym interfejsie API REST rozszerzenia uwierzytelniania. Ponadto jeśli miasto zawiera blok, Tożsamość zewnętrzna Microsoft Entra wyświetli stronę bloku. Jeśli miasto zawiera modyfikację, Tożsamość zewnętrzna Microsoft Entra zmodyfikuje niektóre atrybuty (nazwa wyświetlana i miasto).

Uwaga

Aby skonfigurować walidację atrybutów zebranych podczas rejestracji, potrzebna będzie co najmniej rola katalogu Administrator rozszerzalności uwierzytelniania.

Ta rola jest rolą uprzywilejowaną. Przeczytaj o najlepszych rozwiązaniach dotyczących pracy z rolami uprzywilejowanymi.

Czy masz opinię? Daj nam znać, jak będzie przebiegał projekt weryfikacji koncepcji. Z przyjemnością poznamy opinie użytkowników.

Napiwek

Możesz również wyświetlić przykład internetowego interfejsu API języka C# platformy .NET, który pokazuje, jak używać niestandardowego rozszerzenia uwierzytelniania Tożsamość zewnętrzna Microsoft Entra dla różnych zdarzeń tutaj.

  1. Zacznij od zarejestrowania niestandardowego rozszerzenia uwierzytelniania używanego przez Tożsamość zewnętrzna Microsoft Entra do wywoływania interfejsu API REST. Rozszerzenie uwierzytelniania niestandardowego zawiera informacje o punkcie końcowym interfejsu API REST, akcji rozpoczęcia zbierania atrybutów, którą analizuje z interfejsu API REST i sposobie uwierzytelniania w interfejsie API REST. Zaloguj się do centrum administracyjnego firmy Microsoft Entra i przejdź do pozycji Rozszerzenia uwierzytelniania niestandardowego tożsamości zewnętrznych>. Pamiętaj, że możesz również przejść do aplikacji dla przedsiębiorstw>>niestandardowych rozszerzeń uwierzytelniania. Następnie wybierz pozycję Utwórz rozszerzenie niestandardowe.

    Zrzut ekranu przedstawiający blok Rozszerzenia uwierzytelniania niestandardowego tożsamości zewnętrznych z wyróżnionym przyciskiem na pasku narzędzi zatytułowanym Tworzenie rozszerzenia niestandardowego.

  2. W obszarze Podstawy wybierz zdarzenie AttributeCollectionSubmit , a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający kartę Podstawy bloku Tworzenie nowego rozszerzenia niestandardowego z wyróżnionym typem zdarzenia zatytułowanym Przesyłanie kolekcji atrybutów.

  3. W obszarze Konfiguracja punktu końcowego wypełnij następujące właściwości:

    • Nazwa — nazwa niestandardowego rozszerzenia uwierzytelniania, na przykład Weryfikacja danych wejściowych użytkownika rejestracji.

    • Docelowy adres URL — adres URL interfejsu API REST.

    • Limit czasu w milisekundach — maksymalna liczba ponownych prób punktu końcowego interfejsu API zostanie wywołana w przypadku awarii. Jeśli jest pusta, ta wartość jest domyślnie ustawiona na wartość domyślną usługi.

    • Maksymalna liczba ponownych prób — maksymalna liczba ponownych prób wywołania punktu końcowego interfejsu API w przypadku awarii. Jeśli jest pusta, ta wartość jest domyślnie ustawiona na wartość domyślną usługi.

    • Opis — opis niestandardowych rozszerzeń uwierzytelniania. Aby kontynuować, kliknij przycisk Dalej.

      Zrzut ekranu przedstawiający kartę Konfiguracja punktu końcowego bloku Tworzenie nowego rozszerzenia niestandardowego z polami Nazwa, Docelowy adres URL, Limit czasu w milisekundach, Maksymalna liczba ponownych prób i Opis.

  4. Aby zapewnić odpowiednią ochronę komunikacji między niestandardowym rozszerzeniem uwierzytelniania i interfejsem API REST, należy zastosować wiele mechanizmów kontroli zabezpieczeń. Pierwszym krokiem jest utworzenie lub wybranie aplikacji, która Tożsamość zewnętrzna Microsoft Entra używa. Używa przepływu udzielania poświadczeń klienta protokołu OAuth 2.0 w celu zabezpieczenia wywołania punktu końcowego interfejsu API.

    Jeśli jest to twoje pierwsze niestandardowe rozszerzenie uwierzytelniania, zobacz, jak skonfigurowaliśmy nasze zdarzenie TokenIssuanceStart. Ponieważ już skonfigurowaliśmy niestandardowe rozszerzenie uwierzytelniania, w obszarze Uwierzytelnianie interfejsu API wybierz opcję Wybierz istniejącą rejestrację aplikacji w tym katalogu.

    Zrzut ekranu przedstawiający kartę Uwierzytelnianie interfejsu API w bloku Tworzenie nowego rozszerzenia niestandardowego z wyróżnioną opcją przycisku radiowego Wybierz istniejącą rejestrację aplikacji w tym katalogu i Wybierz aplikację poniżej w obszarze Typ rejestracji aplikacji.

  5. Wybierz aplikację skonfigurowaną dla innych niestandardowych rozszerzeń uwierzytelniania, a następnie wybierz pozycję Wybierz.

    Zrzut ekranu przedstawiający okienko Wybierz aplikację otwartą po prawej stronie, która wyróżnia zaznaczoną aplikację zabezpieczeń rozszerzenia uwierzytelniania niestandardowego.

  6. Przejrzyj konfigurację i wybierz pozycję Utwórz, która rejestruje skonfigurowane rozszerzenie uwierzytelniania niestandardowego i wybraną rejestrację aplikacji.

    Zrzut ekranu przedstawiający kartę Przeglądanie bloku Tworzenie nowego rozszerzenia niestandardowego z konfiguracjami konfiguracji punktu końcowego i uwierzytelniania interfejsu API.

  7. Na tym etapie niestandardowe rozszerzenie uwierzytelniania jest skonfigurowane w dzierżawie, ale nie jest używane na żadnej ze stron rejestracji. Następnie skojarzysz rozszerzenie uwierzytelniania niestandardowego z co najmniej jednym przepływem użytkownika. W tym celu przejdź do sekcji Identity External Identities>User flows (Przepływy użytkownika tożsamości zewnętrznych tożsamości>). Następnie wybierz przepływ użytkownika z listy.

    Zrzut ekranu przedstawiający blok Przepływy użytkownika tożsamości zewnętrznych z wyróżnionym przepływem użytkownika zatytułowanym Domyślna z listy siatki przepływów użytkownika.

  8. Z menu wybierz pozycję Niestandardowe rozszerzenia uwierzytelniania. Aby skojarzyć rozszerzenie uwierzytelniania niestandardowego, wybierz opcję Przed zebraniem informacji ze zdarzenia użytkownika .

    Zrzut ekranu przedstawiający blok Niestandardowe rozszerzenia uwierzytelniania dla przepływu użytkownika zatytułowany Domyślny, który wyróżnia przycisk edycji obok pozycji Gdy użytkownik przesyła swoje informacje.

  9. Zostaną wyświetlone rozszerzenia niestandardowe skonfigurowane dla zdarzenia OnAttributeCollectionStart . Wybierz jeden z nich dla zdarzenia początkowego kolekcji atrybutów, a następnie wybierz pozycję Wybierz , aby zapisać zmiany.

    Zrzut ekranu przedstawiający okienko Niestandardowe rozszerzenia otwarte po prawej stronie z pozycją Weryfikuj dane wejściowe użytkownika rejestracji i jego adres URL wyróżniony w menu rozwijanym Wybierz rozszerzenie niestandardowe.

Dobra robota! Utworzono niestandardowe rozszerzenie uwierzytelniania typu OnAttributeCollectionSubmit, a następnie skojarzyliśmy je z przepływem użytkownika.

1. Rejestrowanie niestandardowej aplikacji rozszerzenia uwierzytelniania

Jeśli jest to pierwsze niestandardowe rozszerzenie uwierzytelniania, zarejestruj niestandardową aplikację rozszerzenia uwierzytelniania.

2. Rejestrowanie niestandardowego rozszerzenia uwierzytelniania

Następnie zarejestruj rozszerzenie uwierzytelniania niestandardowego. Rozszerzenie uwierzytelniania niestandardowego można zarejestrować, kojarząc je z utworzoną aplikacją zabezpieczeń rozszerzenia uwierzytelniania niestandardowego oraz punkt końcowy interfejsu API REST. Zastąp następujące wartości własnymi: — {app-ID} identyfikatorem aplikacji z poprzedniej aplikacji zabezpieczeń rozszerzenia uwierzytelniania niestandardowego. - {REST-API-domain} przy użyciu nazwy domeny interfejsu API REST — {Endpoint-URL} — z jednostki RUL punktu końcowego interfejsu API REST

POST https://graph.microsoft.com/beta/identity/customAuthenticationExtensions
{
    "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtension",
    "displayName": "Validate sign-up user input",
    "description": "Validate user input including the city name and may ask the user to correct the data or block the user",
    "behaviorOnError": null,
    "authenticationConfiguration": {
        "@odata.type": "#microsoft.graph.azureAdTokenAuthentication",
        "resourceId": "api://{REST-API-domain}/{app-ID}"
    },
    "endpointConfiguration": {
        "@odata.type": "#microsoft.graph.httpRequestEndpoint",
        "targetUrl": "{Endpoint-URL}"
    },
    "clientConfiguration": {
        "timeoutInMilliseconds": null,
        "maximumRetries": null
    }
}
Przykład
POST https://graph.microsoft.com/beta/identity/customAuthenticationExtensions
{
    "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtension",
    "displayName": "Validate sign-up user input",
    "description": "Validate user input including the city name and may ask the user to correct the data or block the user",
    "behaviorOnError": null,
    "authenticationConfiguration": {
        "@odata.type": "#microsoft.graph.azureAdTokenAuthentication",
        "resourceId": "api://auth-api.woodgrovedemo.com/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
    },
    "endpointConfiguration": {
        "@odata.type": "#microsoft.graph.httpRequestEndpoint",
        "targetUrl": "https://auth-api.woodgrovedemo.com/OnAttributeCollectionSubmit"
    },
    "clientConfiguration": {
        "timeoutInMilliseconds": null,
        "maximumRetries": null
    }
}
2.1 Kopiowanie niestandardowego identyfikatora rozszerzenia uwierzytelniania

Z odpowiedzi skopiuj wartość identyfikatora. Na przykład:

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/customAuthenticationExtensions/$entity",
    "@odata.type": "#microsoft.graph.onAttributeCollectionStartCustomExtension",
    "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "displayName": "Prepopulate sign-up attributes",
    "description": "Prepopulate sign-up attributes from a REST API",
}
2.2. Tworzenie odbiornika zdarzeń uwierzytelniania

Po zarejestrowaniu niestandardowego rozszerzenia uwierzytelniania utwórz odbiornik zdarzeń uwierzytelniania. W następnym kodzie JSON zastąp ciąg {Custom-auth-extension-ID} właśnie utworzonym rozszerzeniem uwierzytelniania niestandardowego.

POST https://graph.microsoft.com/beta/identity/authenticationEventListeners
{
    "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitListener",
    "conditions": {
        "applications": {
            "includeAllApplications": false,
            "includeApplications": []
        }
    },
    "priority": 500,
    "handler": {
        "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler",
        "customExtension": {
            "id": "{Custom-auth-extension-ID}"
        }
    }
}
Przykład
POST https://graph.microsoft.com/beta/identity/authenticationEventListeners
{
    "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitListener",
    "conditions": {
        "applications": {
            "includeAllApplications": false,
            "includeApplications": []
        }
    },
    "priority": 500,
    "handler": {
        "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler",
        "customExtension": {
            "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
        }
    }
}

Zaktualizuj przepływ użytkownika. W poniższym żądaniu zastąp następujące wartości własnymi wartościami: — {user-flow-ID} identyfikatorem przepływu użytkownika. - {Custom-auth-extension-ID} z właśnie utworzonym rozszerzeniem uwierzytelniania niestandardowego.

PUT https://graph.microsoft.com/beta/identity/authenticationEventsFlows/{user-flow-ID}/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollectionSubmit/microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler/customExtension/$ref
{
    "@odata.id": "https://graph.microsoft.com/beta/identity/customAuthenticationExtensions/{Custom-auth-extension-ID}"
}
Przykład
PUT https://graph.microsoft.com/beta//identity/authenticationEventsFlows/bbbbbbbb-1111-2222-3333-cccccccccccc/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollectionSubmit/microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler/customExtension/$ref
{
    "@odata.id": "https://graph.microsoft.com/beta/identity/customAuthenticationExtensions/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
}