Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: Najemcy pracowniczy
Najemcy zewnętrzni (dowiedz się więcej)
W tym artykule opisano sposób rozszerzania środowiska rejestracji użytkownika w Tożsamość zewnętrzna Microsoft Entra dla klientów. W przepływach użytkownika rejestracji klienta odbiorniki zdarzeń mogą służyć do rozszerzania procesu zbierania atrybutów przed kolekcją atrybutów i w czasie przesyłania atrybutów:
Zdarzenie OnAttributeCollectionStart występuje na początku kroku kolekcji atrybutów przed renderowaniem strony kolekcji atrybutów. Możesz dodać akcje, takie jak wstępne wypełnianie wartości i wyświetlanie błędu blokowania.
Napiwek
pl-PL: Aby wypróbować tę funkcję, przejdź do wersji demonstracyjnej Woodgrove Groceries i uruchom przypadek użycia "Wstępne wypełnianie atrybutów rejestracji".
Zdarzenie OnAttributeCollectionSubmit występuje po wprowadzeniu i przesłaniu atrybutów przez użytkownika. Możesz dodawać akcje, takie jak weryfikowanie lub modyfikowanie wpisów użytkownika.
Napiwek
Aby wypróbować tę funkcję, przejdź do pokazu Woodgrove Groceries i uruchom przypadek użycia "Zweryfikuj atrybuty rejestracji" lub "Blokuj użytkownikowi kontynuowanie procesu rejestracji".
Oprócz tworzenia niestandardowego rozszerzenia uwierzytelniania dla kolekcji atrybutów start i przesyłania zdarzeń, należy utworzyć interfejs API REST, który definiuje akcje przepływu pracy do wykonania dla każdego zdarzenia. Do tworzenia i hostowania interfejsu API REST można użyć dowolnego języka programowania, platformy i środowiska hostingu. W tym artykule przedstawiono szybki sposób rozpoczynania pracy z funkcją platformy Azure w języku C#. Usługa Azure Functions uruchamia kod w środowisku bezserwerowym bez konieczności uprzedniego tworzenia maszyny wirtualnej lub publikowania aplikacji internetowej.
Wymagania wstępne
- Do korzystania z usług platformy Azure, w tym usługi Azure Functions, potrzebna jest subskrypcja platformy Azure. Jeśli nie masz istniejącego konta platformy Azure, możesz utworzyć konto bezpłatnej wersji próbnej lub skorzystać z korzyści z subskrypcji programu Visual Studio podczas tworzenia konta.
- Proces użytkownika rejestracji i logowania.
Krok 1. Tworzenie niestandardowego interfejsu API REST rozszerzeń uwierzytelniania (aplikacja funkcji platformy Azure)
W tym kroku utworzysz interfejs API funkcji wyzwalacza HTTP przy użyciu usługi Azure Functions. Interfejs API funkcji jest źródłem logiki biznesowej dla przepływów użytkownika. Po utworzeniu funkcji wyzwalacza można skonfigurować ją dla jednego z następujących zdarzeń:
Zaloguj się do witryny Azure Portal przy użyciu konta administratora.
W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.
Wyszukaj i wybierz Function App, a następnie wybierz Utwórz.
Na stronie Podstawowe użyj ustawień aplikacji funkcjonalnych określonych w poniższej tabeli:
Ustawienie Sugerowana wartość opis Subskrypcja Twoja subskrypcja Subskrypcja, w której zostanie utworzona nowa aplikacja funkcji. Grupa zasobów myResourceGroup (grupa zasobówmyResourceGroup) Wybierz i istniejącą grupę zasobów lub nazwę nowej, w której utworzysz aplikację funkcji. Nazwa aplikacji funkcji Nazwa unikatowa w skali globalnej Nazwa identyfikująca nową aplikację funkcji. Prawidłowe znaki to a-z
(bez uwzględniania wielkości liter),0-9
i-
.Publikować Kod Opcja publikowania plików kodu lub kontenera Docker. Na potrzeby tego samouczka wybierz pozycję Kod. Stos uruchomieniowy .SIEĆ Preferowany język programowania. Na potrzeby tego samouczka wybierz .NET. Wersja 6 (LTS) Proces Wersja środowiska uruchomieniowego platformy .NET. Oznacza, że można tworzyć i modyfikować funkcje w portalu, co jest zalecane w tym przewodniku Region Preferowany region Wybierz region , który znajduje się blisko Ciebie lub w pobliżu innych usług, do których mogą uzyskiwać dostęp funkcje. System operacyjny Windows System operacyjny jest wstępnie wybierany na podstawie wyboru stosu środowiska uruchomieniowego. Typ planu Zużycie (bezserwerowe) Plan hostingu określający sposób przydzielania zasobów do aplikacji funkcji. Wybierz pozycję Przejrzyj i utwórz , aby przejrzeć wybrane opcje konfiguracji aplikacji, a następnie wybierz pozycję Utwórz. Wdrożenie zajmuje kilka minut.
Po wdrożeniu wybierz pozycję Przejdź do zasobu , aby wyświetlić nową aplikację funkcji.
1.1 Tworzenie funkcji wyzwalacza HTTP
Po utworzeniu aplikacji funkcji platformy Azure utworzysz funkcje wyzwalacza HTTP dla akcji, które chcesz wywołać za pomocą żądania HTTP. Wyzwalacze HTTP są przywoływanych i wywoływane przez niestandardowe rozszerzenie uwierzytelniania firmy Microsoft.
- Na stronie Przegląd aplikacji funkcji wybierz sekcję Funkcje i pod Utwórz w portalu Azure wybierz Utwórz funkcję.
- W oknie Tworzenie funkcji pozostaw właściwość Środowisko programistyczne jako Programowanie w portalu. W obszarze Szablon wybierz Wyzwalacz HTTP.
- W obszarze Szczegóły szablonu wprowadź wartość CustomAuthenticationExtensionsAPI dla właściwości Nowa funkcja .
- Dla Poziomu autoryzacji wybierz Funkcję.
- Wybierz pozycję Utwórz.
1.2. Konfigurowanie wyzwalacza HTTP dla elementu OnAttributeCollectionStart
- Z menu wybierz pozycję Kod i testowanie.
- Wybierz poniższą kartę dla scenariusza, który chcesz zaimplementować: Kontynuuj, Blokuj lub SetPrefillValues. Zastąp kod podanymi fragmentami kodu.
- Po zastąpieniu kodu z górnego menu wybierz pozycję Pobierz adres URL funkcji i skopiuj adres URL. Ten adres URL jest używany w kroku 2. Tworzenie i rejestrowanie niestandardowego rozszerzenia uwierzytelniania dla docelowego adresu URL.
Użyj tego wyzwalacza HTTP, aby umożliwić użytkownikowi kontynuowanie przepływu rejestracji, jeśli nie są potrzebne żadne dalsze działania.
#r "Newtonsoft.Json"
using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using System.Text;
public static async Task<object> Run(HttpRequest req, ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic request = JsonConvert.DeserializeObject(requestBody);
var actions = new List<ContinueWithDefaultBehavior>{
new ContinueWithDefaultBehavior { type = "microsoft.graph.attributeCollectionStart.continueWithDefaultBehavior"}
};
var dataObject = new Data {
type = "microsoft.graph.onAttributeCollectionStartResponseData",
actions= actions
};
dynamic response = new ResponseObject {
data = dataObject
};
// Send the response
return response;
}
public class ResponseObject
{
public Data data { get; set; }
}
[JsonObject]
public class Data {
[JsonProperty("@odata.type")]
public string type { get; set; }
public List<ContinueWithDefaultBehavior> actions { get; set; }
}
[JsonObject]
public class ContinueWithDefaultBehavior {
[JsonProperty("@odata.type")]
public string type { get; set; }
}
1.3. Konfigurowanie wyzwalacza HTTP dla elementu OnAttributeCollectionSubmit
- Z menu wybierz pozycję Kod i testowanie.
- Wybierz poniższą kartę dla scenariusza, który chcesz zaimplementować: Kontynuuj, Blokuj, Modyfikuj wartości lub Błąd walidacji. Zastąp kod podanymi fragmentami kodu.
- Po zastąpieniu kodu z górnego menu wybierz pozycję Pobierz adres URL funkcji i skopiuj adres URL. Ten adres URL jest używany w kroku 2. Tworzenie i rejestrowanie niestandardowego rozszerzenia uwierzytelniania dla docelowego adresu URL.
Użyj tego wyzwalacza HTTP, aby umożliwić użytkownikowi kontynuowanie przepływu rejestracji, jeśli nie są potrzebne żadne dalsze działania.
#r "Newtonsoft.Json"
using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using System.Text;
public static async Task<object> Run(HttpRequest req, ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic request = JsonConvert.DeserializeObject(requestBody);
var actions = new List<ContinueWithDefaultBehavior>{
new ContinueWithDefaultBehavior { type = "microsoft.graph.attributeCollectionSubmit.continueWithDefaultBehavior"}
};
var dataObject = new Data {
type = "microsoft.graph.onAttributeCollectionSubmitResponseData",
actions= actions
};
dynamic response = new ResponseObject {
data = dataObject
};
// Send the response
return response;
}
public class ResponseObject
{
public Data data { get; set; }
}
[JsonObject]
public class Data {
[JsonProperty("@odata.type")]
public string type { get; set; }
public List<ContinueWithDefaultBehavior> actions { get; set; }
}
[JsonObject]
public class ContinueWithDefaultBehavior {
[JsonProperty("@odata.type")]
public string type { get; set; }
}
Krok 2. Tworzenie i rejestrowanie niestandardowego rozszerzenia uwierzytelniania
W tym kroku zarejestrujesz niestandardowe rozszerzenie uwierzytelniania, które jest używane przez identyfikator Entra firmy Microsoft w celu wywołania funkcji platformy Azure. Rozszerzenie uwierzytelniania niestandardowego zawiera informacje o punkcie końcowym interfejsu API REST, rozpoczęciu kolekcji atrybutów i przesłaniu akcji, które analizuje z interfejsu API REST oraz sposobie uwierzytelniania w interfejsie API REST.
Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej administrator aplikacji i administrator uwierzytelniania.
Przejdź do Entra ID>External Identities>Niestandardowe rozszerzenia uwierzytelniania.
Wybierz pozycję Utwórz rozszerzenie niestandardowe.
W Podstawach wybierz zdarzenie AttributeCollectionStart lub AttributeCollectionSubmit, a następnie wybierz Dalej. Upewnij się, że jest to zgodne z konfiguracją w poprzednim kroku.
W obszarze Konfiguracja punktu końcowego wypełnij następujące właściwości:
- Nazwa — nazwa niestandardowego rozszerzenia uwierzytelniania. Na przykład zdarzenie w kolekcji atrybutów.
- funkcji platformy Azure.
- Opis — opis niestandardowych rozszerzeń uwierzytelniania.
Wybierz pozycję Dalej.
W obszarze Uwierzytelnianie interfejsu API wybierz opcję Utwórz nową rejestrację aplikacji , aby utworzyć rejestrację aplikacji reprezentującą aplikację funkcji.
Nadaj aplikacji nazwę, na przykład API zdarzeń uwierzytelniania Azure Functions.
Wybierz pozycję Dalej.
Wybierz pozycję Utwórz, co spowoduje utworzenie niestandardowego rozszerzenia uwierzytelniania i skojarzonej rejestracji aplikacji.
2.2 Udzielanie zgody administratora
Po utworzeniu niestandardowego rozszerzenia uwierzytelniania przyznaj aplikacji zgodę na zarejestrowaną aplikację, która umożliwia niestandardowe rozszerzenie uwierzytelniania do uwierzytelniania w interfejsie API.
- Przejdź do Entra ID>External Identities>Niestandardowe rozszerzenia uwierzytelniania.
- Wybierz niestandardowe rozszerzenie uwierzytelniania z listy.
- Na karcie Przegląd wybierz przycisk Udziel uprawnień , aby wyrazić zgodę administratora na zarejestrowaną aplikację. Rozszerzenie uwierzytelniania niestandardowego używa
client_credentials
polecenia do uwierzytelniania w aplikacji funkcji platformyReceive custom authentication extension HTTP requests
Azure przy użyciu uprawnienia. Wybierz pozycję Akceptuj.
Krok 3. Dodawanie niestandardowego rozszerzenia uwierzytelniania do przepływu użytkownika
Teraz możesz skojarzyć rozszerzenie uwierzytelniania niestandardowego z co najmniej jednym przepływem użytkownika.
Uwaga
Jeśli musisz utworzyć przepływ użytkownika, wykonaj kroki opisane w artykule Tworzenie przepływu rejestracji i logowania użytkowników dla klientów.
3.1. Dodawanie niestandardowego rozszerzenia uwierzytelniania do istniejącego przepływu użytkownika
Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji i administrator uwierzytelniania
Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia
w górnym menu, aby przełączyć się do dzierżawy zewnętrznej.
Przejdź do Entra ID>Zewnętrzne tożsamości>Przepływy użytkownika.
Wybierz przepływ użytkownika z listy.
Wybierz pozycję Niestandardowe rozszerzenia uwierzytelniania.
Na stronie Niestandardowe rozszerzenia uwierzytelniania można skojarzyć niestandardowe rozszerzenie uwierzytelniania z dwoma różnymi krokami przepływu użytkownika:
- Przed zebraniem informacji od użytkownika jest skojarzone ze zdarzeniem OnAttributeCollectionStart . Wybierz ołówek edycji. Zostaną wyświetlone tylko te rozszerzenia niestandardowe skonfigurowane dla zdarzenia OnAttributeCollectionStart . Wybierz aplikację skonfigurowaną dla zdarzenia rozpoczęcia zbierania atrybutów, a następnie wybierz pozycję Wybierz.
- Gdy użytkownik przesyła swoje informacje, jest powiązane ze zdarzeniem OnAttributeCollectionSubmit. zostaną wyświetlone tylko te rozszerzenia niestandardowe skonfigurowane dla zdarzenia OnAttributeCollectionSubmit . Wybierz aplikację skonfigurowaną dla zdarzenia przesyłania kolekcji atrybutów, a następnie wybierz pozycję Wybierz.
Upewnij się, że aplikacje wymienione obok obu kroków kolekcji atrybutów są poprawne.
Wybierz ikonę Zapisz .
Krok 4. Testowanie aplikacji
Aby uzyskać token i przetestować niestandardowe rozszerzenie uwierzytelniania, możesz użyć https://jwt.ms aplikacji. Jest to aplikacja internetowa należąca do firmy Microsoft, która wyświetla zdekodowana zawartość tokenu (zawartość tokenu nigdy nie opuszcza przeglądarki).
Wykonaj następujące kroki, aby zarejestrować aplikację internetową jwt.ms :
4.1 Rejestrowanie aplikacji internetowej jwt.ms
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji.
- Przejdź do obszaruRejestracje aplikacji>.
- Wybierz pozycję Nowa rejestracja.
- Wprowadź nazwę aplikacji. Na przykład Moja aplikacja testowa.
- W sekcji Obsługiwane typy kont wybierz pozycję Konta tylko w tym katalogu organizacyjnym.
- Na liście rozwijanej Wybierz platformę w polu Adres URI przekierowania wybierz pozycję Internet, a następnie wprowadź w polu tekstowym
https://jwt.ms
Adres URL. - Wybierz pozycję Zarejestruj, aby ukończyć rejestrację aplikacji.
4.2 Pobieranie identyfikatora aplikacji
W rejestracji aplikacji w obszarze Przegląd skopiuj identyfikator aplikacji (klienta). Identyfikator aplikacji jest określany jako w <client_id>
kolejnych krokach. W programie Microsoft Graph odwołuje się do niej właściwość appId .
4.3 Włączanie przepływu niejawnego
Aplikacja testowa jwt.ms korzysta z niejawnego przepływu. Włącz niejawny przepływ w rejestracji aplikacji Mój test , wykonując następujące kroki.
Ważne
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania używany do testowania w tej procedurze wymaga bardzo wysokiego poziomu zaufania w aplikacji i niesie ze sobą ryzyko, które nie występują w innych przepływach. Takie podejście nie powinno być używane do uwierzytelniania użytkowników w aplikacjach produkcyjnych (dowiedz się więcej).
- W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
- W obszarze Niejawne udzielanie i przepływy hybrydowe zaznacz pole wyboru Tokeny ID (dla przepływów niejawnych i hybrydowych).
- Wybierz pozycję Zapisz.
Krok 5. Ochrona funkcji platformy Azure
Rozszerzenie uwierzytelniania niestandardowego firmy Microsoft używa serwera do przepływu serwera w celu uzyskania tokenu dostępu wysyłanego w nagłówku HTTP Authorization
do funkcji platformy Azure. Podczas publikowania funkcji na platformie Azure, zwłaszcza w środowisku produkcyjnym, należy zweryfikować token wysłany w nagłówku autoryzacji.
Aby chronić funkcję platformy Azure, wykonaj następujące kroki, aby zintegrować uwierzytelnianie Microsoft Entra do weryfikacji przychodzących tokenów za pomocą rejestracji aplikacji interfejsu API zdarzeń uwierzytelniania Azure Functions.
Uwaga
Jeśli aplikacja funkcji Azure jest hostowana w dzierżawie platformy Azure innej niż ta, w której zarejestrowano niestandardowe rozszerzenie uwierzytelniania, przejdź do kroku 5.1 Używanie dostawcy tożsamości OpenID Connect.
5.1 Dodawanie dostawcy tożsamości do funkcji platformy Azure
Zaloguj się do witryny Azure Portal.
Nawiguj i wybierz wcześniej opublikowaną aplikację funkcji.
Wybierz pozycję Uwierzytelnianie w menu po lewej stronie.
Wybierz pozycję Dodaj dostawcę tożsamości.
Wybierz Microsoft jako dostawcę tożsamości.
Wybierz pozycję Klient jako typ dzierżawy.
W obszarze Rejestracja aplikacji wprowadź
client_id
rejestrację aplikacji interfejsu API zdarzeń uwierzytelniania usługi Azure Functionsutworzoną wcześniej podczas rejestrowania niestandardowego dostawcy oświadczeń.W polu Adres URL wystawcy wprowadź następujący adres URL
https://{domainName}.ciamlogin.com/{tenant_id}/v2.0
, gdzie-
{domainName}
to nazwa domeny dzierżawy zewnętrznej. -
{tenantId}
to identyfikator dzierżawy dzierżawy zewnętrznej. W tym miejscu należy zarejestrować niestandardowe rozszerzenie uwierzytelniania.
-
W obszarze Żądania nieuwierzytelnione wybierz HTTP 401 Niezautoryzowany jako dostawcę tożsamości.
Usuń zaznaczenie opcji Magazyn tokenów .
Wybierz pozycję Dodaj , aby dodać uwierzytelnianie do funkcji platformy Azure.
5.2 Używanie dostawcy tożsamości OpenID Connect
Jeśli skonfigurowano krok 5. Ochrona funkcji platformy Azure, pomiń ten krok. W przeciwnym razie, jeśli funkcja platformy Azure jest hostowana w innej dzierżawie niż dzierżawa, w której zarejestrowano rozszerzenie uwierzytelniania niestandardowego, wykonaj następujące kroki, aby chronić funkcję:
Zaloguj się do portalu Azure, a następnie przejdź do aplikacji funkcji, którą wcześniej opublikowałeś.
Wybierz pozycję Uwierzytelnianie w menu po lewej stronie.
Wybierz pozycję Dodaj dostawcę tożsamości.
Wybierz OpenID Connect jako dostawcę tożsamości.
Podaj nazwę, taką jak Contoso Microsoft Entra ID.
W polu Metadane wpisz następujący adres URL do adresu URL dokumentu. Zastąp element identyfikatorem
{tenantId}
dzierżawy firmy Microsoft Entra.https://login.microsoftonline.com/{tenantId}/v2.0/.well-known/openid-configuration
W sekcji Rejestracja aplikacji wprowadź identyfikator aplikacji (identyfikator klienta) rejestracji aplikacji interfejsu API zdarzeń uwierzytelniania Azure Functions, którą utworzyłeś wcześniej.
W centrum administracyjnym firmy Microsoft Entra:
- Wybierz rejestrację aplikacji interfejsu API uwierzytelniania usługi Azure Functions, którą wcześniej utworzyłeś.
- Wybierz pozycję Certyfikaty i wpisy tajne>Tajne informacje klienta>Nowa tajna informacja klienta.
- Dodaj opis wpisu tajnego klienta.
- Wybierz datę wygaśnięcia klucza tajnego lub określ niestandardowy okres ważności.
- Wybierz pozycję Dodaj.
- Zapisz wartość tajemnicy do użycia w kodzie aplikacji klienckiej. Po opuszczeniu tej strony wartość klucza tajnego nie jest nigdy wyświetlana ponowna.
Wróć do funkcji platformy Azure w obszarze Rejestracja aplikacji wprowadź klucz tajny klienta.
Usuń zaznaczenie opcji Magazyn tokenów .
Wybierz pozycję Dodaj , aby dodać dostawcę tożsamości OpenID Connect.
Krok 6. Testowanie aplikacji
Aby przetestować niestandardowe rozszerzenie uwierzytelniania, wykonaj następujące kroki:
Otwórz nową prywatną przeglądarkę i przejdź do następującego adresu URL:
https://<domainName>.ciamlogin.com/<tenant_id>/oauth2/v2.0/authorize?client_id=<client_id>&response_type=code+id_token&redirect_uri=https://jwt.ms&scope=openid&state=12345&nonce=12345
- Zastąp
<domainName>
ciąg nazwą dzierżawy zewnętrznej i zastąp<tenant-id>
element identyfikatorem dzierżawy zewnętrznej. - Zastąp
<client_id>
ciąg identyfikatorem aplikacji dodanej do przepływu użytkownika.
- Zastąp
Po zalogowaniu zostanie wyświetlony dekodowany token pod adresem
https://jwt.ms
.