Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Rust-alkalmazásoknak hitelesíteni kell magukat az Azure-szolgáltatásokban, például a Storage-ban, a Key Vaultban vagy a Cosmos DB-ben. Ez a cikk bemutatja, hogyan használható az Azure Identity-láda a Rust-alkalmazások biztonságos hitelesítésére a helyi fejlesztési és kiszolgálói környezetekben, javítja a biztonságot és egyszerűsíti a hitelesítő adatok kezelését.
Javasolt jogkivonat-alapú hitelesítés
Az ajánlott módszer az, hogy az alkalmazások jogkivonatalapú hitelesítést használjanak a kapcsolati sztringek vagy kulcsok helyett az Azure-erőforrásokhoz való hitelesítéskor. A azure_identity láda jogkivonatalapú hitelesítést biztosít, és lehetővé teszi az alkalmazások számára, hogy zökkenőmentesen hitelesítsék magukat az Azure-erőforrásokon, függetlenül attól, hogy az alkalmazás helyi fejlesztés alatt áll, üzembe van helyezve az Azure-ban vagy egy helyszíni kiszolgálón.
Attól függ, hogy az alkalmazás milyen típusú jogkivonatalapú hitelesítést használ az Azure-erőforrásokon való hitelesítéshez, attól függ, hogy az alkalmazás hol fut.
| Környezet | Authentication |
|---|---|
| Helyi | Ha egy fejlesztő helyi fejlesztés során futtat egy alkalmazást – Az alkalmazás a fejlesztő helyi hitelesítő adataival hitelesíthet az Azure-ban. Ezeket a lehetőségeket részletesebben a crates.io: Hitelesítés fejlesztési eszközökkel. |
| Azure | Ha egy alkalmazást az Azure-ban üzemeltetnek – Az alkalmazásnak felügyelt identitással kell hitelesítenie az Azure-erőforrásokat. Ezt a lehetőséget részletesebben a crates.io dokumentációjában ismertetjük: Az Azure által üzemeltetett alkalmazások hitelesítése. |
| Helyszíni | Amikor egy alkalmazást üzemeltetnek és üzembe helyeznek a helyszínen , az alkalmazásnak hitelesítenie kell magát az Azure-erőforrásokban egy alkalmazásszolgáltatás-tag használatával. Ezt a lehetőséget a crates.io dokumentációja ismerteti: Szolgáltatásnevek hitelesítése. |
A jogkivonatalapú hitelesítés előnyei
Az Azure-hoz készült alkalmazások létrehozásakor határozottan javasoljuk, hogy a titkos kódok, például kapcsolati sztringek vagy kulcsok helyett tokenalapú hitelesítést használjunk.
| Tokenalapú hitelesítés | Titkos kódok (kapcsolati sztringek és kulcsok) |
|---|---|
| A minimális jogosultság elve, hogy meghatározza az alkalmazás által az Azure-erőforráson szükséges konkrét engedélyeket. | A kapcsolati sztring vagy kulcs teljes jogokat biztosít az Azure-erőforrás számára. |
| Nincs tárolandó alkalmazáskulcs. | Titkos kulcsokat kell tárolnia és elforgatnia az alkalmazásbeállításban vagy a környezeti változóban. |
| Az Azure Identity-kódtár a színfalak mögött kezeli a jogkivonatokat. Ez megkönnyíti a jogkivonatalapú hitelesítés használatát kapcsolati sztringként. | A titkos kulcsok nincsenek kezelve. |
A kapcsolati sztringek használatát olyan koncepcióalkalmazások vagy fejlesztési prototípusok kezdeti ellenőrzésére kell korlátozni, amelyek nem férnek hozzá éles vagy bizalmas adatokhoz. Ellenkező esetben az Azure Identity-kódtárban elérhető jogkivonatalapú hitelesítési osztályokat mindig előnyben kell részesíteni az Azure-erőforrásokhoz való hitelesítéskor.
Hitelesítés a helyi fejlesztés során
Ha egy alkalmazás egy fejlesztői munkaállomáson fut a helyi fejlesztés során, a helyi környezetnek továbbra is hitelesítenie kell magát az alkalmazás által használt Azure-szolgáltatásokban.
Hitelesítés Az Azure CLI hitelesítő adataival
Az Azure CLI hitelesítő adatai az Azure CLI hitelesítési állapotát használják a Rust-alkalmazás hitelesítéséhez. Ez a hitelesítő adat ideális helyi fejlesztéshez, ha már bejelentkezett.az login
use azure_identity::AzureCliCredential;
use azure_security_keyvault_secrets::SecretClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotazure::load()?;
let vault_url = std::env::var("AZURE_KEYVAULT_URL")
.map_err(|_| "AZURE_KEYVAULT_URL environment variable is required")?;
let credential = AzureCliCredential::new(None)?;
let client = SecretClient::new(&vault_url, credential.clone(), None)?;
Ok(())
}
Hitelesítés az Azure Developer CLI hitelesítő adataival
Az Azure Developer CLI hitelesítő adatai az Azure Developer CLI (azd) hitelesítési állapotát használják az alkalmazás hitelesítéséhez. Ez a hitelesítő adat hasznos az azd-sablonok és munkafolyamatok használatakor.
use azure_identity::AzureDeveloperCliCredential;
use azure_security_keyvault_secrets::SecretClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotazure::load()?;
let vault_url = std::env::var("AZURE_KEYVAULT_URL")
.map_err(|_| "AZURE_KEYVAULT_URL environment variable is required")?;
let credential = AzureDeveloperCliCredential::new(None)?;
let client = SecretClient::new(&vault_url, credential.clone(), None)?;
Ok(())
}
Hitelesítés kiszolgálói környezetekben
Kiszolgálói környezetekben felügyelt identitásokat használjon a biztonságos, jelszó nélküli hitelesítéshez. A felügyelt identitásokat az Azure automatikusan létrehozza és felügyeli, így az alkalmazás hitelesítő adatok tárolása nélkül hitelesítheti magát.
Kiszolgálói környezetben való üzemeltetéskor minden egyes környezethez rendeljen egyedi alkalmazásidentitást. Az Azure-ban az alkalmazások identitását egy szolgáltatásnév képviseli, amely egy speciális biztonsági egyszerű típus, amely azonosítja és hitelesíti az alkalmazásokat az Azure-ban. Az alkalmazáshoz használt szolgáltatásnév típusa attól függ, hogy hol fut az alkalmazás.
use azure_identity::{ManagedIdentityCredential, ManagedIdentityCredentialOptions, UserAssignedId};
use azure_security_keyvault_secrets::SecretClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotazure::load()?;
let vault_url = std::env::var("AZURE_KEYVAULT_URL")
.map_err(|_| "AZURE_KEYVAULT_URL environment variable is required")?;
let user_assigned_id: Option<UserAssignedId> = std::env::var("AZURE_USER_ASSIGNED_IDENTITY")
.ok()
.map(|id| UserAssignedId::ClientId(id.clone()));
let credential_options = ManagedIdentityCredentialOptions {
user_assigned_id,
..Default::default()
};
let credential = ManagedIdentityCredential::new(Some(credential_options))?;
let client = SecretClient::new(vault_url.as_str(), credential.clone(), None)?;
Ok(())
}
példakód
A cikkben látható kód a következő helyen https://github.com/azure-samples/azure-sdk-for-rust-docs/érhető el: .
További erőforrások
- Azure SDK-ládák Crates.io – Az elérhető Azure SDK-ládák listája
- Az Azure SDK tervezési irányelvei – Tervezési alapelvek és minták
- Azure SDK for Rust GitHub-adattár – Problémák és forráskód
- Rakománydokumentáció – Teljes rakományhivatkozás