Megosztás:


Python-alkalmazások hitelesítése az Azure-szolgáltatásokba a helyi fejlesztés során közvetítőalapú hitelesítéssel

A közvetített hitelesítés összegyűjti a felhasználói hitelesítő adatokat a rendszerhitelesítési közvetítő használatával egy alkalmazás hitelesítéséhez. A rendszerhitelesítési közvetítő egy olyan alkalmazás, amely egy felhasználó számítógépén fut, amely kezeli az összes csatlakoztatott fiók hitelesítési kézfogásait és tokenkarbantartását.

A közvetített hitelesítés a következő előnyöket nyújtja:

  • Engedélyezi az egyszeri Sign-On (SSO): Lehetővé teszi az alkalmazások számára, hogy leegyszerűsítsék a Microsoft Entra-azonosítóval való hitelesítést, és megvédjék a Microsoft Entra ID frissítési jogkivonatait a kiszivárgástól és a visszaéléstől.
  • Fokozott biztonság: A közvetítővel számos biztonsági fejlesztés érhető el anélkül, hogy frissítenie kellene az alkalmazáslogikát.
  • Továbbfejlesztett funkciótámogatás: A közvetítő segítségével a fejlesztők hozzáférhetnek a gazdag operációs rendszer és a szolgáltatás képességeihez.
  • Rendszerintegráció: Azokat az alkalmazásokat, amelyek a közvetítő beépülő modult használják a beépített fiókválasztóval, lehetővé teszik, hogy a felhasználó gyorsan válasszon ki egy meglévő fiókot ahelyett, hogy újra és újra ugyanazokat a hitelesítő adatokat újra és újra megismétli.
  • Token Protection: Biztosítja, hogy a frissítési jogkivonatok eszközhöz kötöttek legyenek, és lehetővé teszi az alkalmazások számára az eszközhöz kötött hozzáférési jogkivonatok beszerzését. Lásd: Token Protection.

A Windows egy Web Account Manager (WAM) nevű hitelesítési közvetítőt biztosít. A WAM lehetővé teszi az olyan identitásszolgáltatók számára, mint a Microsoft Entra ID, natív módon csatlakoztatják az operációs rendszert, és biztonságos bejelentkezési szolgáltatásokat nyújtanak az alkalmazások számára. A közvetített hitelesítés lehetővé teszi az alkalmazás számára az interaktív bejelentkezési hitelesítő adatok által engedélyezett összes művelethez.

A személyes Microsoft-fiókok, valamint a munkahelyi vagy iskolai fiókok támogatottak. A támogatott Windows-verziók esetében az alapértelmezett böngészőalapú felhasználói felület gördülékenyebb hitelesítési felületre vált, hasonlóan a beépített Windows-alkalmazásokhoz.

a macOS natív módon nem tartalmaz beépített hitelesítési közvetítőt. Az Azure Identity ügyféloldali kódtára platformspecifikus mechanizmusokkal implementálja a közvetített hitelesítési funkciókat, és az eszközök kezelésekor integrálható az olyan alkalmazásokkal, mint a Microsoft Céges portál. További információ: Microsoft Enterprise SSO beépülő modul Apple-eszközökhöz.

A Linux a Linuxhoz készült egyszeri bejelentkezést használja hitelesítési közvetítőként.

Az alkalmazás konfigurálása közvetítőalapú hitelesítéshez

Ha engedélyezni szeretné a közvetítőalapú hitelesítést az alkalmazásban, kövesse az alábbi lépéseket:

  1. Az Azure Portalon navigáljon a Microsoft Entra-azonosítóhoz , és válassza az alkalmazásregisztrációkat a bal oldali menüben.

  2. Válassza ki az alkalmazás regisztrációját, majd válassza a Hitelesítésilehetőséget.

  3. Adja hozzá a megfelelő átirányítási URI-t az alkalmazásregisztrációhoz egy platformkonfiguráción keresztül:

    1. A Platformkonfigurációk területen válassza a + Platform hozzáadása lehetőséget.

    2. A Platformok konfigurálása területen válassza ki az alkalmazástípushoz (platformhoz) tartozó csempét a beállítások konfigurálásához, például mobil- és asztali alkalmazásokhoz.

    3. Az egyéni átirányítási URI-kban adja meg a következő átirányítási URI-t a platformhoz:

      Plattform Átirányítási URI
      Windows 10+ vagy WSL ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}
      macOS msauth.com.msauth.unsignedapp://auth nem aláírt alkalmazások esetén
      msauth.{bundle_id}://auth aláírt alkalmazásokhoz
      Linux https://login.microsoftonline.com/common/oauth2/nativeclient

      Cserélje le vagy {your_client_id} cserélje le {bundle_id} az alkalmazás (ügyfél) azonosítóját az alkalmazásregisztráció Áttekintés paneljén.

    4. Válassza a Konfigurálás lehetőséget.

    További információ: Átirányítási URI hozzáadása alkalmazásregisztrációhoz.

  4. A Hitelesítés panel Speciális beállítások csoportjában válassza az Igen lehetőséget a nyilvános ügyfélfolyamatok engedélyezéséhez.

  5. Válassza a Mentés lehetőséget a módosítások alkalmazásához.

  6. Ha engedélyezni szeretné az alkalmazást adott erőforrásokhoz, keresse meg a kérdéses erőforrást, válassza API-engedélyeket, és engedélyezze a Microsoft Graph és más elérni kívánt erőforrásokat.

    Fontos

    Önnek is az ügyfélrendszer adminisztrátorának kell lennie ahhoz, hogy az első bejelentkezéskor hozzájárulását adja az alkalmazás használatához.

Szerepkörök hozzárendelése

Az alkalmazáskód közvetítő hitelesítéssel történő sikeres futtatásához adjon felhasználói fiókengedélyeket az Azure szerepköralapú hozzáférés-vezérlés (RBAC) használatával. Rendeljen hozzá egy megfelelő szerepkört a megfelelő Azure-szolgáltatás felhasználói fiókjához. Például:

  • Azure Blob Storage: A tárfiók adat-közreműködői szerepkörének hozzárendelése .
  • Azure Key Vault: Rendelje hozzá a Key Vault titkos kulcsfelügyelői szerepkörét.

Ha egy alkalmazás meg van adva, api-engedélyekkel kell rendelkeznie user_impersonation Access Azure Storage-hoz (az előző szakasz 6. lépése). Ez az API-engedély lehetővé teszi, hogy az alkalmazás hozzáférjen az Azure Storage-hoz a bejelentkezett felhasználó nevében, miután a bejelentkezés során megadta a hozzájárulást.

A kód implementálása

Az alábbi példa bemutatja, hogyan lehet InteractiveBrowserBrokerCredential segítségével hitelesíteni a BlobServiceClient.

  1. Telepítse a csomagokat. pywin32 a Rendszer a Windowsban az előtérben lévő ablak lekérésére fogja használni.

    pip install azure-identity-broker pywin32
    
  2. Adjon meg egy hivatkozást arra a szülőablakra, amelyen a fiókválasztó párbeszédpanelnek meg kell jelennie. Az alábbi kód példájában ez lesz a következő sor:

    current_window_handle = win32gui.GetForegroundWindow()
    
  3. Hozzon létre egy InteractiveBrowserBrokerCredential példányt a szülőablak referencia megadásával. Az utolsó példakódban ez lesz a következő sor:

    credential = InteractiveBrowserBrokerCredential(parent_window_handle=current_window_handle)
    
  4. A credential használatával férhet hozzá az Azure-szolgáltatáshoz, amely ebben a példában a Blob Storage.

Íme a végső példa a kódra:

import win32gui
from azure.identity.broker import InteractiveBrowserBrokerCredential
from azure.storage.blob import BlobServiceClient

# Get the handle of the current window
current_window_handle = win32gui.GetForegroundWindow()

# To authenticate and authorize with an app, use the following line to get a credential and
# substitute the <app_id> and <tenant_id> placeholders with the values for your app and tenant.
# credential = InteractiveBrowserBrokerCredential(parent_window_handle=current_window_handle, client_id=<app_id>, tenant_id=<tenant_id>)
credential = InteractiveBrowserBrokerCredential(parent_window_handle=current_window_handle)
client = BlobServiceClient("https://<storage-account-name>.blob.core.windows.net/", credential=credential)

# Prompt for credentials appears on first use of the client
for container in client.list_containers():
    print(container.name)

A pontosabb szabályozáshoz, például az időtúllépés beállításához megadhat olyan konkrét argumentumokat, mint például InteractiveBrowserBrokerCredentiala timeout .

A kód sikeres futtatásához a felhasználói fiókhoz azure-szerepkört kell hozzárendelni a tárfiókon, amely lehetővé teszi a blobtárolókhoz, például a tárfiók adatszolgáltatójához való hozzáférést. Ha egy alkalmazás meg van adva, api-engedélyekkel kell rendelkeznie user_impersonation Access Azure Storage-hoz (az előző szakasz 6. lépése). Ez az API-engedély lehetővé teszi, hogy az alkalmazás hozzáférjen az Azure Storage-hoz a bejelentkezett felhasználó nevében, miután a bejelentkezés során megadta a hozzájárulást.

Az alábbi képernyőképen az alternatív interaktív, közvetítőalapú hitelesítési felület látható:

Képernyőkép a Windows bejelentkezési felületről, amikor egy közvetítő által engedélyezett InteractiveBrowserCredential-példány használatával hitelesít egy felhasználót.

Fontos

a macOS-támogatás az 1.3.0-s és újabb verziókban azure-identity-broker létezik.

Az alábbi példa bemutatja, hogyan lehet a InteractiveBrowserBrokerCredential segítségével hitelesíteni a BlobServiceClient-t.

  1. Telepítse a csomagokat. msal (Microsoft Authentication Library) a paraméter állandójának megadására parent_window_handle szolgál.

    pip install azure-identity-broker msal
    
  2. Hozzon létre egy InteractiveBrowserBrokerCredential példányt a szülőablak referencia átadásával. Ehhez be kell szereznie egy hivatkozást arra a szülőablakra, amelyen a fiókválasztó párbeszédpanelnek meg kell jelennie (amelyet a msal modul biztosít). Az alábbi kód példájában ez lesz a következő sor:

    credential = InteractiveBrowserBrokerCredential(
        parent_window_handle=msal.PublicClientApplication.CONSOLE_WINDOW_HANDLE
    )
    
  3. A credential használatával férhet hozzá az Azure-szolgáltatáshoz, amely ebben a példában a Blob Storage.

Íme a végső példa a kódra:

from azure.identity.broker import InteractiveBrowserBrokerCredential
from azure.storage.blob import BlobServiceClient
import msal

credential = InteractiveBrowserBrokerCredential(
    parent_window_handle=msal.PublicClientApplication.CONSOLE_WINDOW_HANDLE
)

client = BlobServiceClient("https://<storage-account-name>.blob.core.windows.net/", credential=credential)

# Prompt for credentials appears on first use of the client
for container in client.list_containers():
    print(container.name)

Az MSAL Python és a hitelesítési közvetítők macOS rendszeren történő használatáról további információt az MSAL Python használata hitelesítési közvetítővel macOS rendszeren című témakörben talál.

A pontosabb szabályozáshoz, például az időtúllépés beállításához megadhat olyan konkrét argumentumokat, mint például InteractiveBrowserBrokerCredentiala timeout .

A kód sikeres futtatásához a felhasználói fiókhoz azure-szerepkört kell hozzárendelni a tárfiókon, amely lehetővé teszi a blobtárolókhoz, például a tárfiók adatszolgáltatójához való hozzáférést. Ha egy alkalmazás meg van adva, api-engedélyekkel kell rendelkeznie user_impersonation Access Azure Storage-hoz (az előző szakasz 6. lépése). Ez az API-engedély lehetővé teszi, hogy az alkalmazás hozzáférjen az Azure Storage-hoz a bejelentkezett felhasználó nevében, miután a bejelentkezés során megadta a hozzájárulást.

Az alábbi képernyőképen az alternatív interaktív, közvetítőalapú hitelesítési felület látható:

Képernyőkép a macOS bejelentkezési felületről, amikor egy közvetítő által engedélyezett InteractiveBrowserCredential-példányt használ egy felhasználó hitelesítéséhez.

Fontos

A Linux-támogatás az 1.3.0-s és újabb verziókban azure-identity-broker létezik.

Az alábbi példa bemutatja, hogyan lehet InteractiveBrowserBrokerCredential segítségével hitelesíteni a BlobServiceClient.

  1. Telepítse a csomagokat. msal (Microsoft Authentication Library) a paraméter állandójának megadására parent_window_handle szolgál.

    pip install azure-identity-broker msal
    
  2. Hozzon létre egy InteractiveBrowserBrokerCredential példányt a szülőablak hivatkozását átadva. Ehhez be kell szereznie egy hivatkozást arra a szülőablakra, amelyen a fiókválasztó párbeszédpanelnek meg kell jelennie (amelyet a msal modul biztosít). Az alábbi kód példájában ez lesz a következő sor:

    credential = InteractiveBrowserBrokerCredential(
        parent_window_handle=msal.PublicClientApplication.CONSOLE_WINDOW_HANDLE
    )
    
  3. Az credential használatával férhet hozzá az Azure-szolgáltatáshoz, amely ebben a példában a Blob Storage.

Íme a végső példa a kódra:

from azure.identity.broker import InteractiveBrowserBrokerCredential
from azure.storage.blob import BlobServiceClient
import msal

credential = InteractiveBrowserBrokerCredential(
    parent_window_handle=msal.PublicClientApplication.CONSOLE_WINDOW_HANDLE
)

client = BlobServiceClient("https://<storage-account-name>.blob.core.windows.net/", credential=credential)

# Prompt for credentials appears on first use of the client
for container in client.list_containers():
    print(container.name)

A példa futtatása előtt győződjön meg arról, hogy telepítve vannak a Linux-függőségek a Linux-disztribúción. A WSL-hez a eloszlástól függően külön utasítások is tartoznak.

A pontosabb szabályozáshoz, például az időtúllépés beállításához megadhat olyan konkrét argumentumokat, mint például InteractiveBrowserBrokerCredentiala timeout .

A kód sikeres futtatásához a felhasználói fiókhoz azure-szerepkört kell hozzárendelni a tárfiókon, amely lehetővé teszi a blobtárolókhoz, például a tárfiók adatszolgáltatójához való hozzáférést. Ha egy alkalmazás meg van adva, api-engedélyekkel kell rendelkeznie user_impersonation Access Azure Storage-hoz (az előző szakasz 6. lépése). Ez az API-engedély lehetővé teszi, hogy az alkalmazás hozzáférjen az Azure Storage-hoz a bejelentkezett felhasználó nevében, miután a bejelentkezés során megadta a hozzájárulást.

Az alábbi videó az alternatív interaktív, közvetített hitelesítési élményt mutatja be:

Animált gif, amely megjeleníti a Linux bejelentkezési élményét, amikor egy közvetítő által engedélyezett InteractiveBrowserCredential-példányt használ egy felhasználó hitelesítéséhez.