Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Nástroje na prihlasovacie údaje môžete použiť na získavanie prístupových tokenov a správu tajomstiev v Azure Key Vault. Modul notebookutils.credentials sa integruje s Microsoft Entra ID na získavanie tokenov a Azure Key Vault na správu tajomstiev, takže sa môžete bezpečne pripojiť k Azure zdrojom bez toho, aby ste museli vystavovať prihlasovacie údaje v kóde.
Nástroje na prihlasovacie údaje sú dostupné v notebookoch Python, PySpark, Scala a R. Príklady na tejto stránke používajú Python ako primárny jazyk, pričom ekvivalenty Scala a R sú zobrazené tam, kde ich podporuje verejné API.
Dôležité
Nikdy nekódujte tajomstvá alebo prihlasovacie údaje priamo do kódu zápisníka. Vždy používajte Azure Key Vault na ukladanie citlivých hodnôt a ich získavanie počas behu pomocou notebookutils.credentials.getSecret.
Obmedzenia a bezpečnosť
Predtým, než použijete nástroje na prihlasovacie údaje, majte na pamäti tieto obmedzenia:
- Expirácia tokenu – Tokeny vypršia po určitom období. Pri dlhodobých operáciách implementujte obnovovaciu logiku na požiadanie o nový token pred expiráciou.
-
Obmedzenia rozsahu hlavného rozsahu služby – Pri prevádzke pod princípom služby majú tokeny pre
pbipublikum obmedzený rozsah v porovnaní s identitou používateľa. -
MSAL pre plný rozsah – Ak potrebujete celý rozsah služieb Fabric pod princípom služby, použite MSAL autentifikáciu namiesto
getToken. - Tajná redakcia – Zápisník automaticky rediguje tajné hodnoty, aby zabránil náhodnému odhaleniu.
- Oprávnenia Key Vault – Na prístup alebo ukladanie tajomstiev musíte mať príslušné oprávnenia (Get for reading, Set for writing) v Azure Key Vault.
- Zmeny publika – Rozsah tokenového publika sa môže časom vyvíjať. Overte aktuálne rozsahy v dokumentácii.
Spustením nasledujúceho príkazu získate prehľad dostupných metód:
notebookutils.credentials.help()
Nasledujúca tabuľka uvádza dostupné metódy prihlasovacích údajov:
| Method | Podpis | Description |
|---|---|---|
getToken |
getToken(audience: String): String |
Vráti token Microsoft Entra pre zadané publikum. |
getSecret |
getSecret(akvName: String, secret: String): String |
Vráti hodnotu tajomstva zo špecifikovaného Azure Key Vault. |
putSecret |
putSecret(akvName: String, secretName: String, secretValue: String): String |
Ukladá tajomstvo do špecifikovaného Azure Key Vault. Táto metóda nie je dostupná vo verejnom Scala API. |
isValidToken |
isValidToken(token: String): Boolean |
Kontroluje, či je daný token platný a nie je expirovaný. Táto metóda nie je dostupná vo verejnom Scala API. |
Získať token
getToken vráti token Microsoft Entra pre dané publikum. Nasledujúca tabuľka zobrazuje aktuálne dostupné kľúče pre publikum:
| Kľúč k publiku | Resource | Prípad použitia |
|---|---|---|
storage |
Ukladací priestor Azure | Prístup k ADLS Gen2 a Blob Storage |
pbi |
Power BI | Volajte Power BI a Fabric REST API |
keyvault |
Azure Key Vault | Získanie tajomstiev Key Vaultu |
kusto |
Synapse RTA KQL DB | Connect to Azure Data Explorer |
Spustite nasledujúci príkaz, aby ste získali token:
notebookutils.credentials.getToken('audience Key')
Príklady použitia tokenov
Vrátený token môžete použiť na autentifikáciu voči rôznym Azure službám.
Ukladací priestor Azure
storage_token = notebookutils.credentials.getToken('storage')
Power BI a Fabric REST API
import requests
pbi_token = notebookutils.credentials.getToken('pbi')
headers = {
'Authorization': f'Bearer {pbi_token}',
'Content-Type': 'application/json'
}
response = requests.get(
'https://api.powerbi.com/v1.0/myorg/datasets',
headers=headers
)
if response.status_code == 200:
datasets = response.json()
print(f"Found {len(datasets['value'])} datasets")
Azure Data Explorer (Kusto)
kusto_token = notebookutils.credentials.getToken('kusto')
Azure Key Vault
keyvault_token = notebookutils.credentials.getToken('keyvault')
Použite tokeny s Azure SDK
Textilné zošity to priamo nepodporujú DefaultAzureCredential . Môžete použiť vlastnú triedu prihlasovacích údajov ako obchádzku na odovzdanie NotebookUtils tokenov klientom Azure SDK.
from azure.core.credentials import AccessToken, TokenCredential
import jwt
class NotebookUtilsCredential(TokenCredential):
"""Custom credential that uses notebookutils tokens for Azure SDK."""
def __init__(self, audience="storage"):
self.audience = audience
def get_token(self, *scopes, claims=None, tenant_id=None, **kwargs):
token = notebookutils.credentials.getToken(self.audience)
# Decode token to get expiration time
token_json = jwt.decode(
token, algorithms="RS256",
options={"verify_signature": False}
)
return AccessToken(token, int(token_json.get("exp", 0)))
# Example: use with Azure Blob Storage
from azure.storage.blob import BlobServiceClient
account_url = "https://mystorageaccount.blob.core.windows.net"
credential = NotebookUtilsCredential(audience="storage")
blob_client = BlobServiceClient(account_url=account_url, credential=credential)
for container in blob_client.list_containers():
print(f"Container: {container.name}")
Prepitné
Tokeny vypršia po určitom čase. Ak váš notebook vykonáva dlhé operácie, implementujte obnovovaciu logiku na požiadanie o nový token pred vypršaním aktuálneho.
Zváženia
Tokenové rozsahy s
pbipublikom sa môžu časom meniť.Keď voláte
notebookutils.credentials.getToken("pbi"), vrátený token má obmedzený rozsah, ak notebook beží pod servisným princípom. Token nemá celý rozsah služby Fabric. Ak notebook beží pod používateľskou identitou, token má stále plný rozsah služby Fabric, ale to sa môže zmeniť s bezpečnostnými vylepšeniami. Aby ste zabezpečili, že token má plný rozsah služby Fabric, použite MSAL autentifikáciu namiestonotebookutils.credentials.getTokenAPI. Ďalšie informácie nájdete v téme Overenie pomocou Microsoft Entra ID.Nasledujúce rozsahy sú dostupné, keď voláte
notebookutils.credentials.getTokens kľúčompbipublika pod identitou hlavného operátora:-
Lakehouse.ReadWrite.All– Prístup k čítaniu a zápisu k položkám pri jazerných domoch -
MLExperiment.ReadWrite.All– Prístup k experimentálnym položkám na čítanie a zápis -
MLModel.ReadWrite.All– Prístup na čítanie a zápis k položkám modelov strojového učenia -
Notebook.ReadWrite.All– Prístup k zápisníku na čítanie a zápis -
SparkJobDefinition.ReadWrite.All– Prístup na čítanie a zápis k položkám definície pracovných pozícií v Sparku -
Workspace.ReadWrite.All– Prístup na čítanie a zápis do pracovných priestorov -
Dataset.ReadWrite.All– Prístup na čítanie a zápis k sémantickým modelovým položkám
-
Prepitné
Ak potrebujete prístup k ďalším Fabric službám alebo širším oprávneniam v rámci servisného princípu, použite MSAL for Python na autentifikáciu priamo s plným rozsahom Fabric služby namiesto spoliehania sa na getToken("pbi").
Získanie tajnosti
getSecret vráti Azure Key Vault secret pre daný Azure Key Vault endpoint a secret name. Hovor používa vaše aktuálne používateľské údaje na autentifikáciu voči Key Vault.
notebookutils.credentials.getSecret('https://<name>.vault.azure.net/', 'secret name')
Môžete získať viacero tajomstiev na vytvorenie spojovacích reťazcov alebo konfiguráciu služieb:
vault_url = "https://myvault.vault.azure.net/"
db_host = notebookutils.credentials.getSecret(vault_url, "db-host")
db_user = notebookutils.credentials.getSecret(vault_url, "db-user")
db_password = notebookutils.credentials.getSecret(vault_url, "db-password")
connection_string = f"Server={db_host};User={db_user};Password={db_password}"
Poznámka
Zápisník automaticky rediguje tajné hodnoty kvôli bezpečnosti. Ak vytlačíte alebo zobrazíte získané tajomstvo, výstup zobrazí redigovaný zástupný symbol namiesto skutočnej hodnoty.
Použite plne kvalifikovanú URL Key Vault vo formáte https://<vault-name>.vault.azure.net/. Musíte mať príslušné oprávnenia na prístup k Key Vaultu a jednotlivým tajomstvám.
Najlepšie bezpečnostné postupy
Riaďte sa týmito odporúčaniami, keď pracujete s kvalifikáciou v Fabric notebookoch:
- Ukladajte všetky citlivé hodnoty do Azure Key Vault. Nikdy nevkladajte prihlasovacie údaje, spojovacie reťazce alebo API kľúče priamo do kódu notebooku.
- Nezaznamenávajte tajné hodnoty. Spoľahnite sa na automatickú tajnú cenzuru výstupov z notebooku. Vyhnite sa zapisovaniu tajomstiev do súborov alebo ich posielaniu ako parametrov zápisníka.
- Použite správny kľúč pre publikum. Spojte kľúč publika s cieľovým Azure zdrojom, aby mal token len potrebné povolenia.
- Pochopte kontext identity. Zistite, či váš notebook beží pod používateľskou identitou alebo pod princípom služby, pretože dostupné rozsahy tokenov sa môžu líšiť. Testujte autentifikáciu v interaktívnych aj pipeline kontextoch.
- Riešiť expiráciu tokenu. Žetóny expirujú. Pri dlhodobých operáciách implementujte obnovovaciu logiku na požiadanie o nový token pred vypršaním aktuálneho.
- Obmedzte prístup k Key Vault. Udeľte len minimálne požadované oprávnenia k vášmu Key Vaultu. Auditujte tajný prístup cez diagnostické logy Azure Key Vault.
- Používajte spravované identity, keď je to možné. Spravované identity znižujú potrebu manuálnej správy prihlasovacích údajov a poskytujú bezpečnejší autentifikačný proces.
Daj tajomstvo
putSecret ukladá tajomstvo do špecifikovaného Azure Key Vault. Ak tajomstvo už existuje, jeho hodnota sa aktualizuje.
notebookutils.credentials.putSecret('https://<name>.vault.azure.net/', 'secret name', 'secret value')
Na zapisovanie tajomstiev musíte mať na Azure Key Vault príslušné oprávnenia (Set permission).
vault_url = "https://myvault.vault.azure.net/"
notebookutils.credentials.putSecret(vault_url, "api-key", "my-secret-api-key-value")
Validate token
Použite ho isValidToken na overenie, či je token platný a nie je expirovaný, predtým než zavoláte API s ním.
token = notebookutils.credentials.getToken('storage')
is_valid = notebookutils.credentials.isValidToken(token)
if is_valid:
print("Token is valid")
else:
print("Token is expired or invalid, requesting a new one")
token = notebookutils.credentials.getToken('storage')