Rejestrowanie aplikacji

Ukończone

Ćwiczenie — rejestrowanie aplikacji

Aby umożliwić aplikacji logowanie się przy użyciu Tożsamość zewnętrzna Microsoft Entra, musisz zarejestrować aplikację w katalogu.

Uwaga

Do zarejestrowania aplikacji potrzebna będzie co najmniej rola katalogu dewelopera aplikacji.

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.

  1. Aby zarejestrować własną aplikację, zaloguj się do centrum administracyjnego firmy Microsoft Entra i przejdź do pozycji Aplikacje> Rejestracje aplikacji. Następnie wybierz pozycję + Nowa rejestracja.

    Zrzut ekranu przedstawiający blok Rejestracje aplikacji z wyróżnionym przyciskiem o nazwie Nowa rejestracja.

  2. Na wyświetlonej stronie Rejestrowanie aplikacji wprowadź znaczącą nazwę aplikacji wyświetlaną użytkownikom aplikacji, na przykład Woodgrove Groceries. W obszarze Obsługiwane typy kont wybierz pozycję Konta tylko w tym katalogu organizacyjnym. W polu Platforma wybierz opcję Sieć Web i wprowadź identyfikator URI przekierowania aplikacji. Identyfikator URI przekierowania to punkt końcowy, do którego użytkownicy są przekierowywani przez Tożsamość zewnętrzna Microsoft Entra po zakończeniu uwierzytelniania za pomocą Tożsamość zewnętrzna Microsoft Entra.

    Zrzut ekranu przedstawiający blok Zarejestruj aplikację z wyróżnionymi kontami w tym katalogu organizacyjnym tylko dla opcji Kto może korzystać z tej aplikacji lub uzyskać dostęp do tego interfejsu API? i identyfikator URI przekierowania jest wyróżniony i ustawiony na Sieć Web, a także adres URL, pod którym ma zostać przekierowany użytkownik po pomyślnym uwierzytelnieniu.

  3. Po pomyślnej rejestracji zostanie wyświetlone okienko Przegląd aplikacji. Zarejestruj identyfikator aplikacji (klienta), który ma być używany w kodzie źródłowym aplikacji.

    Zrzut ekranu przedstawiający Rejestracje aplikacji z wyróżnionym przeglądem w obszarze nawigacji po lewej stronie. Identyfikator aplikacji (klienta) jest również wyróżniony w obszarze Podstawy.

  4. Aby dodać więcej identyfikatorów URI przekierowania lub adresu URL wylogowywania kanału frontonu, w obszarze Zarządzanie wybierz pozycję Uwierzytelnianie. Adres URL wylogowywania kanału frontonu to miejsce, w którym wysyłamy żądanie, aby aplikacja wyczyściła dane sesji użytkownika. Jest to wymagane, aby logowanie jednokrotne działało poprawnie.

    Zrzut ekranu przedstawiający blok Uwierzytelnianie w obszarze Rejestracje aplikacji z wyróżnionym identyfikatorem URI w obszarze Identyfikatory URI przekierowania sieci Web, a także adresem URL wylogowywania kanału frontonu.

  5. Aby aplikacja internetowa (poufnego klienta) uzyskała token dostępu, potrzebuje poświadczeń, aby udowodnić swoją tożsamość identyfikatorowi Entra firmy Microsoft. Certyfikaty, wpisy tajne klienta (ciąg) lub poświadczenia tożsamości federacyjnej można dodawać jako poświadczenia do poufnej rejestracji aplikacji klienckiej. W witrynie internetowej sklepów spożywczych użyjemy certyfikatu. Aby dodać certyfikat, wybierz pozycję Certyfikaty>i wpisy tajne>Przekaż certyfikat.

    Zrzut ekranu przedstawiający blok Certyfikaty i wpisy tajne w obszarze Rejestracje aplikacji, w którym istnieją certyfikaty zerowe i wyróżniono przycisk o nazwie Przekaż certyfikat.

  6. Wybierz plik, który chcesz przekazać. Plik musi być plikiem typu cer, pem lub crt. Następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający okienko Przekazywanie certyfikatu otwarte po prawej stronie z wyróżnioną ikoną przekazywania w celu przekazania certyfikatu.

  7. W poniższych krokach dodasz wymagane uprawnienie dla aplikacji internetowej. W obszarze Zarządzanie wybierz pozycję Uprawnienia interfejsu API, a następnie wybierz pozycję Dodaj uprawnienie.

    Zrzut ekranu przedstawiający uprawnienia interfejsu API w obszarze Rejestracje aplikacji z wyróżnionym przyciskiem Dodaj uprawnienie.

  8. W obszarze Żądanie uprawnień interfejsu API wybierz kartę Interfejsy API firmy Microsoft, a następnie wybierz pozycję Microsoft Graph.

    Zrzut ekranu przedstawiający okienko Żądania uprawnień interfejsu API otwarte po prawej stronie z wyróżnioną grupą wyboru zatytułowaną Microsoft Graph.

  9. Wybierz opcję Uprawnienia delegowane. Następnie w sekcji Wybierz uprawnienia wyszukaj i wybierz zarówno uprawnienia openid , jak i offline_access . Aby ukończyć, wybierz pozycję Dodaj uprawnienia.

    Zrzut ekranu przedstawiający okienko Żądaj uprawnień interfejsu API otwarte po prawej stronie z wyróżnioną grupą wyboru z wyróżnionymi uprawnieniami delegowanymi i uprawnieniami dla offline_access i pole wyboru openid zaewidencjonowane poniżej.

  10. W tym momencie przypisano uprawnienia poprawnie. Jednak ponieważ dzierżawa jest dzierżawą zewnętrzną, użytkownicy konsumentów nie mogą wyrazić zgody na te uprawnienia. Administrator musi wyrazić zgodę na te uprawnienia w imieniu wszystkich użytkowników w dzierżawie: wybierz pozycję Udziel zgody administratora dla <your tenant name>elementu , a następnie wybierz pozycję Tak.

    Zrzut ekranu przedstawiający przycisk zatytułowany Udziel zgody administratora na artykuły spożywcze Woodgrove wyróżnione w bloku uprawnień interfejsu API.

    Dobra robota! Teraz aplikacja jest gotowa do użycia.

1. Rejestrowanie aplikacji

Aby zarejestrować aplikację internetową, użyj poniższego żądania programu Microsoft Graph i zastąp następujące wartości.

  • Wartość displayName z wyświetloną nazwą aplikacji. Na przykład Woodgrove Groceries.

  • Wartości identyfikatorów redirectUri z identyfikatorem URI przekierowania aplikacji. Na przykład https://woodgrovedemo.com/signin-oidc. Możesz również użyć polecenia https://www.jwt.ms/.

    POST https://graph.microsoft.com/v1.0/applications
    {
        "displayName": "Woodgrove Groceries",
        "description": "Woodgrove Groceries live demo application",
        "signInAudience": "AzureADMyOrg",
        "api": {
            "acceptMappedClaims": true,
            "requestedAccessTokenVersion": 2
        },
        "requiredResourceAccess": [
            {
                "resourceAppId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
                "resourceAccess": [
                    {
                        "id": "b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2",
                        "type": "Scope"
                    },
                    {
                        "id": "c2c2c2c2-dddd-eeee-ffff-a3a3a3a3a3a3",
                        "type": "Scope"
                    }
                ]
            }
        ],
        "web": {
            "redirectUris": [
                "https://woodgrovedemo.com/signin-oidc"
            ],
            "implicitGrantSettings": {
                "enableAccessTokenIssuance": false,
                "enableIdTokenIssuance": false
            }
        }
    }
    
1.1 Kopiowanie identyfikatora aplikacji

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications/$entity",
    "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "appId": "00001111-aaaa-2222-bbbb-3333cccc4444",
    "displayName": "Woodgrove Groceries",
    "description": "Woodgrove Groceries live demo application",
    ...
}      

2. Tworzenie jednostki usługi dla aplikacji

Po zarejestrowaniu aplikacji utwórz jednostkę usługi. Następujące wywołanie programu Graph tworzy jednostkę usługi. Zastąp element {appId} identyfikatorem appId aplikacji z poprzedniego wywołania (a nie identyfikatorem obiektu).

POST https://graph.microsoft.com/v1.0/servicePrincipals
{
    "appId": "{appId}"
}
2.1 Kopiowanie identyfikatora jednostki usługi

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals/$entity",
    "id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
    "displayName": "Woodgrove Groceries",
    "description": "Woodgrove Groceries live demo application",
    ...
}

Ponieważ dzierżawa jest dzierżawą zewnętrzną, użytkownicy konsumentów nie mogą wyrazić zgody na te uprawnienia. Administrator musi wyrazić zgodę na te uprawnienia w imieniu wszystkich użytkowników w dzierżawie.

3.1 Uzyskiwanie identyfikatora jednostki usługi programu Microsoft Graph

Uruchom następujące żądanie GET i skopiuj identyfikator z odpowiedzi:

GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='22223333-cccc-4444-dddd-5555eeee6666')
{
    "id": "cccccccc-2222-3333-4444-dddddddddddd",
    "appDisplayName": "Microsoft Graph",
    "appId": "22223333-cccc-4444-dddd-5555eeee6666"
}
3.2 Udzielanie wymaganych uprawnień

Zastąp element {service-principal-id} identyfikatorem jednostki usługi skopiowanym w poprzednim kroku. Zastąp element {graph-service-principal-id} identyfikatorem jednostki usługi skopiowanym w ostatnim kroku.

POST https://graph.microsoft.com/v1.0/oauth2PermissionGrants
{
    "clientId": "{service-principal-id}",
    "consentType": "AllPrincipals",
    "resourceId": "{graph-service-principal-id}",
    "scope": "openid offline_access"
}

4. (Opcjonalnie) Dodawanie wpisu tajnego klienta

Poświadczenia umożliwiają aplikacjom poufnym identyfikowanie się w usłudze uwierzytelniania podczas odbierania tokenów. W celu zapewnienia wyższego poziomu bezpieczeństwa zalecane jest używanie certyfikatu (zamiast klucza tajnego klienta) jako poświadczenia. Aby uzyskać klucz tajny klienta, uruchom następujące żądanie. Zastąp element {graph-service-principal-id} identyfikatorem appId identyfikatorem appId w pierwszym kroku.

POST https://graph.microsoft.com/v1.0/applications(appId='appId')/addPassword
{
    "passwordCredential": {
        "displayName": "My app client secret"
    }
}

Z odpowiedzi skopiuj wartość secretText:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.passwordCredential",
    "displayName": "My app client secret",
    "endDateTime": "2026-05-23T15:16:42",
    "hint": "<Your hint will show up here>",
    "keyId": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
    "secretText": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u",
    "startDateTime": "2024-05-23T15:16:42"
}