Włącz uwierzytelnianie Microsoft Entra Kerberos dla Azure Files w systemie macOS z użyciem funkcji Platform SSO (wersja zapoznawcza)

Dotyczy: ✔️ udostępnienia plików SMB

Ten artykuł wyjaśnia, jak skonfigurować uwierzytelnianie Kerberos Microsoft Entra dla usługi Azure Files na urządzeniach macOS za pomocą macOS Platform Single Sign-On (PSSO). Korzystając z tej konfiguracji, urządzenia z systemem macOS przyłączone do Microsoft Entra mogą bezproblemowo uzyskiwać dostęp do udziałów plików SMB platformy Azure przy użyciu opartych na chmurze biletów Kerberos Ticket Granting Ticket (TGT), bez monitowania użytkowników o podanie poświadczeń.

Important

Microsoft Entra Kerberos authentication for Azure Files on macOS is in public preview. Terminy prawne dotyczące funkcji Azure w wersji zapoznawczej można znaleźć w Dodatkowych warunkach użytkowania usługi Microsoft Azure Preview.

Platform SSO systemu macOS integruje urządzenia Mac z usługą Microsoft Entra ID i umożliwia użytkownikom logowanie przy użyciu poświadczeń Microsoft Entra ID za pomocą klucza sprzętowo powiązanego, karty inteligentnej lub hasła Microsoft Entra ID. Oprócz podstawowego tokenu odświeżania (PRT) funkcji logowania jednokrotnego platformy Microsoft Entra ID wystawia bilet Kerberos TGT w chmurze, który jest udostępniany natywnemu stosowi Kerberos w systemie macOS za pośrednictwem mapowania TGT w ramach PSSO. Lokalne Kerberos TGT można również uzyskać, gdy klient jest skonfigurowany (na przykład przez Intune) do zapytań do lokalnych kontrolerów domeny. Ta konfiguracja umożliwia bezproblemowe logowanie jednokrotne do usługi Azure Files bez monitowania użytkowników o interakcyjne poświadczenia.

Aby uzyskać więcej informacji na temat uwierzytelniania Kerberos w usłudze Microsoft Entra dla Azure Files, zobacz Omówienie opcji uwierzytelniania opartego na tożsamości w usłudze Azure Files na potrzeby dostępu SMB.

Prerequisites

Przed skonfigurowaniem dostępu do usługi Azure Files w systemie macOS przy użyciu funkcji Platform SSO spełnij następujące wymagania wstępne.

Important

W tym artykule używa się Microsoft Intune do konfiguracji urządzeń. Możesz też użyć innych rozwiązań MDM do wdrożenia wymaganej konfiguracji, ale ten artykuł ich nie omawia. Aby uzyskać wsparcie dla rozwiązań MDM spoza Microsoft, skontaktuj się z kanałem wsparcia odpowiedniego dostawcy.

Wymagania dotyczące urządzeń z systemem macOS

  • macOS Tahoe 26.5 lub nowszy z zainstalowanymi najnowszymi aktualizacjami.
  • Microsoft Intune Portal firmy w wersji 5.2408.0 lub nowszej zainstalowanej na urządzeniu.
  • Urządzenie z systemem macOS musi być zarejestrowane w rozwiązaniu do zarządzania urządzeniami przenośnymi (MDM).
  • SSO platformy macOS musi być już skonfigurowane i wdrożone na urządzenia. Jeśli nie konfigurowałeś SSO platformy, zapoznaj się z dokumentacją SSO platformy po ogólne informacje lub przewodnikiem wdrożenia Intune z instrukcjami krok po kroku przed kontynuowaniem.

wymagania dotyczące Azure Files

Wymagania dotyczące uprawnień i narzędzi

Aby uruchomić skrypt aktualizacji rejestracji aplikacji opisany w tym artykule, potrzebne są następujące elementy:

  • PowerShell 5.1 lub PowerShell 7.x.
  • Moduł programu PowerShell Microsoft.Graph.Applications. Jeśli nie masz zainstalowanego tego modułu, uruchom polecenie Install-Module Microsoft.Graph.Applications -Scope CurrentUser.
  • Rola Administrator aplikacji lub Administrator globalny Microsoft Entra z uprawnieniem Application.ReadWrite.All interfejsu API Microsoft Graph.

Zaktualizuj identyfikator URI rejestracji aplikacji

Ten krok jest wymagany tylko wtedy, gdy masz istniejące udziały plikowe na koncie magazynu. Nie ma zastosowania do nowo utworzonych udziałów plików. Jeśli na koncie magazynu danych nie ma żadnych istniejących udziałów plików, możesz pominąć ten krok.

Aby klienci macOS mogli uzyskiwać dostęp do istniejących udziałów plików platformy Azure przy użyciu usługi Microsoft Entra Kerberos z funkcją Platform SSO, musisz zaktualizować identyfikator URI CIFS do postaci zapisanej małymi literami: cifs. W przeciwnym razie zamontowanie udziału plików się nie powiedzie.

Po włączeniu konta magazynu na potrzeby uwierzytelniania Microsoft Entra Kerberos system automatycznie rejestruje aplikację Microsoft Entra z identyfikatorami URI zawierającymi CIFS/<storageaccount>.file.core.windows.net prefiks. System macOS wymaga, aby prefiks cifs był zapisany małymi literami podczas montowania udziału plików SMB przy użyciu Kerberos. Jeśli jakikolwiek identyfikator URI zawiera prefiks wielkiej litery CIFS , klienci systemu macOS nie mogą uwierzytelniać i instalować udziału.

Aby zaktualizować identyfikator URI, użyj skryptu PowerShell dostępnego w repozytorium przykładów Azure Files. Skrypt aktualizuje identyfikatory URI w rejestracjach aplikacji z CIFS/<storageaccount>.file.core.windows.net do cifs/<storageaccount>.file.core.windows.net. Obsługuje zarówno pojedynczą aplikację, jak i aktualizacje zbiorcze za pośrednictwem pliku CSV i tworzy dziennik inspekcji wszystkich zmian.

Wskazówka

Uruchom skrypt z parametrem -WhatIf najpierw, aby wyświetlić podgląd zmian bez ich stosowania.

Aktualizowanie rejestracji pojedynczej aplikacji

Zastąp <app-registration-id> identyfikatorem rejestracji aplikacji dla Twojego konta magazynu. Aby znaleźć ten identyfikator, przejdź do Microsoft Entra ID>Rejestracje aplikacji>Wszystkie aplikacje i wyszukaj nazwę konta magazynu.

.\updateappmanifestazurefiles.ps1 -AppId "<app-registration-id>"

Aby wygenerować dziennik inspekcji, określ -OutputFile parametr:

.\updateappmanifestazurefiles.ps1 -AppId "<app-registration-id>" -OutputFile "C:\audit\output.csv"

Aktualizowanie wielu rejestracji aplikacji

Utwórz plik CSV z nagłówkiem kolumny AppId, zawierającym identyfikatory rejestracji aplikacji dla wszystkich kont magazynu, które chcesz zaktualizować. Przykład:

AppId
12345678-1234-1234-1234-123456789012
87654321-4321-4321-4321-210987654321

Następnie uruchom skrypt z parametrem -CsvFilePath :

$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$outputFile = "C:\audit\production_update_$timestamp.csv"
.\updateappmanifestazurefiles.ps1 -CsvFilePath "C:\apps.csv" -OutputFile $outputFile

Note

Skrypt przetwarza aplikacje w partiach 50, z opóźnieniem 100 ms między aplikacjami a 2-sekundowym opóźnieniem między partiami. Działa z maksymalnie 20 000 aplikacjami. W przypadku dużych uruchomień najpierw przetestuj niewielką próbkę i przejrzyj dziennik audytu przed uruchomieniem na dużą skalę.

Zweryfikowaj aktualizację identyfikatora URI

Po uruchomieniu skryptu sprawdź, czy URI identyfikatora zostało pomyślnie zaktualizowane.

  1. W portalu Azure otwórz Microsoft Entra ID.
  2. W obszarze Zarządzanie wybierz pozycję Rejestracje aplikacji>Wszystkie aplikacje.
  3. Wyszukaj nazwę konta magazynu i wybierz zgodną aplikację.
  4. W obszarze Zarządzanie wybierz pozycję Manifest.
  5. Potwierdź, że identyfikator URI jest teraz wyświetlany jako cifs/<storageaccount>.file.core.windows.net małymi literami.

Konfigurowanie profili MDM funkcji Kerberos SSO na macOS

Aby włączyć logowanie jednokrotne (SSO) Kerberos dla usługi Azure Files w systemie macOS, wdróż profil MDM dla funkcji Kerberos SSO, który kieruje system macOS do dzierżawy Cloud Kerberos w usłudze Microsoft Entra ID. Jeśli użytkownicy muszą również uzyskiwać dostęp do zasobów lokalnego środowiska Active Directory za pośrednictwem protokołu Kerberos, wdróż oddzielny profil dla lokalnej domeny Active Directory.

Note

Jeśli planujesz używać zarówno usługi Microsoft Entra ID Cloud Kerberos, jak i obszarów lokalnego Active Directory, wdróż profil lokalnego Active Directory przed profilem Microsoft Entra ID Cloud Kerberos.

Konfigurowanie profilu Kerberos w chmurze Microsoft Entra ID

Użyj następujących ustawień, aby skonfigurować profil zarządzania urządzeniami przenośnymi Microsoft Entra ID Cloud Kerberos. Zastąp wszystkie wartości zastępcze prawidłowymi wartościami w swojej dzierżawie.

Klucz konfiguracji Zalecana wartość Note
preferredKDCs kkdcp://login.microsoftonline.com/<tenantId>/kerberos Zastąp <tenantId> identyfikatorem dzierżawy Microsoft Entra. Tę wartość można znaleźć na stronie Przegląd w centrum administracyjnym Microsoft Entra.
PayloadOrganization Nazwa organizacji
Hosts .windows.net i windows.net
Realm KERBEROS.MICROSOFTONLINE.COM Musi być zapisane wielkimi literami.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>ExtensionData</key>
            <dict>
                <key>usePlatformSSOTGT</key>
                <true/>
                <key>performKerberosOnly</key>
                <true/>
                <key>preferredKDCs</key>
                <array>
                    <string>kkdcp://login.microsoftonline.com/<tenantId>/kerberos</string>
                </array>
            </dict>
            <key>ExtensionIdentifier</key>
            <string>com.apple.AppSSOKerberos.KerberosExtension</string>
            <key>Hosts</key>
            <array>
                <string>windows.net</string>
                <string>.windows.net</string>
            </array>
            <key>Realm</key>
            <string>KERBEROS.MICROSOFTONLINE.COM</string>
            <key>PayloadDisplayName</key>
            <string>Single Sign-On Extensions Payload for Microsoft Entra ID Cloud Kerberos</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.extensiblesso.00aa00aa-bb11-cc22-dd33-44ee44ee44ee</string>
            <key>PayloadType</key>
            <string>com.apple.extensiblesso</string>
            <key>PayloadUUID</key>
            <string>00aa00aa-bb11-cc22-dd33-44ee44ee44ee</string>
            <key>TeamIdentifier</key>
            <string>apple</string>
            <key>Type</key>
            <string>Credential</string>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string></string>
    <key>PayloadDisplayName</key>
    <string>Kerberos SSO Extension for macOS for Microsoft Entra ID Cloud Kerberos</string>
    <key>PayloadEnabled</key>
    <true/>
    <key>PayloadIdentifier</key>
    <string>11bb11bb-cc22-dd33-ee44-55ff55ff55ff</string>
    <key>PayloadOrganization</key>
    <string>Contoso</string>
    <key>PayloadRemovalDisallowed</key>
    <true/>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>11bb11bb-cc22-dd33-ee44-55ff55ff55ff</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

Zapisz tę konfigurację przy użyciu edytora tekstów z .mobileconfig rozszerzeniem pliku (na przykład cloud-kerberos.mobileconfig) po zaktualizowaniu wartości środowiska.

Note

Gdy ustawisz klucz usePlatformSSOTGT na true, rozszerzenie Kerberos używa biletu TGT z funkcji Platform SSO w tej samej dziedzinie. Po ustawieniu klucza performKerberosOnly na wartość true rozszerzenie nie sprawdza wygaśnięcia haseł ani zewnętrznych zmian haseł, ani nie pobiera katalogu macierzystego użytkownika. Skonfiguruj oba klucze we wszystkich wdrożonych profilach logowania jednokrotnego protokołu Kerberos.

Konfigurowanie profilu lokalna usługa Active Directory Kerberos (opcjonalnie)

Jeśli użytkownicy potrzebują również logowania jednokrotnego Kerberos do zasobów lokalnej usługi Active Directory, skonfiguruj oddzielny profil MDM dla lokalnej domeny AD. Zastąp wszystkie odwołania do contoso.com i Contoso prawidłowymi wartościami środowiska.

Klucz konfiguracji Zalecana wartość Note
Hosts .contoso.com i contoso.com Zastąp nazwą domeny lokalnej lub lasu lokalnego. Zachowaj poprzedni . znak przed nazwą domeny.
Realm CONTOSO.COM Zastąp ciąg nazwą obszaru lokalnego. Musi być zapisane wielkimi literami.
PayloadOrganization Nazwa organizacji
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>ExtensionData</key>
            <dict>
                <key>allowPasswordChange</key>
                <true/>
                <key>allowPlatformSSOAuthFallback</key>
                <true/>
                <key>performKerberosOnly</key>
                <true/>
                <key>pwReqComplexity</key>
                <true/>
                <key>syncLocalPassword</key>
                <false/>
                <key>usePlatformSSOTGT</key>
                <true/>
            </dict>
            <key>ExtensionIdentifier</key>
            <string>com.apple.AppSSOKerberos.KerberosExtension</string>
            <key>Hosts</key>
            <array>
                <string>.contoso.com</string>
                <string>contoso.com</string>
            </array>
            <key>Realm</key>
            <string>CONTOSO.COM</string>
            <key>PayloadDisplayName</key>
            <string>Single Sign-On Extensions Payload for On-Premises</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.extensiblesso.1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5</string>
            <key>PayloadType</key>
            <string>com.apple.extensiblesso</string>
            <key>PayloadUUID</key>
            <string>1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5</string>
            <key>TeamIdentifier</key>
            <string>apple</string>
            <key>Type</key>
            <string>Credential</string>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string></string>
    <key>PayloadDisplayName</key>
    <string>Kerberos SSO Extension for macOS for On-Premises</string>
    <key>PayloadEnabled</key>
    <true/>
    <key>PayloadIdentifier</key>
    <string>2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6</string>
    <key>PayloadOrganization</key>
    <string>Contoso</string>
    <key>PayloadRemovalDisallowed</key>
    <true/>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

Zapisz tę konfigurację przy użyciu edytora tekstów z .mobileconfig rozszerzeniem pliku (na przykład on-prem-kerberos.mobileconfig) po zaktualizowaniu wartości środowiska.

Wdrażanie profilów przy użyciu Microsoft Intune

Jeśli używasz usługi Intune jako rozwiązania MDM, wykonaj następujące kroki, aby wdrożyć każdy profil. Powtórz kroki dla każdego .mobileconfig pliku, który należy wdrożyć.

  1. Zaloguj się do centrum administracyjnego Microsoft Intune.
  2. Wybierz Urządzenia>Konfiguracja>Utwórz>Nową politykę.
  3. Wprowadź następujące właściwości:
    • Platforma: wybierz pozycję macOS.
    • Typ profilu: wybierz pozycję Szablony.
  4. Wybierz szablon Niestandardowy i kliknij Utwórz.
  5. W sekcji Podstawy wprowadź opisową nazwę zasady, taką jak macOS — logowanie jednokrotne Kerberos w chmurze dla usługi Azure Files, oraz opcjonalny opis. Wybierz Dalej.
  6. Wprowadź nazwę w polu Niestandardowa nazwa profilu konfiguracji.
  7. W obszarze Kanał wdrażania wybierz pozycję Kanał urządzenia.
  8. Wybierz ikonę folderu i prześlij plik .mobileconfig, który został wcześniej zapisany i dostosowany.
  9. Wybierz Dalej.
  10. W obszarze Tagi zakresu przypisz wszystkie odpowiednie tagi zakresu, a następnie wybierz pozycję Dalej.
  11. W obszarze Przypisania wybierz użytkowników lub grupy użytkowników, które otrzymają profil. Zasady platformy dotyczące logowania jednokrotnego (SSO) są przypisywane do użytkowników; nie przypisuj zasady do urządzeń.
  12. Wybierz pozycję Dalej, przejrzyj ustawienia, a następnie wybierz pozycję Utwórz.

Ustawienia zostaną zastosowane, gdy każde urządzenie następnym razem sprawdzi aktualizacje konfiguracji.

Przypisywanie uprawnień na poziomie udziału

Dla każdego udziału plików platformy Azure przypisz uprawnienia na poziomie udziału użytkownikom lub grupom, które wymagają dostępu. Po skonfigurowaniu uprawnień na poziomie udziału listy ACL systemu Windows dla poszczególnych plików i katalogów sterują szczegółowym dostępem.

Aby ustawić uprawnienia na poziomie udziału, postępuj zgodnie z instrukcjami w temacie Przypisywanie uprawnień na poziomie udziału do tożsamości.

Instalowanie udziału plików Azure w systemie macOS

Po wdrożeniu profilów logowania jednokrotnego Protokołu Kerberos i zaktualizowaniu rejestracji aplikacji użytkownicy systemu macOS mogą zainstalować Azure udział plików z programu Finder.

  1. Otwórz program Finder.

  2. W menu Przejdź wybierz pozycję Połącz z serwerem lub naciśnij klawisze Command+K.

  3. W polu Adres serwera wprowadź adres URL protokołu SMB dla udziału plików. Przekonwertuj ścieżkę UNC systemu Windows na adres URL SMB, zamieniając \\ na smb:// oraz każde \ na /. Przykład:

    smb://<storageaccountname>.file.core.windows.net/<sharename>
    
  4. Wybierz Połącz.

Jeśli konfiguracja jest poprawna, udział instaluje się bez monitowania użytkownika o poświadczenia.

Testuj i weryfikuj uwierzytelnianie Kerberos

Po zakończeniu konfiguracji sprawdź, czy bilety Kerberos są wydawane i czy dostęp do udziału sieciowego działa zgodnie z oczekiwaniami.

Zweryfikuj wystawianie biletów Kerberos

Na kliencie systemu macOS otwórz terminal i uruchom następujące polecenie:

app-sso platform -s

Upewnij się, że wynik zawiera bilet Kerberos dla obszaru Kerberos usługi Microsoft Entra ID Cloud, na co wskazuje wartość ticketKeyPathtgt_cloud. Jeśli wdrożono również lokalny profil Kerberos AD, powinien się także pojawić drugi bilet z ustawieniem ticketKeyPath na tgt_ad.

Sprawdź, czy port 445 jest otwarty:

nc -vz exampleaccount.file.core.windows.net 445

Zweryfikuj dostęp do udziału sieciowego

Spróbuj zamontować udostępnienie plików Azure z Findera, korzystając z kroków z poprzedniej sekcji. Udział sieciowy powinien zostać zamontowany bez monitu o poświadczenia interakcyjne. Jeśli zostanie wyświetlony monit o podanie poświadczeń, zobacz sekcję rozwiązywania problemów.

Rozwiązywanie problemów

Podczas montowania udziału plików użytkownicy są proszeni o podanie poświadczeń

Jeśli podczas nawiązywania połączenia z udziałem plików Azure zostanie wyświetlony monit o wprowadzenie poświadczeń, sprawdź następujące warunki:

  • Identyfikator URI rejestracji aplikacji został zaktualizowany z CIFS/ na cifs/ (małymi literami). Zobacz Aktualizuj identyfikator rejestracji aplikacji URI oraz Zweryfikowaj aktualizację identyfikatora URI.
  • Urządzenie z systemem macOS ma prawidłowy bilet TGT usługi Cloud Kerberos, co można potwierdzić, uruchamiając w aplikacji Terminal polecenie app-sso platform -s.
  • Profile MDM logowania jednokrotnego (SSO) protokołu Kerberos są stosowane na urządzeniu.
  • Zgoda administratora zostaje udzielona rejestracji aplikacji Azure Files w Microsoft Entra ID.
  • Użytkownik ma uprawnienia na poziomie udziału w udziale plików Azure.
  • Usługa MFA jest wyłączona dla aplikacji Microsoft Entra reprezentującej konto magazynu.

Błędy skryptów

Error Resolution
Nie określono ani AppId, ani CsvFilePath Określ dokładnie jeden z tych parametrów.
Nieprawidłowy plik CSV Upewnij się, że plik istnieje, jest zakodowany w formacie UTF-8, ma AppId nagłówek kolumny i nie zawiera zduplikowanych wpisów.
Błędy interfejs Graph API firmy Microsoft Sprawdź, czy masz uprawnienie Application.ReadWrite.All oraz rolę Administrator aplikacji lub Administrator globalny .
Nieprawidłowy identyfikator rejestracji aplikacji Upewnij się, że identyfikator rejestracji aplikacji istnieje w Twojej dzierżawie i jest dostępny. Wyczyść buforowane poświadczenia przy użyciu funkcji Disconnect-MgGraph i w razie potrzeby ponownie uwierzytelnij je.

Znane problemy

Dodatkowe menu rozszerzenia Kerberos SSO

Po wdrożeniu obsługi Kerberos SSO przy użyciu funkcji Platform SSO na pasku menu pojawi się dodatkowy element rozszerzenia Kerberos SSO systemu macOS. Użytkownicy nie muszą korzystać z paska menu dodatkowego, aby logowanie jednokrotne Kerberos działało. Funkcja SSO działa poprawnie, nawet jeśli dodatkowy element na pasku menu wyświetla komunikat „Nie zalogowano”. Możesz poinstruować użytkowników, aby zignorowali ten element na pasku menu.