Weryfikowanie atrybutów zebranych podczas rejestracji
Ć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.
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.
W obszarze Podstawy wybierz zdarzenie AttributeCollectionSubmit , a następnie wybierz pozycję Dalej.
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.
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.
Wybierz aplikację skonfigurowaną dla innych niestandardowych rozszerzeń uwierzytelniania, a następnie wybierz pozycję Wybierz.
Przejrzyj konfigurację i wybierz pozycję Utwórz, która rejestruje skonfigurowane rozszerzenie uwierzytelniania niestandardowego i wybraną rejestrację aplikacji.
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.
Z menu wybierz pozycję Niestandardowe rozszerzenia uwierzytelniania. Aby skojarzyć rozszerzenie uwierzytelniania niestandardowego, wybierz opcję Przed zebraniem informacji ze zdarzenia użytkownika .
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.
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"
}
}
}
2.3 Łączenie niestandardowego rozszerzenia uwierzytelniania z przepływem użytkownika
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"
}