Notatka
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: ✔️ udostępnienia plików SMB
W tym artykule wyjaśniono, jak można używać zarządzanych tożsamości, aby umożliwić maszynom wirtualnym (VM) z systemami Windows i Linux dostęp do udziałów plików Azure SMB przy użyciu uwierzytelniania opartego na tożsamościach z Microsoft Entra ID.
Tożsamość zarządzana to tożsamość w Microsoft Entra ID, która Azure automatycznie zarządza. Zazwyczaj tożsamości zarządzane są używane podczas tworzenia aplikacji w chmurze w celu zarządzania poświadczeniami uwierzytelniania w usługach Azure. Azure Files obsługuje zarówno tożsamości zarządzane aplikacją, jak i dostęp oparty na tożsamości użytkownika końcowego na tym samym koncie pamięci. Aplikacje i użytkownicy są niezależnie uwierzytelniani za pośrednictwem Microsoft Entra ID i autoryzowane za pośrednictwem modelu uprawnień udostępnionych.
Pod koniec tego artykułu tworzysz konto pamięci masowej, które jest gotowe do dostępu z zarządzaną tożsamością. Dowiesz się również, jak utworzyć tożsamość zarządzaną dla maszyny wirtualnej i wygenerować dla niej token OAuth. Następnie należy zainstalować udział plików przy użyciu uwierzytelniania i autoryzacji opartej na tożsamości zarządzanej. Użycie tożsamości zarządzanej eliminuje konieczność używania klucza konta magazynu.
Dlaczego warto uwierzytelnić się przy użyciu tożsamości zarządzanej?
Ze względów bezpieczeństwa unikaj używania kluczy konta pamięci do dostępu do udostępniania plików. Po przypisaniu tożsamości zarządzanej do maszyny wirtualnej lub użyciu tożsamości aplikacji można użyć tej tożsamości do uwierzytelniania w Azure Files.
Korzyści obejmują:
Zwiększone zabezpieczenia: brak zależności od kluczy konta przechowywania w celu zarządzania lub ujawniania.
Uproszczone zarządzanie: nie jest wymagana żadna rotacja kluczy.
Szczegółowa kontrola dostępu: dostęp oparty na rolach na poziomie tożsamości.
Przyjazna dla automatyzacji: Łatwa do zintegrowania z potokami ciągłej integracji i dostarczania (CI/CD), obciążeniami Azure Kubernetes Service (AKS) oraz aplikacjami klientów.
Opłacalne: brak dodatkowych kosztów magazynowania dla tożsamości zarządzanych.
Tożsamości zarządzane przypisane przez system i przypisane przez użytkownika
Azure udostępnia dwa typy tożsamości zarządzanych: przypisany system i przypisany użytkownik.
Tożsamość zarządzana przypisana przez system jest ograniczona do jednej na zasób i jest powiązana z cyklem życia zasobu. Uprawnienia do zarządzanej tożsamości można udzielić, używając kontroli dostępu opartej na rolach w Azure (Azure RBAC). Tożsamość zarządzana jest uwierzytelniana za pomocą Microsoft Entra ID, więc nie ma potrzeby przechowywania poświadczeń w kodzie.
Tożsamości zarządzane przypisane przez użytkownika umożliwiają zasobom Azure do uwierzytelniania w usługach w chmurze bez przechowywania poświadczeń w kodzie. Ten typ tożsamości zarządzanej jest tworzony jako autonomiczny zasób Azure z własnym cyklem życia. Pojedynczy zasób, taki jak maszyna wirtualna, może używać wielu tożsamości zarządzanych przypisanych przez użytkownika. Ponadto wiele maszyn wirtualnych może współużytkować jedną tożsamość zarządzaną przypisaną przez użytkownika.
Mimo że można skonfigurować tożsamości zarządzane przypisane przez użytkownika i przypisane przez system na jednej maszynie wirtualnej, zalecamy użycie jednej lub drugiej.
Wymagania wstępne
W tym artykule założono, że posiadasz subskrypcję Azure z uprawnieniami do tworzenia kont magazynu oraz przypisywania ról RBAC w Azure. Aby przypisać role, musisz mieć uprawnienia do zapisu przypisania ról (Microsoft.Authorization/roleAssignments/write) w wymaganym zakresie.
Klienci, którzy muszą uwierzytelnić się przy użyciu tożsamości zarządzanej, nie powinni być przyłączani do żadnej domeny.
Ustawienia bezpieczeństwa SMB konta magazynowego muszą umożliwiać uwierzytelnianie Kerberos. Jeśli używasz niestandardowego profilu bezpieczeństwa SMB, sprawdź, czy Kerberos jest wybrany w sekcji Metody uwierzytelniania. Włączenie Managed Identity for SMB (SMBOAuth) nie włącza ani nie waliduje tego osobnego ustawienia. Instrukcje dostępne są w ustawieniach bezpieczeństwa SMB.
Skonfiguruj właściwości dostępu tożsamości zarządzanej na koncie magazynowym.
Aby uwierzytelnić tożsamość zarządzaną, należy włączyć właściwość SMBOAuth na koncie usługi magazynowej, które zawiera udział plików w Azure, do którego chcesz uzyskać dostęp. W tym celu zalecamy utworzenie nowego konta magazynu, chociaż można użyć istniejącego konta magazynu.
Aby włączyć SMBOAuth tę właściwość na swoim koncie pamięci, użyj portalu Azure, Azure PowerShell lub Azure CLI. Aby uzyskać instrukcje, wybierz odpowiednią kartę.
Aby utworzyć nowe konto składowania z włączoną właściwością SMBOAuth przy użyciu portalu Azure, wykonaj następujące kroki. Na karcie Zaawansowane zaznacz pole wyboru Włącz zarządzaną tożsamość dla SMB.
Alternatywnie można włączyć właściwość SMBOAuth na istniejącym koncie magazynowym.
Przejdź do konta magazynowego. W menu usługi w obszarze Ustawienia wybierz pozycję Konfiguracja. W obszarze Tożsamość zarządzana dla protokołu SMB wybierz pozycję Włączone, a następnie wybierz pozycję Zapisz.
Następnie utwórz udział plików SMB na koncie storage.
Konfigurowanie tożsamości zarządzanej
Można używać zarządzanych tożsamości w systemie Windows lub Linux. Wybierz system operacyjny na początku tego artykułu i postępuj zgodnie z instrukcjami.
Kroki włączania opisane tutaj dotyczą maszyn wirtualnych Azure. Jeśli chcesz włączyć tożsamość zarządzaną na maszynach z systemem Windows, które nie działają na platformie Azure (lokalnie lub w innej chmurze), musisz dodać je do Azure Arc i przypisać im tożsamość zarządzaną. Można również uwierzytelnić się przy użyciu tożsamości aplikacji zamiast tożsamości zarządzanej na maszynie wirtualnej lub urządzeniu z systemem Windows.
Włącz tożsamość zarządzaną na maszynie wirtualnej Azure
Tożsamość zarządzana może być przypisana przez system lub przypisana przez użytkownika. Jeśli maszyna wirtualna ma tożsamości zarządzane przypisane przez system i przypisane przez użytkownika, Azure domyślnie wybiera tożsamości przypisane przez system. Przypisz tylko jeden, aby uzyskać najlepsze wyniki.
Włącz tożsamość zarządzaną przypisaną przez system
Wykonaj następujące kroki, aby włączyć tożsamość zarządzaną przypisaną przez system na maszynie wirtualnej Windows uruchomionej w Azure:
Zaloguj się do portalu Azure i utwórz maszynę wirtualną Windows. Maszyna wirtualna musi uruchomić Windows Server 2019 lub nowszą dla wersji serwera lub dowolnej wersji klienta Windows. Zobacz Utwórz maszynę wirtualną Windows w portalu Azure.
Tożsamość zarządzaną przypisaną przez system można włączyć podczas tworzenia maszyny wirtualnej na karcie Zarządzanie .
Włącz tożsamość zarządzaną przypisaną przez użytkownika
Zaloguj się do portalu Azure i wykonaj kroki, aby utwórz tożsamość zarządzaną przypisaną przez użytkownika.
Przejdź do właśnie utworzonej tożsamości zarządzanej przypisanej przez użytkownika i skopiuj wartość Identyfikator klienta . Ta wartość będzie potrzebna później.
Przypisz wbudowaną rolę RBAC do tożsamości zarządzanej lub tożsamości aplikacji
Po włączeniu tożsamości zarządzanej przyznaj wszystkie niezbędne uprawnienia za pośrednictwem Azure RBAC. Aby przypisać role, zaloguj się jako użytkownik z uprawnieniami do przypisywania ról w określonym zakresie.
Wykonaj następujące kroki, aby przypisać wbudowaną rolę RBAC Azure Storage File Data SMB MI Admin. Ta rola zapewnia dostęp na poziomie administratora dla tożsamości zarządzanych w plikach i katalogach w Azure Files.
Przejdź do konta storage zawierającego udział plików, który chcesz zainstalować przy użyciu tożsamości zarządzanej. W menu usługi wybierz pozycję Access Control (IAM).
W sekcji Przyznaj dostęp do tego zasobu wybierz Dodaj przypisanie do roli.
Na karcie Rola w obszarze Role funkcji zadania wyszukaj i wybierz Storage File Data SMB MI Admin. Następnie wybierz Dalej.
Na karcie Members w sekcji Przypisz dostęp do wybierz Zarządzana tożsamość dla maszyny wirtualnej lub tożsamości Azure Arc. W przypadku tożsamości aplikacji wybierz pozycję Użytkownik, grupa lub jednostka usługi.
W obszarze Członkowie wybierz pozycję + Wybierz członków.
W przypadku maszyn wirtualnych Azure lub tożsamości Azure Arc wybierz tożsamość zarządzaną dla maszyny wirtualnej lub urządzenia Windows. Aby znaleźć tożsamość aplikacji, wyszukaj ją i wybierz. Naciśnij przycisk Wybierz.
Sprawdź, czy tożsamość zarządzana lub tożsamość aplikacji jest wyświetlana w obszarze Członkowie. Wybierz Dalej.
Wybierz pozycję Przegląd i przypisz aby dodać przypisanie roli do konta storage.
Dodawanie tożsamości zarządzanej przypisanej przez użytkownika do maszyny wirtualnej
Jeśli utworzono tożsamość zarządzaną przypisaną przez użytkownika, wykonaj następujące kroki, aby dodać ją do maszyny wirtualnej:
Przejdź do maszyny wirtualnej. W menu usługi w obszarze Zabezpieczenia wybierz pozycję Tożsamość.
Wybierz kartę Użytkownik przypisany, a następnie wybierz pozycję Dodaj zarządzaną tożsamość przypisaną użytkownikowi. Wybierz utworzoną tożsamość zarządzaną, a następnie wybierz pozycję Dodaj.
Aby skonfigurować tożsamość zarządzaną na maszynie wirtualnej z systemem Linux uruchomionej w Azure, wykonaj następujące kroki. Maszyna wirtualna musi działać Azure Linux 3.0, Ubuntu 22.04, Ubuntu 24.04, RHEL 9.6 lub SLES 15 SP6+.
Włącz tożsamość zarządzaną na maszynie wirtualnej Azure
Tożsamość zarządzana może być przypisana przez system lub przypisana przez użytkownika. Jeśli maszyna wirtualna ma tożsamości zarządzane przypisane przez system i przypisane przez użytkownika, Azure domyślnie wybiera tożsamości przypisane przez system. Przypisz tylko jeden, aby uzyskać najlepsze wyniki.
Włącz tożsamość zarządzaną przypisaną przez system
Zaloguj się do portalu Azure.
Tożsamość zarządzaną przypisaną przez system można włączyć podczas tworzenia maszyny wirtualnej na karcie Management. Zobacz Utwórz maszynę wirtualną z systemem Linux w portalu Azure.
Włącz tożsamość zarządzaną przypisaną przez użytkownika
Zaloguj się do portalu Azure i wykonaj kroki, aby utwórz tożsamość zarządzaną przypisaną przez użytkownika.
Przejdź do właśnie utworzonej tożsamości zarządzanej przypisanej przez użytkownika i skopiuj wartość Identyfikator klienta . Ta wartość będzie potrzebna później.
Przypisywanie wbudowanej roli RBAC do tożsamości zarządzanej
Przejdź do konta storage zawierającego udział plików, który chcesz zainstalować przy użyciu tożsamości zarządzanej. W menu usługi wybierz pozycję Access Control (IAM).
W sekcji Przyznaj dostęp do tego zasobu wybierz Dodaj przypisanie do roli.
Na karcie Rola w obszarze Role funkcji zadania wyszukaj i wybierz Storage File Data SMB MI Admin. Następnie wybierz Dalej.
Na karcie Members w obszarze Przypisz dostęp do wybierz pozycję Zarządzana tożsamość.
W obszarze Członkowie wybierz pozycję + Wybierz członków. Zostanie wyświetlone okienko Wybierz tożsamości zarządzane .
W obszarze Tożsamość zarządzana wybierz tożsamość zarządzaną, a następnie wybierz pozycję Wybierz.
Sprawdź, czy tożsamość zarządzana znajduje się na liście Członkowie. Wybierz Dalej.
Wybierz pozycję Przegląd i przypisz aby dodać przypisanie roli do konta storage.
Dodawanie tożsamości zarządzanej przypisanej przez użytkownika do maszyny wirtualnej
Jeśli utworzono tożsamość zarządzaną przypisaną przez użytkownika, wykonaj następujące kroki, aby dodać ją do maszyny wirtualnej:
Przejdź do maszyny wirtualnej. W menu usługi w obszarze Zabezpieczenia wybierz pozycję Tożsamość.
Wybierz kartę Użytkownik przypisany, a następnie wybierz pozycję Dodaj zarządzaną tożsamość przypisaną użytkownikowi. Wybierz utworzoną tożsamość zarządzaną, a następnie wybierz pozycję Dodaj.
Przygotowywanie klienta do uwierzytelniania przy użyciu tożsamości zarządzanej
Kroki przygotowania systemu do zamontowania zasobu plików przy użyciu uwierzytelniania za pomocą tożsamości zarządzanej różnią się w przypadku klientów Windows i Linux. Komputerów z systemem Windows nie można dołączyć do domeny albo uwierzytelnianie za pomocą tożsamości zarządzanej nie będzie działać.
Aby przygotować swoją maszynę wirtualną lub urządzenie Windows do uwierzytelniania za pomocą tożsamości zarządzanej, upewnij się, że klient nie jest powiązany z domeną i postępuj zgodnie z tymi krokami.
Zaloguj się do maszyny wirtualnej lub urządzenia z przypisaną tożsamością zarządzaną i otwórz okno programu PowerShell jako administrator. Potrzebujesz programu PowerShell 5.1 lub nowszego lub programu PowerShell 7 lub nowszego.
Zainstaluj moduł programu PowerShell Azure Files SMB Managed Identity Client i zaimportuj go:
Install-Module AzFilesSmbMIClient Import-Module AzFilesSmbMIClientSprawdź bieżące zasady wykonywania programu PowerShell, uruchamiając następujące polecenie:
Get-ExecutionPolicy -ListJeśli polityka wykonywania w systemie
CurrentUsertoRestrictedlubUndefined, zmień ją naRemoteSigned. Jeśli zasady wykonywania toRemoteSigned, ,DefaultAllSigned,BypasslubUnrestricted, możesz pominąć ten krok.Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Odświeżanie poświadczeń uwierzytelniania
Przed zainstalowaniem udziału plików przy użyciu tożsamości zarządzanej odśwież poświadczenia uwierzytelniania i określ punkt końcowy konta storage. Aby skopiować identyfikator URI konta magazynu, przejdź do konta magazynu w portalu Azure, a następnie wybierz pozycję Ustawienia>Punkty końcowe z menu usługi. Pamiętaj, aby skopiować cały identyfikator URI, w tym ukośnik końcowy: https://<storage-account-name>.file.core.windows.net/.
W przypadku tożsamości zarządzanej przypisanej przez system uruchom następujące polecenie, aby uzyskać token OAuth, wstawić go do pamięci podręcznej Protokołu Kerberos i automatycznie odświeżyć, gdy token jest bliski wygaśnięcia. Opcjonalnie można pominąć refresh.
AzFilesSmbMIClient.exe refresh --uri https://<storage-account-name>.file.core.windows.net/
W przypadku tożsamości zarządzanej przypisanej przez użytkownika należy określić identyfikator klienta. Zastąp <client-id> identyfikatorem klienta tożsamości zarządzanej.
AzFilesSmbMIClient.exe refresh --uri https://<storage-account-name>.file.core.windows.net/ --clientId <client-id>
Wskazówka
Aby wyświetlić pełne informacje o użyciu i przykłady, uruchom plik wykonywalny bez żadnych parametrów: AzFilesSmbMIClient.exe.
Aby przygotować maszynę wirtualną z systemem Linux do uwierzytelniania przy użyciu tożsamości zarządzanej, wykonaj następujące kroki.
Pobieranie i instalowanie pakietów uwierzytelniania
Kroki lokalizacji i instalacji pakietu różnią się w zależności od dystrybucji systemu Linux.
Azure Linux 3.0
Uruchom następujące polecenia, aby zainstalować azfilesauth w systemie Azure Linux 3.0:
sudo tdnf update
sudo tdnf install azfilesauth
RHEL 9.6+
Uruchom następujące polecenia, aby zainstalować azfilesauth na RHEL 9.6+:
curl -sSL -O https://packages.microsoft.com/config/$(source /etc/os-release && echo "$ID/${VERSION_ID%%.*}")/packages-microsoft-prod.rpm
sudo rpm -i packages-microsoft-prod.rpm
rm packages-microsoft-prod.rpm
sudo dnf update
sudo dnf install -y azfilesauth
Czasami system RHEL może zablokować dostęp jądra upcall do pliku pamięci podręcznej poświadczeń. Jeśli wystąpi awaria, zobacz potencjalne przyczyny w /var/log/messages.
System RHEL domyślnie używa trwałych poświadczeń lub pamięci podręcznej KCM. Możesz przełączyć się do pamięci podręcznej opartej na plikach dla programu azfilesauth:
sudo tee /etc/krb5.conf.d/00-azfilesauth.conf > /dev/null <<EOF
[libdefaults]
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
EOF
SLES 15 SP6+
Uruchom następujące polecenia, aby zainstalować azfilesauth na systemie SLES 15 SP6+:
curl -sSL -O https://packages.microsoft.com/config/sles/15/packages-microsoft-prod.rpm
sudo rpm -i packages-microsoft-prod.rpm
rm packages-microsoft-prod.rpm
sudo zypper refresh
sudo zypper install -y azfilesauth
System SLES 15 SP6+ domyślnie używa trwałych poświadczeń lub pamięci podręcznej KCM. Możesz przełączyć się do pamięci podręcznej opartej na plikach dla programu azfilesauth:
sudo tee /etc/krb5.conf.d/00-azfilesauth.conf > /dev/null <<EOF
[libdefaults]
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
EOF
Ubuntu 22.04
Uruchom następujące polecenia, aby zainstalować azfilesauth w systemie Ubuntu 22.04.
curl -sSL -O https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
# the above steps update the sources.list
sudo apt-get update
sudo apt-get install -y azfilesauth
Ubuntu 24.04
Uruchom następujące polecenia, aby zainstalować azfilesauth na Ubuntu 24.04:
curl -sSL -O https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
# the above steps update the sources.list
sudo apt-get update
sudo apt-get install -y azfilesauth
Konfigurowanie uwierzytelniania tożsamości zarządzanej
Dostępne są dwie opcje konfigurowania uwierzytelniania w systemie Linux:
- Użyj tożsamości zarządzanej maszyny wirtualnej: wybierz tę opcję, jeśli maszyna wirtualna ma przypisaną tożsamość zarządzaną.
- Podaj token OAuth bezpośrednio: wybierz tę opcję, jeśli samodzielnie zarządzasz tokenami OAuth.
Opcja 1. Używanie tożsamości zarządzanej maszyny wirtualnej
Do skonfigurowania uwierzytelniania można użyć tożsamości zarządzanej przypisanej przez system lub przypisanej przez użytkownika.
Jeśli maszyna wirtualna ma tożsamość zarządzaną przypisaną przez użytkownika, uruchom następujące polecenie, aby pobrać token z usługi Azure Instance Metadata Service (IMDS) i zapisać go automatycznie. Zastąp <storage-account-name> nazwą konta magazynowego. Zastąp znacznik <client-id> identyfikatorem klienta tożsamości zarządzanej. Jeśli nie masz identyfikatora klienta, przejdź do tożsamości zarządzanej w portalu Azure i skopiuj identyfikator klienta.
sudo azfilesauthmanager set https://<storage-account-name>.file.core.windows.net --imds-client-id <client-id>
Jeśli maszyna wirtualna ma tożsamość zarządzaną przypisaną przez system, użyj --system flagi i nie podaj identyfikatora klienta:
sudo azfilesauthmanager set https://<storage-account-name>.file.core.windows.net --system
Sprawdź, czy bilet został prawidłowo utworzony:
sudo azfilesauthmanager list
Opcja 2. Bezpośrednie podanie tokenu OAuth
Jeśli samodzielnie zarządzasz tokenami, podaj token OAuth bezpośrednio. Wartość aud (odbiorcy) tokenu musi być https://storage.azure.com (bez ukośnika końcowego) i nie https://storage.azure.com/, aby zainstalować udział plików.
Uruchom następujące polecenia. Zastąp <storage-account-name> i <access-token> wartościami.
# Insert the token into your credential cache
sudo azfilesauthmanager set https://<storage-account-name>.file.core.windows.net <access-token>
# Verify the ticket is properly stored
sudo azfilesauthmanager list
Instalowanie udziału plików platformy Azure
Teraz możesz zamontować udostępniony zasób plików w systemie Windows lub Linux bez użycia klucza konta magazynu.
Na komputerach z systemem Windows możesz uzyskać bezpośredni dostęp do udziału plików Azure przy użyciu ścieżki UNC, wprowadzając następującą ścieżkę do Eksploratora plików Windows. Zastąp <storage-account-name> nazwą konta storage i <file-share-name> nazwą udziału plików.
\\<storage-account-name>.file.core.windows.net\<file-share-name>
Aby uzyskać więcej informacji, zobacz Mount SMB Azure udział plików w Windows.
Uruchom następujące polecenie, aby zamontować zasób plików z zalecanymi opcjami montowania. Zastąp <storage-account-name> nazwą konta storage i <file-share-name> nazwą udziału plików. Identyfikator poświadczeń można znaleźć w następującym pliku konfiguracji: cat /etc/azfilesauth/config.yaml. W przypadku tożsamości zarządzanej przypisanej przez użytkownika dołącz identyfikator klienta tożsamości zarządzanej, używając opcji montowania username=<client-id>. W przypadku tożsamości zarządzanej przypisanej przez system pomiń opcję username=<client-id> montowania.
sudo mount -t cifs //<storage-account-name>.file.core.windows.net/<file-share-name> /mnt/smb -o sec=krb5,cruid=<credential-id>,username=<client-id>,dir_mode=0755,file_mode=0755,serverino,nosharesock,mfsymlinks,actimeo=30
Sprawdź, czy montowanie zakończyło się pomyślnie:
ls -la /mnt/smb
Aby uzyskać więcej informacji, zobacz Mount SMB Azure file shares on Linux clients.
Odświeżanie poświadczeń
Aby zapobiec przerwom w dostępie, okresowo odświeżaj dane uwierzytelniające. Usługa odświeżania automatycznie wykrywa i odnawia poświadczenia zgodnie z potrzebami.
Po zainstalowaniu udziału plików po raz pierwszy uruchom usługę odświeżania:
sudo systemctl start azfilesrefresh
Aby upewnić się, że usługa jest uruchamiana automatycznie przy każdym rozruchu:
sudo systemctl enable --now azfilesrefresh
Automatyczne odświeżanie poświadczeń wymaga tożsamości zarządzanej przypisanej do maszyny wirtualnej. Jeśli dostarczasz token OAuth bezpośrednio, musisz odświeżyć poświadczenia ręcznie, używając polecenia opisanego azfilesauthmanager set w Configure managed identity authentication lub programatycznie za pomocą API współdzielonej biblioteki.
Rozwiązywanie problemów
Jeśli podczas montowania przy użyciu tożsamości zarządzanej pojawia się monit o podanie nazwy użytkownika i hasła, najpierw sprawdź, czy ustawienia zabezpieczeń SMB konta magazynu umożliwiają uwierzytelnianie Kerberos. Jeśli Kerberos jest już włączony, postępuj zgodnie z krokami rozwiązywania problemów dla swojego systemu operacyjnego.
Kroki rozwiązywania problemów różnią się w przypadku klientów Windows i Linux.
Jeśli podczas instalowania zasobu sieciowego na systemie Windows wystąpią problemy, wykonaj następujące kroki, aby włączyć szczegółowe rejestrowanie i zebrać informacje diagnostyczne:
Na klientach Windows użyj Edytora rejestru, aby ustawić poziom Data dla verbosity
0x00000004(4) dlaComputer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Azure\Storage\Files\SmbAuth.Spróbuj ponownie zainstalować udział i odtwórz błąd.
Teraz powinien istnieć plik o nazwie
AzFilesSmbMILog.log. Wyślij plik dziennika do zespołu Azure Files w celu uzyskania pomocy.
Jeśli podczas montowania udziału plików w systemie Linux wystąpią problemy, wykonaj te kroki diagnostyczne dla protokołu SMB.
Opcje instalacji i integracji biblioteki klienta
Poniższe informacje są przeznaczone dla deweloperów, którzy muszą zintegrować tożsamości zarządzane z aplikacjami.
W przypadku deweloperów, którzy muszą zintegrować tożsamości zarządzane z aplikacjami Windows, dostępnych jest wiele metod implementacji. Wybrane podejście zależy od architektury i wymagań aplikacji.
Integracja zestawu zarządzanego: pakiet NuGet
W przypadku aplikacji .NET pakiet NuGet Microsoft.Azure.AzFilesSmbMI zawiera zestaw zarządzany (Microsoft.Azure.AzFilesSmbMI.dll), który zapewnia bezpośredni dostęp do funkcji uwierzytelniania OAuth dla protokołu SMB. Użyj tego podejścia dla języka C# i innych aplikacji opartych na .NET.
Aby zainstalować zestaw, użyj Install-Package Microsoft.Azure.AzFilesSmbMI -version 1.2.3168.94.
Natywna integracja bibliotek DLL
W przypadku aplikacji natywnych, które wymagają bezpośredniego dostępu do interfejsu API, AzFilesSmbMIClient jest dostępna jako native DLL. Ta opcja jest szczególnie przydatna w przypadku aplikacji lub systemów C/C++, które wymagają integracji niższego poziomu. Zobacz implementację Windows i dokumentację API (natywny plik nagłówka).
Metody natywnego interfejsu API
Natywna biblioteka DLL eksportuje następujące podstawowe metody zarządzania poświadczeniami:
extern "C" AZFILESSMBMI_API HRESULT SmbSetCredential(
_In_ PCWSTR pwszFileEndpointUri,
_In_ PCWSTR pwszOauthToken,
_In_ PCWSTR pwszClientID,
_Out_ PDWORD pdwCredentialExpiresInSeconds
);
extern "C" AZFILESSMBMI_API HRESULT SmbRefreshCredential(
_In_ PCWSTR pwszFileEndpointUri,
_In_ PCWSTR pwszClientID
);
extern "C" AZFILESSMBMI_API HRESULT SmbClearCredential(
_In_ PCWSTR pwszFileEndpointUri
);
Deweloperzy systemu Linux mogą używać biblioteki udostępnionej, która jest automatycznie instalowana z pakietem azfilesauth . Możesz łączyć się z biblioteką w aplikacjach C/C++, aby uzyskać bezpośredni dostęp do interfejsu API.
Pamiętaj, aby uwzględnić nagłówek public.
Aby uzyskać więcej informacji, zobacz projekt AzFilesAuthenticator.
Metody interfejsu API wspólnej biblioteki
Biblioteka udostępniona eksportuje następujące podstawowe metody zarządzania poświadczeniami:
#ifdef __cplusplus
extern "C" {
#endif
int extern_smb_set_credential_oauth_token(char* file_endpoint_uri,
char* auth_token,
unsigned int* credential_expires_in_seconds);
int extern_smb_clear_credential(char* file_endpoint_uri);
int extern_smb_list_credential(bool is_json);
const char* extern_smb_version();
#ifdef __cplusplus
}
#endif
Opis interfejsu API
W poniższej tabeli wymieniono polecenia interfejsu API i ich użycie. Zwracane wartości są zgodne ze standardowymi konwencjami języka C (zero dla powodzenia, nonzero w przypadku błędów).
| Polecenie | Opis |
|---|---|
extern_smb_set_credential_oauth_token() |
Ustawia poświadczenia tokenu OAuth dla określonego punktu końcowego pamięci. |
extern_smb_clear_credential() |
Usuwa przechowywane poświadczenia dla punktu końcowego przechowywania. |
extern_smb_list_credential() |
Wyświetla listę wszystkich przechowywanych poświadczeń. |
extern_smb_version() |
Zwraca ciąg azfilesauth wersji biblioteki. |