Microsoft Entra ID ile yönetilen kimlikleri kullanarak SMB Azure dosya paylaşımlara erişme

Şunlar için geçerlidir: ✔️ SMB dosya paylaşımları

Bu makalede, managed identity kullanarak Windows ve Linux sanal makinelerinin (VM) Microsoft Entra ID kimlik tabanlı kimlik doğrulaması kullanarak SMB Azure dosya paylaşımlarına erişmesine nasıl izin verebileceğiniz açıklanır.

Microsoft Entra ID'de bir kimlik olan yönetilen kimlik, Azure tarafından otomatik olarak yönetilir. Genellikle, Azure hizmetlerinde kimlik doğrulaması için kimlik bilgilerini yönetmek üzere bulut uygulamaları geliştirirken yönetilen kimlikleri kullanırsınız. Azure Dosyalar artık hem uygulama tarafından yönetilen kimlikleri hem de aynı depolama hesabında son kullanıcı kimliği tabanlı erişimi destekliyor. Uygulamaların ve kullanıcıların kimlikleri Microsoft Entra ID aracılığıyla bağımsız olarak doğrulanır ve paylaşılan izinler modeliyle yetkilendirilir.

Bu kılavuzun sonunda, yönetilen kimlikle erişmeye hazır bir depolama hesabı oluşturacaksınız. Ayrıca vm için yönetilen kimlik oluşturmayı ve vm için OAuth belirteci oluşturmayı da öğrenirsiniz. Ardından yönetilen kimlik tabanlı kimlik doğrulaması ve yetkilendirme kullanarak bir dosya paylaşımı bağlarsınız. Yönetilen kimlik kullanmak, depolama hesabı anahtarı kullanma gereksinimini ortadan kaldırır.

Yönetilen kimlik kullanarak kimlik doğrulaması neden yapılır?

Güvenlik nedeniyle, bir dosya paylaşımına erişmek için depolama hesabı anahtarlarını kullanmanızı önermeyiz. Vm'ye yönetilen kimlik atadığınızda veya uygulama kimliği kullandığınızda, Azure Dosyalar için kimlik doğrulaması yapmak için bu kimliği kullanabilirsiniz.

Avantajlar şunlardır:

  • Gelişmiş güvenlik: Yönetim veya açığa çıkarma için depolama hesabı anahtarlarına bağımlılık yoktur.

  • Basitleştirilmiş yönetim: Anahtar döndürme gerekmez.

  • Ayrıntılı erişim denetimi: Kimlik düzeyinde rol tabanlı erişim.

  • Automation friendly: Sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hatları, Azure Kubernetes Service (AKS) iş yükleri ve müşteri uygulamalarıyla kolayca tümleştirebilirsiniz.

  • Uygun maliyetli: Yönetilen kimlikler için ek depolama maliyeti yoktur.

Sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimlikler

Azure iki tür yönetilen kimlik sağlar: sistem tarafından atanan ve kullanıcı tarafından atanan.

Sistem tarafından atanan yönetilen kimlik, kaynak başına bir kimlikle sınırlıdır ve kaynağın yaşam döngüsüne bağlıdır. Azure rol tabanlı erişim denetimi (Azure RBAC) kullanarak yönetilen kimliğe izin vekleyebilirsiniz. Yönetilen kimliğin kimliği Microsoft Entra ID ile doğrulanır, bu nedenle kodda herhangi bir kimlik bilgisi depolamanız gerekmez.

Kullanıcı tarafından atanan yönetilen kimlikler, Azure kaynakların kimlik bilgilerini kodda depolamadan bulut hizmetlerinde kimlik doğrulaması yapmasına olanak tanır. Bu tür yönetilen kimliği kendi yaşam döngüsüne sahip tek başına bir Azure kaynağı olarak oluşturursunuz. VM gibi tek bir kaynak, kullanıcı tarafından atanan birden çok yönetilen kimlik kullanabilir. Ayrıca, birden çok VM kullanıcı tarafından atanan tek bir yönetilen kimliği paylaşabilir.

Tek bir VM'de hem kullanıcı tarafından atanan hem de sistem tarafından atanan yönetilen kimlikleri yapılandırabilseniz de, birini veya diğerini kullanmanızı öneririz.

Önkoşullar

Bu makalede, depolama hesapları oluşturma ve Azure RBAC rolleri atama izinlerine sahip bir Azure aboneliğiniz olduğu varsayılır. Rolleri atamak için gerekli kapsamda rol atama yazma iznine (Microsoft.Authorization/roleAssignments/write) ihtiyacınız vardır.

Yönetilen kimlik kullanarak kimlik doğrulaması gereken istemcilerin herhangi bir etki alanına katılmaması gerekir.

Depolama hesabınızdaki yönetilen kimliğin erişim özelliğini konfigüre edin.

Yönetilen kimliğin kimliğini doğrulamak için, erişmek istediğiniz Azure dosya paylaşımını içeren depolama hesabında SMBOAuth özelliğini etkinleştirmeniz gerekir. Mevcut bir depolama hesabını kullanabilirsiniz ancak bu amaçla yeni bir depolama hesabı oluşturmanızı öneririz.

Depolama hesabınızda SMBOAuth özelliğini etkinleştirmek için Azure portalını veya Azure PowerShell kullanın. Yönergeler için uygun sekmeyi seçin.

Azure portalını kullanarak etkinleştirilmiş SMBOAuth özelliğiyle yeni bir depolama hesabı oluşturmak için se steps izleyin. Gelişmiş sekmesinde SMB için Yönetilen Kimliği Etkinleştir onay kutusunu seçin.

Azure portalı kullanarak yeni bir depolama hesabı oluştururken SMB için yönetilen bir kimliği etkinleştirmeyi gösteren ekran görüntüsü.

Alternatif olarak, mevcut bir depolama hesabında özelliğini etkinleştirebilirsiniz SMBOAuth .

Depolama hesabına gidin. Hizmet menüsünde, Ayarlar'ın altında Yapılandırma'yı seçin. SMB için Yönetilen Kimlik'in altında Etkin seçeneğini ve ardından Kaydet seçeneğini seçin.

Azure portalunu kullanarak mevcut bir depolama hesabında SMB için yönetilen kimliği etkinleştirmenin nasıl yapılacağını gösteren ekran görüntüsü.

Ardından storage hesabında bir SMB dosya paylaşımı oluşturun.

Yönetilen bir kimliği yapılandırın

Yönetilen kimlikleri Windows veya Linux ile kullanabilirsiniz. Bu makalenin başında işletim sisteminizi seçin ve yönergeleri izleyin.

Burada açıklanan etkinleştirme adımları Azure VM'ler içindir. Azure dışındaki Windows makinelerde (şirket içi veya başka bir bulutta) yönetilen kimliği etkinleştirmek istiyorsanız, onları Azure Arc'e katmanız ve bir yönetilen kimlik atamanız gerekir. Ayrıca, vm veya Windows cihazında yönetilen kimlik kullanmak yerine uygulama kimliği kullanarak da kimlik doğrulaması yapabilirsiniz.

Azure VM'de yönetilen kimliği etkinleştirme

Yönetilen kimlik , sistem veya kullanıcı tarafından atanabilir. VM'de hem sistem tarafından atanan hem de kullanıcı tarafından atanan yönetilen kimlikler varsa, Azure varsayılan olarak sistem tarafından atanan kimlikleri kullanır. En iyi sonuçlar için yalnızca bir tane atayın.

Sistem tarafından atanan yönetilen kimliği etkinleştirme

Azure çalıştıran bir Windows VM'de sistem tarafından atanan yönetilen kimliği etkinleştirmek için şu adımları izleyin:

  1. Azure portalında oturum açın ve bir Windows VM oluşturun. Vm'nizin sunucu sürümleri veya herhangi bir Windows istemci sürümü için Windows Server 2019 veya üzerini çalıştırması gerekir. bkz. Azure portalında Windows sanal makinesi oluşturma.

  2. Yönetim sekmesinde VM oluşturma sırasında sistem tarafından atanan yönetilen kimliği etkinleştirebilirsiniz.

    Azure portal'u kullanarak yeni bir Sanal Makine oluştururken sistem tarafından atanan yönetilen kimliği etkinleştirmeyi gösteren ekran görüntüsü.

Kullanıcı tarafından atanan yönetilen kimliği etkinleştirme

  1. Azure portalında oturum açın ve kullanıcı tarafından atanan yönetilen kimlik oluşturma adımlarını izleyin.

  2. Yeni oluşturduğunuz kullanıcı tarafından atanan yönetilen kimliğe gidin ve İstemci Kimliği değerini kopyalayın. Bu değer daha sonra gerekli olacaktır.

Yönetilen veya uygulama kimliğine yerleşik bir RBAC rolü atayın

Yönetilen kimliği etkinleştirdikten sonra Azure RBAC aracılığıyla gerekli tüm izinleri verin. Rolleri atamak için, gerekli kapsamda rol ataması yazma izni olan bir kullanıcı olarak oturum açın.

Yerleşik Azure RBAC rolünü Storage Dosya Verileri SMB MI Yöneticisi atamak için bu adımları izleyin. Bu rol, Azure Dosyalar dosya ve dizinlerdeki yönetilen kimlikler için yönetici düzeyinde erişim sağlar.

  1. Yönetilen kimlik kullanarak bağlamak istediğiniz dosya paylaşımını içeren storage hesabına gidin. Hizmet menüsünde Access Control (IAM) öğesini seçin.

  2. Bu kaynağa erişim altında Rol ataması ekle'yi seçin.

  3. Rol sekmesinde, İş işlevi rolleri'nin altında Depolama Dosyası Verileri SMB MI Yöneticisi'ni arayın ve seçin. Ardından İleri'yi seçin.

  4. Members sekmesindeki Assign access to altında VM veya Azure Arc kimlikleri için Managed identity öğesini seçin. Uygulama kimlikleri için Kullanıcı, grup veya hizmet sorumlusu seçin.

  5. Üyeler'in altında + Üye seç'i seçin.

  6. Azure VM'ler veya Azure Arc kimlikleri için VM'nizin veya Windows cihazınızın yönetilen kimliğini seçin. Uygulama kimlikleri için uygulama kimliğini arayın ve seçin. Seç'i seçin.

  7. Yönetilen kimliğin veya uygulama kimliğinin Üyeler altında listelendiğini doğrulayın. sonrakiseçin.

  8. rol atamasını storage hesabına eklemek için Review + assign öğesini seçin.

Vm'ye kullanıcı tarafından atanan yönetilen kimlik ekleme

Kullanıcı tarafından atanan bir yönetilen kimlik oluşturduysanız vm'nize eklemek için şu adımları izleyin:

  1. VM'nize gidin. Hizmet menüsünde, Güvenlik'in altında Kimlik'i seçin.

  2. Kullanıcı tarafından atanan sekmesini ve ardından Kullanıcı tarafından atanan yönetilen kimlik ekle'yi seçin. Oluşturduğunuz yönetilen kimliği seçin ve ardından Ekle'yi seçin.

Azure çalıştıran bir Linux VM'de yönetilen kimlik yapılandırmak için aşağıdaki adımları izleyin. VM'niz Linux 3.0, Ubuntu 22.04, Ubuntu 24.04, RHEL 9.6+ veya SLES 15 SP6+ Azure çalıştırıyor olmalıdır.

Azure VM'de yönetilen kimliği etkinleştirme

Yönetilen kimlik , sistem veya kullanıcı tarafından atanabilir. VM'de hem sistem tarafından atanan hem de kullanıcı tarafından atanan yönetilen kimlikler varsa, Azure varsayılan olarak sistem tarafından atanan kimlikleri kullanır. En iyi sonuçlar için yalnızca bir tane atayın.

Sistem tarafından atanan yönetilen kimliği etkinleştirme

  1. Azure portalında oturum açın.

  2. Management sekmesinde VM oluşturma sırasında sistem tarafından atanan yönetilen kimliği etkinleştirebilirsiniz. bkz. Azure portalında Linux sanal makinesi oluşturma.

    Azure portal'u kullanarak yeni bir Sanal Makine oluştururken sistem tarafından atanan yönetilen kimliği etkinleştirmeyi gösteren ekran görüntüsü.

Kullanıcı tarafından atanan yönetilen kimliği etkinleştirme

  1. Azure portalında oturum açın ve kullanıcı tarafından atanan yönetilen kimlik oluşturma adımlarını izleyin.

  2. Yeni oluşturduğunuz kullanıcı tarafından atanan yönetilen kimliğe gidin ve İstemci Kimliği değerini kopyalayın. Bu değer daha sonra gerekli olacaktır.

Yönetilen kimliğe yerleşik bir RBAC rolü atayın

  1. Yönetilen kimlik kullanarak bağlamak istediğiniz dosya paylaşımını içeren storage hesabına gidin. Hizmet menüsünde Access Control (IAM) öğesini seçin.

  2. Bu kaynağa erişim altında Rol ataması ekle'yi seçin.

  3. Rol sekmesinde, İş işlevi rolleri'nin altında Depolama Dosyası Verileri SMB MI Yöneticisi'ni arayın ve seçin. Ardından İleri'yi seçin.

  4. Members sekmesindeki Erişim Ataması altında Yönetilen kimlik öğesini seçin.

  5. Üyeler'in altında + Üye seç'i seçin. Yönetilen kimlikleri seçin bölmesi görüntülenir.

  6. Yönetilen kimlik'in altında yönetilen kimliği seçin ve ardından Seç'i seçin.

  7. Yönetilen kimliğin Üyeler altında listelendiğini doğrulayın. sonrakiseçin.

  8. rol atamasını storage hesabına eklemek için Review + assign öğesini seçin.

Vm'ye kullanıcı tarafından atanan yönetilen kimlik ekleme

Kullanıcı tarafından atanan bir yönetilen kimlik oluşturduysanız vm'nize eklemek için şu adımları izleyin:

  1. VM'nize gidin. Hizmet menüsünde, Güvenlik'in altında Kimlik'i seçin.

  2. Kullanıcı tarafından atanan sekmesini ve ardından Kullanıcı tarafından atanan yönetilen kimlik ekle'yi seçin. Oluşturduğunuz yönetilen kimliği seçin ve ardından Ekle'yi seçin.

İstemcinizi yönetilen kimlik kullanarak kimlik doğrulama için hazırlayın.

Sisteminizi yönetilen kimlik doğrulaması kullanarak dosya paylaşımını bağlamaya hazırlama adımları, Windows ve Linux istemcileri için farklıdır. İstemciler etki alanına katılmamalıdır.

İstemci VM'nizi veya Windows cihazınızı yönetilen kimlik kullanarak kimlik doğrulamasına hazırlamak için şu adımları izleyin:

  1. Yönetilen kimliğin atandığı VM'nizde veya cihazınızda oturum açın ve yönetici olarak bir PowerShell penceresi açın. PowerShell 5.1+ veya PowerShell 7+ gerekir.

  2. Azure Dosyalar SMB Yönetilen Kimlik İstemcisi PowerShell modülünü yükleyin ve içeri aktarın:

    Install-Module AzFilesSmbMIClient 
    Import-Module AzFilesSmbMIClient 
    
  3. Aşağıdaki komutu çalıştırarak geçerli PowerShell yürütme ilkenizi denetleyin:

    Get-ExecutionPolicy -List 
    

    Eğer CurrentUser üzerindeki yürütme ilkesi Restricted veya Undefined ise, onu RemoteSigned ile değiştirin. Yürütme ilkesi RemoteSigned, Default, AllSigned, Bypass veya Unrestricted ise bu adımı atlayabilirsiniz.

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 
    

Kimlik doğrulama bilgilerini yenile

Yönetilen kimliği kullanarak dosya paylaşımını bağlamadan önce kimlik doğrulama kimlik bilgilerini yenileyin ve storage hesap uç noktanızı belirtin. Depolama hesabı URI'nizi kopyalamak için Azure portalında depolama hesabına gidin ve hizmet menüsünden Settings>Endpoints öğesini seçin. Sondaki eğik çizgi de dahil olmak üzere URI'nin tamamını kopyaladığınızdan emin olun: https://<storage-account-name>.file.core.windows.net/.

Sistem tarafından atanan yönetilen kimlik için aşağıdaki komutu çalıştırarak bir OAuth belirteci alın, Kerberos önbelleğine ekleyin ve belirtecin süresi dolmak üzere olduğunda otomatik olarak yenileyin. İsteğe bağlı olarak refresh'yi çıkarabilirsiniz.

AzFilesSmbMIClient.exe refresh --uri https://<storage-account-name>.file.core.windows.net/

Kullanıcı tarafından atanan yönetilen kimlik için istemci kimliğini belirtmeniz gerekir. <client-id> öğesini yönetilen kimliğin istemci kimliğiyle değiştirin.

AzFilesSmbMIClient.exe refresh --uri https://<storage-account-name>.file.core.windows.net/ --clientId <client-id> 

Tavsiye

Kullanım bilgilerinin ve örneklerin tamamını görüntülemek için yürütülebilir dosyayı herhangi bir parametre olmadan çalıştırın: AzFilesSmbMIClient.exe.

Linux VM'nizi yönetilen kimlik kullanarak kimlik doğrulamasına hazırlamak için aşağıdaki adımları izleyin.

Kimlik doğrulama paketlerini indirme ve yükleme

Paket konumu ve yükleme adımları, Linux dağıtımınıza bağlı olarak farklılık gösterir.

Azure Linux 3.0

Azure Linux 3.0'a azfilesauth yüklemek için aşağıdaki komutları çalıştırın:

tdnf update 
tdnf install azfilesauth

RHEL 9.6+

RHEL 9.6+ sürümüne yüklemek azfilesauth için aşağıdaki komutları çalıştırın:

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
dnf update
dnf install -y azfilesauth

Bazen RHEL, kimlik bilgisi önbellek dosyasına çekirdek upcall erişimini engelleyebilir. Bir hata oluşursa olası nedenler için bkz /var/log/messages .

RHEL varsayılan olarak kalıcı bir kimlik bilgisi veya KCM önbelleği kullanır. için azfilesauthdosya tabanlı önbelleğe geçebilirsiniz:

  sudo tee /etc/krb5.conf.d/00-azfilesauth.conf > /dev/null <<EOF
  [libdefaults]
    default_ccache_name = FILE:/tmp/krb5cc_%{uid}
  EOF

SLES 15 SP6+

SLES 15 SP6+ üzerine yüklemek azfilesauth için aşağıdaki komutları çalıştırın:

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

SLES 15 SP6+ varsayılan olarak kalıcı bir kimlik bilgisi veya KCM önbelleği kullanır. için azfilesauthdosya tabanlı önbelleğe geçebilirsiniz:

  sudo tee /etc/krb5.conf.d/00-azfilesauth.conf > /dev/null <<EOF
  [libdefaults]
    default_ccache_name = FILE:/tmp/krb5cc_%{uid}
  EOF

Ubuntu 22.04

Ubuntu 22.04'e yüklemek azfilesauth için aşağıdaki komutları çalıştırın:

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

Ubuntu 24.04'e yüklemek azfilesauth için aşağıdaki komutları çalıştırın:

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

Kimlik doğrulamasını yapılandırma

Linux'ta kimlik doğrulamasını yapılandırmak için iki seçeneğiniz vardır:

  • VM yönetilen kimliği kullan: VM'nize atanmış bir yönetilen kimlik varsa bu seçeneği belirleyin.
  • OAuth belirtecini doğrudan sağlayın: OAuth belirteçlerini kendiniz yönetiyorsanız bu seçeneği belirleyin.

1. Seçenek: VM yönetilen kimliği kullanma

Kimlik doğrulamasını yapılandırmak için sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği kullanabilirsiniz.

VM'nizin kullanıcı tarafından atanan yönetilen kimliği varsa, Azure Örnek Meta Veri Hizmeti'nden (IMDS) belirteç almak ve otomatik olarak depolamak için aşağıdaki komutu çalıştırın. <storage-account-name> değerini depolama hesabınızın adıyla değiştirin. <client-id> değerini yönetilen kimliğinizin istemci kimliğiyle değiştirin. İstemci kimliğiniz yoksa, Azure portalında yönetilen kimliğe gidin ve istemci kimliğini kopyalayın.

sudo azfilesauthmanager set https://<storage-account-name>.file.core.windows.net --imds-client-id <client-id>

VM'nizde sistem tarafından atanan yönetilen kimlik varsa --system bayrağını kullanın ve bir istemci kimliği sağlamayın.

sudo azfilesauthmanager set https://<storage-account-name>.file.core.windows.net --system

Biletin düzgün oluşturulduğunu doğrulayın:

sudo azfilesauthmanager list

Seçenek 2: OAuth belirtecini doğrudan sağlayın

Belirteçleri kendiniz yönetiyorsanız doğrudan OAuth belirtecini sağlayın. Belirtecin aud (izleyici) değeri https://storage.azure.com (sondaki eğik çizgi olmadan) olmalı ve dosya paylaşımı bağlanırken https://storage.azure.com/ kullanılmamalıdır.

Aşağıdaki komutları çalıştırın. <storage-account-name> ve <access-token> değerleriniz ile değiştirin.

# 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

Dosya paylaşımını bağla

Artık depolama hesabı anahtarı kullanmadan dosya paylaşımını Windows veya Linux'a bağlayabilirsiniz.

Windows istemcilerinde, Windows Dosya Gezgini'ne aşağıdaki yolu girerek UNC yolunu kullanarak Azure dosya paylaşımınıza doğrudan erişebilirsiniz. <storage-account-name> değerini storage hesap adınız ve <file-share-name> dosya paylaşımı adınızla değiştirin.

\\<storage-account-name>.file.core.windows.net\<file-share-name>

Daha fazla bilgi için bkz. Windows üzerinde Mount SMB Azure dosya paylaşımı.

Dosya paylaşımını önerilen bağlama seçenekleriyle bağlamak için aşağıdaki komutu çalıştırın. <storage-account-name> değerini storage hesap adınız ve <file-share-name> dosya paylaşımı adınızla değiştirin. Kimlik bilgilerinizi şu yapılandırma dosyasında bulabilirsiniz: cat /etc/azfilesauth/config.yaml. Kullanıcıya atanmış yönetilen kimlik için, username=<client-id> bağlama seçeneğini kullanarak yönetilen kimliğin istemci kimliğini ekleyin. Sistem tarafından atanan yönetilen kimlik için username=<client-id> bağlama seçeneğini çıkartın.

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

Bağlamanın başarılı olduğunu doğrulayın:

ls -la /mnt/smb

Daha fazla bilgi için bkz. linux istemcilerinde Mount SMB Azure dosya paylaşımları.

Kimlik bilgilerinizi yenileme

Erişim kesintilerini önlemek için kimlik bilgilerinizi düzenli aralıklarla yenilemeniz gerekir. Yenileme hizmeti kimlik bilgilerini gerektiği gibi otomatik olarak algılar ve yeniler.

Dosya paylaşımını ilk kez bağladıktan sonra yenileme hizmetini başlatın:

sudo systemctl start azfilesrefresh

Hizmetin her önyüklemede otomatik olarak başlatıldığından emin olmak için:

sudo systemctl enable --now azfilesrefresh

Otomatik kimlik bilgisi yenileme için VM'nize atanmış bir yönetilen kimlik gerekir. OAuth belirtecini doğrudan sağlıyorsanız, kimlik bilgilerini el ile yenilemeniz gerekir. azfilesauthmanager set bölümünde açıklandığı gibi komutunu kullanarak veya paylaşılan kütüphane API'leri aracılığıyla programlı olarak yenileyebilirsiniz.

Sorun giderme

Windows ve Linux istemcileri için sorun giderme adımları farklıdır.

Dosya paylaşımınızı Windows'ta bağlarken sorunlarla karşılaşırsanız, ayrıntılı günlüğü etkinleştirmek ve tanı bilgilerini toplamak için şu adımları izleyin:

  1. Windows istemcilerinde, verbosity için Data düzeyini 0x00000004 için Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Azure\Storage\Files\SmbAuth (4) olarak ayarlamak üzere Kayıt Defteri Düzenleyicisi'ni kullanın.

  2. Paylaşımı bağlamayı yeniden deneyin ve hata mesajını yeniden oluşturun.

  3. Artık adlı AzFilesSmbMILog.logbir dosyanız olmalıdır. Yardım için günlük dosyasını Azure Dosyalar ekibine gönderin.

Dosya paylaşımınızı Linux'a bağlarken sorunlarla karşılaşırsanız SMB tanılama adımlarını izleyin.

İstemci kitaplığı yükleme ve tümleştirme seçenekleri

Aşağıdaki bilgiler, yönetilen kimlikleri uygulamalarıyla tümleştirmesi gereken geliştiricilere yöneliktir.

Yönetilen kimlikleri Windows uygulamalarıyla tümleştirmesi gereken geliştiriciler için birden çok uygulama yaklaşımı kullanılabilir. Seçtiğiniz yaklaşım, uygulama mimarinize ve gereksinimlerinize bağlıdır.

Yönetilen derleme tümleştirmesi: NuGet paketi

.NET uygulamalar için Microsoft.Azure. AzFilesSmbMI NuGet paketi, SMB OAuth kimlik doğrulama işlevine doğrudan erişim sağlayan yönetilen bir derleme (Microsoft.Azure.AzFilesSmbMI.dll) içerir. C# ve diğer .NET tabanlı uygulamalar için bu yaklaşımı kullanın.

Derlemeyi yüklemek için Install-Package Microsoft.Azure.AzFilesSmbMI -version 1.2.3168.94 kullanın.

Yerel DLL tümleştirmesi

Doğrudan API erişimi gerektiren yerel uygulamalar için AzFilesSmbMIClientnative DLL olarak kullanılabilir. Bu seçenek özellikle daha düşük düzey tümleştirme gerektiren C/C++ uygulamaları veya sistemleri için kullanışlıdır. bkz. Windows uygulaması ve API başvurusu (yerel üst bilgi dosyası).

Yerel API yöntemleri

Yerel DLL, kimlik bilgisi yönetimi için aşağıdaki temel yöntemleri dışarı aktarır:

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 
); 

Linux geliştiricileri, paketle azfilesauth birlikte otomatik olarak yüklenen paylaşılan kitaplığı kullanabilir. C/C++ uygulamalarınızda doğrudan API erişimi için kütüphaneye bağlanabilirsiniz.

public üst bilgisini eklemeyi unutmayın.

Daha fazla bilgi için bkz. AzFilesAuthenticator projesi.

Paylaşılan kitaplık API'si yöntemleri

Paylaşılan kitaplık, kimlik bilgisi yönetimi için aşağıdaki temel yöntemleri dışarı aktarır:

#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

API açıklaması

Aşağıdaki tabloda API komutları ve bunların kullanımı listelenir. Döndürülen değerler standart C kurallarına uyar (başarı için sıfır, hatalar için sıfırdan farklı).

Command Açıklama
extern_smb_set_credential_oauth_token() Belirli bir storage uç noktası için OAuth belirteci kimlik bilgilerini ayarlar.
extern_smb_clear_credential() depolama uç noktası için depolanan kimlik bilgilerini kaldırır.
extern_smb_list_credential() Depolanan tüm kimlik bilgilerini listeler.
extern_smb_version() azfilesauth kitaplığının sürüm dizesini döndürür.