Korzystanie z uwierzytelniania tylko dla aplikacji

Z tego artykułu dowiesz się, jak bezpiecznie uwierzytelniać aplikacje w celu automatyzowania zadań przy użyciu modułu Microsoft Entra PowerShell. Obejmuje uwierzytelnianie oparte na certyfikatach, poświadczenia tajnego klucza klienta i tożsamości zarządzane.

Ta wiedza umożliwia wydajny i bezpieczny dostęp do zasobów Microsoft Entra i Azure bez ręcznego zarządzania poufnymi poświadczeniami. Niezwykle ważne jest utrzymanie niezawodnych rozwiązań w zakresie zabezpieczeń i usprawnianie zarządzania dostępem w środowiskach chmury.

Ważna

Dostęp tylko do aplikacji udziela uprawnień bezpośrednio aplikacji i wymaga od administratora wyrażenia zgody na wymagane zakresy uprawnień. Aby uzyskać więcej informacji na temat dostępu tylko do aplikacji, zobacz Platforma tożsamości Microsoft i przepływ poświadczeń klienta OAuth 2.0.

Prerequisites

Aby korzystać z dostępu tylko do aplikacji za pomocą modułu Microsoft Entra PowerShell, potrzebne są następujące elementy:

Korzystanie z uwierzytelniania opartego na certyfikatach

Te informacje powinny być używane do uwierzytelniania przy użyciu certyfikatu.

  • Podmiot lub odcisk palca certyfikatu przesłanego do rejestracji aplikacji w Microsoft Entra.
  • Identyfikator aplikacji do rejestracji aplikacji. Jeśli nie masz jeszcze rejestracji aplikacji, zobacz Tworzenie aplikacji niestandardowej.
  • Identyfikator najemcy.

W tej sekcji dowiesz się, jak używać certyfikatu do uwierzytelniania za pomocą modułu Microsoft Entra PowerShell. Do uwierzytelnienia można użyć odcisku palca certyfikatu, nazwy certyfikatu lub samego certyfikatu. Aby uwierzytelnić się przy użyciu podanych przykładów, musisz zalogować się przy użyciu co najmniej roli Administrator ról uprzywilejowanych .

Użyj odcisku certyfikatu

$params = @{
    ClientId = 'YOUR_APP_ID'
    TenantId = 'YOUR_TENANT_ID'
    CertificateThumbprint = 'YOUR_CERT_THUMBPRINT'
}

Connect-Entra @params

Aby znaleźć odcisk palca certyfikatu w centrum administracyjne Microsoft Entra, przejdź do pozycji Identity>Rejestracje aplikacji>Certificates & secrets>Certificates. Wybierz certyfikat i skopiuj jego odcisk palca.

Alternatywnie możesz użyć następującego polecenia programu PowerShell, aby uzyskać certyfikat z podpisem własnym:

Get-ChildItem Cert:\CurrentUser\My

Użyj nazwy certyfikatu

$params = @{
    ClientId = 'YOUR_APP_ID'
    TenantId = 'YOUR_TENANT_ID'
    CertificateName = 'YOUR_CERT_SUBJECT'
}

Connect-Entra @params

Podmiot certyfikatu można znaleźć, uruchamiając polecenie:

Get-ChildItem Cert:\CurrentUser\My\$CertThumbprint | Select Subject

Korzystanie z certyfikatu

$cert = Get-ChildItem Cert:\CurrentUser\My\$CertThumbprint
Connect-Entra -ClientId 'YOUR_APP_ID' -TenantId 'YOUR_TENANT_ID' -Certificate $cert

Aby użyć certyfikatu przechowywanego w magazynie certyfikatów maszyny lub innej lokalizacji podczas nawiązywania połączenia z programem Microsoft Entra PowerShell, określ lokalizację certyfikatu.

Jeśli uwierzytelnianie zakończy się pomyślnie, zostanie wyświetlony komunikat Welcome To Microsoft Graph!. Uruchom polecenie Get-EntraContext , aby sprawdzić, czy uwierzytelniasz się przy użyciu metody tylko dla aplikacji. Dane wyjściowe powinny wyglądać podobnie do poniższych.

ClientId              : YOUR_APP_ID
TenantId              : YOUR_TENANT_ID
CertificateThumbprint :
Scopes                : {Group.Read.All, User.Read.All}
AuthType              : AppOnly
CertificateName       : YOUR_CERT_SUBJECT
Account               :
AppName               : {Your Awesome Application Name Here}
ContextScope          : Process
Environment           : Global

Użyj poświadczeń klienta i klucza tajnego

Udzielanie poświadczeń klienta służy do uwierzytelniania i autoryzacji aplikacji w celu uzyskiwania dostępu do zasobów we własnym imieniu. Obsługę poświadczeń klucza tajnego klienta dodano przez dodanie parametru -ClientSecretCredential do Connect-Entra.

# Define the Application (Client) ID and Secret
$applicationClientId = '<application(client)ID>' # Application (Client) ID
$applicationClientSecret = '<secret.value>' # Application Secret Value
$tenantId = 'Tenant_Id' # Tenant ID

# Convert the Client Secret to a Secure String
$secureClientSecret = ConvertTo-SecureString -String $applicationClientSecret -AsPlainText -Force

# Create a PSCredential Object Using the Client ID and Secure Client Secret
$clientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $applicationClientId, $secureClientSecret

# Connect to Microsoft Graph Using the Tenant ID and Client Secret Credential
Connect-Entra -TenantId $tenantId -ClientSecretCredential $clientSecretCredential

Aby utworzyć lub dodać wpis tajny klienta, użyj polecenia New-EntraServicePrincipalPasswordCredential lub zobacz: Dodaj wpis tajny klienta w centrum administracyjnym Microsoft Entra.

Note

Zaleca się używanie programu PowerShell 7 lub nowszego podczas korzystania z metody uwierzytelniania poświadczeń wpisów tajnych klienta.

Korzystanie z tożsamości zarządzanej

Typowym wyzwaniem podczas pisania skryptów automatyzacji jest zarządzanie wpisami tajnymi, poświadczeniami, certyfikatami i kluczami używanymi do zabezpieczania komunikacji między usługami. Wyeliminuj konieczność zarządzania poświadczeniami, zezwalając modułowi na uzyskiwanie tokenów dostępu dla zasobów Azure chronionych przez Microsoft Entra ID. Platforma Azure zarządza tożsamością i nie wymaga od Ciebie tworzenia ani zmieniania żadnych kluczy tajnych.

  • Tożsamość zarządzana przypisana przez system — używa automatycznej tożsamości zarządzanej w wystąpieniu usługi. Tożsamość jest powiązana z cyklem życia wystąpienia usługi.

    Connect-Entra -Identity
    
  • Tożsamość zarządzana przypisana przez użytkownika — używa tożsamości zarządzanej utworzonej przez użytkownika jako autonomicznego zasobu Azure.

    Connect-Entra -Identity -ClientId 'User_Assigned_Managed_identity_Client_Id'