Události
Vytváření inteligentních aplikací
17. 3. 23 - 21. 3. 23
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
App Service je vysoce škálovatelná služba s automatickými opravami pro hostování webů v Azure. Poskytuje také spravovanou identitu pro vaši aplikaci, což je řešení na klíč pro zabezpečení přístupu ke službě Azure SQL Database a dalším službám Azure. Spravované identity ve službě App Service zvyšují zabezpečení vaší aplikace tím, že z aplikace odstraňují tajné kódy, jako jsou přihlašovací údaje v připojovacích řetězcích. V tomto kurzu přidáte spravovanou identitu do ukázkové webové aplikace, kterou jste vytvořili v jednom z následujících kurzů:
Až budete hotovi, vaše ukázková aplikace se bezpečně připojí ke službě SQL Database bez potřeby uživatelského jména a hesla.
Poznámka
Kroky popsané v tomto kurzu podporují následující verze:
Pokyny pro Azure Database for MySQL nebo Azure Database for PostgreSQL v jiných jazykových architekturách (Node.js, Pythonu a Javě) najdete v kurzu : Připojení k databázím Azure ze služby App Service bez tajných kódů pomocí spravované identity.
Co se naučíte:
Poznámka
Ověřování Microsoft Entra se liší od integrovaného ověřování systému Windows v místní Active Directory (AD DS). AD DS a Microsoft Entra ID používají zcela jiné ověřovací protokoly. Další informace naleznete v dokumentaci ke službě Microsoft Entra Domain Services.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Tento článek pokračuje tam, kde jste skončili v některém z následujících kurzů:
Pokud jste to ještě neudělali, nejprve si projděte jeden ze dvou kurzů. Případně můžete přizpůsobit kroky pro vlastní aplikaci .NET pomocí SLUŽBY SQL Database.
Pokud chcete ladit aplikaci pomocí služby SQL Database jako back-end, ujistěte se, že jste povolili připojení klienta z počítače. Pokud ne, přidejte IP adresu klienta podle kroků na stránce Správa pravidel brány firewall protokolu IP na úrovni serveru pomocí webu Azure Portal.
Připravte prostředí pro Azure CLI.
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Nejprve povolte ověřování Microsoft Entra službě SQL Database přiřazením uživatele Microsoft Entra jako správce serveru. Tento uživatel se liší od účtu Microsoft, který jste použili k registraci předplatného Azure. Musí se jednat o uživatele, kterého jste vytvořili, importovali, synchronizovali nebo pozvali do MICROSOFT Entra ID. Další informace o povolených uživatelích Microsoft Entra naleznete v tématu Microsoft Entra funkce a omezení ve službě SQL Database.
Pokud váš tenant Microsoft Entra ještě nemá uživatele, vytvořte ho podle pokynů v tématu Přidání nebo odstranění uživatelů pomocí ID Microsoft Entra.
Vyhledejte ID objektu uživatele Microsoft Entra pomocí az ad user list
a nahraďte <hlavní název> uživatele. Výsledek se uloží do proměnné.
$azureaduser=(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query '[].id' --output tsv)
Tip
Pokud chcete zobrazit seznam všech hlavních názvů uživatelů v Microsoft Entra ID, spusťte az ad user list --query '[].userPrincipalName'
příkaz .
Přidejte tohoto uživatele Microsoft Entra jako správce služby Active Directory pomocí az sql server ad-admin create
příkazu v Cloud Shellu. V následujícím příkazu nahraďte <název> serveru názvem serveru (bez přípony .database.windows.net
).
az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser
Další informace o přidání správce služby Active Directory najdete v tématu Zřízení správce Microsoft Entra pro váš server.
Visual Studio pro Windows je integrované s ověřováním Microsoft Entra. Pokud chcete povolit vývoj a ladění v sadě Visual Studio, přidejte uživatele Microsoft Entra v sadě Visual Studio tak, že v nabídce vyberete Nastavení účtu souboru>a vyberete Přihlásit se nebo Přidat.
Pokud chcete nastavit uživatele Microsoft Entra pro ověřování služby Azure, v nabídce vyberte Možnosti nástrojů>a pak vyberte Výběr účtu ověřování>služby Azure. Vyberte uživatele Microsoft Entra, který jste přidali, a vyberte OK.
Další informace o nastavení vývojového prostředí pro ověřování Microsoft Entra najdete v tématu Klientská knihovna identit Azure pro .NET.
Teď jste připraveni vyvíjet a ladit aplikaci pomocí služby SQL Database jako back-endu pomocí ověřování Microsoft Entra.
Poznámka
Microsoft.Azure.Services.AppAuthentication se už nedoporučuje používat s novou sadou Azure SDK.
Nahrazuje se novou klientskou knihovnou Azure Identity, která je k dispozici pro .NET, Java, TypeScript a Python a měla by se používat pro veškerý nový vývoj.
Informace o tom, jak migrovat, Azure Identity
najdete tady: Pokyny k migraci appAuthentication do Azure.Identity Migration.
Postup, který použijete pro váš projekt, závisí na tom, jestli používáte Entity Framework Core (výchozí pro ASP.NET Core) nebo Entity Framework (výchozí pro ASP.NET).
V sadě Visual Studio otevřete konzolu Správce balíčků a přidejte balíček NuGet Microsoft.Data.SqlClient:
Install-Package Microsoft.Data.SqlClient -Version 5.1.0
V kurzuMyDbConnection
ASP.NET Core a SQL Database se zatím připojovací řetězec v appsettings.json nepoužívá. Místní prostředí i prostředí Azure z příslušných proměnných prostředí získají připojovací řetězec, aby se tajné kódy připojení zachovaly mimo zdrojový soubor. Teď ale s ověřováním active directory neexistují žádné další tajné kódy. V appsettings.json nahraďte hodnotu MyDbConnection
připojovací řetězec:
"Server=tcp:<server-name>.database.windows.net;Authentication=Active Directory Default; Database=<database-name>;"
Poznámka
Výchozí typ ověřování služby Active Directory se dá použít na místním počítači i ve službě Aplikace Azure Service. Ovladač se pokusí získat token z ID Microsoft Entra pomocí různých prostředků. Pokud je aplikace nasazená, získá token ze spravované identity přiřazené systémem aplikace. Může se také ověřit pomocí spravované identity přiřazené uživatelem, pokud do svého připojovací řetězec zahrnete: User Id=<client-id-of-user-assigned-managed-identity>;
Pokud je aplikace spuštěná místně, pokusí se získat token ze sady Visual Studio, editoru Visual Studio Code a Azure CLI.
To je vše, co potřebujete pro připojení ke službě SQL Database. Při ladění v sadě Visual Studio používá váš kód uživatele Microsoft Entra, který jste nakonfigurovali ve verzi 2. Nastavte vývojové prostředí. Později nastavíte SLUŽBU SQL Database tak, aby umožňovala připojení ze spravované identity vaší aplikace App Service. Třída DefaultAzureCredential
uloží token do mezipaměti do paměti a načte ho z ID Microsoft Entra těsně před vypršením platnosti. K aktualizaci tokenu nepotřebujete žádný vlastní kód.
Zadejte Ctrl+F5
, aby se aplikace spustila znovu. Stejná aplikace CRUD v prohlížeči se teď připojuje přímo ke službě Azure SQL Database pomocí ověřování Microsoft Entra. Toto nastavení umožňuje spouštět migrace databází ze sady Visual Studio.
Dále nakonfigurujete aplikaci App Service tak, aby se připojila ke službě SQL Database pomocí spravované identity přiřazené systémem.
Poznámka
Pokyny v této části jsou určené pro identitu přiřazenou systémem. Pokud chcete použít identitu přiřazenou uživatelem, přečtěte si kurz : Připojení k databázím Azure ze služby App Service bez tajných kódů pomocí spravované identity.
K povolení spravované identity u aplikace Azure použijte příkaz az webapp identity assign v prostředí Cloud Shell. V následujícím příkazu nahraďte <název> aplikace.
az webapp identity assign --resource-group myResourceGroup --name <app-name>
Poznámka
Pokud chcete povolit spravovanou identitu pro slot nasazení, přidejte --slot <slot-name>
a použijte název slotu v <názvu> slotu.
Tady je příklad výstupu:
{ "additionalProperties": {}, "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "SystemAssigned" }
Poznámka
Pokud chcete, můžete přidat identitu do skupiny Microsoft Entra a pak místo identity udělit přístup ke službě SQL Database skupině Microsoft Entra. Například následující příkazy přidají spravovanou identitu z předchozího kroku do nové skupiny myAzureSQLDBAccessGroup:
$groupid=(az ad group create --display-name myAzureSQLDBAccessGroup --mail-nickname myAzureSQLDBAccessGroup --query objectId --output tsv)
$msiobjectid=(az webapp identity show --resource-group myResourceGroup --name <app-name> --query principalId --output tsv)
az ad group member add --group $groupid --member-id $msiobjectid
az ad group member list -g $groupid
Ve službě Cloud Shell se přihlaste ke službě SQL Database pomocí příkazu SQLCMD. Nahraďte <název> serveru názvem vašeho serveru,< db-name> názvem databáze, který vaše aplikace používá, a< aad-user-name> a aad-password <> přihlašovacími údaji uživatele Microsoft Entra.
sqlcmd -S <server-name>.database.windows.net -d <db-name> -U <aad-user-name> -P "<aad-password>" -G -l 30
Na příkazovém řádku SQL pro požadovanou databázi spusťte následující příkazy, které udělují minimální oprávnění, která vaše aplikace potřebuje. Příklad:
CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<identity-name>];
GO
<identity-name> je název spravované identity v Microsoft Entra ID. Pokud je identita přiřazená systémem, název je vždy stejný jako název vaší aplikace App Service. Název identity přiřazené systémem pro slot nasazení je <název app-name>/slots/<slot-name>. Pokud chcete udělit oprávnění pro skupinu Microsoft Entra, použijte místo toho zobrazovaný název skupiny (například myAzureSQLDBAccessGroup).
Zadáním EXIT
se vraťte do příkazového řádku služby Cloud Shell.
Poznámka
Back-endové služby spravovaných identit také udržují mezipaměť tokenů, která aktualizuje token pro cílový prostředek pouze v případě, že vyprší jeho platnost. Pokud uděláte chybu při konfiguraci oprávnění služby SQL Database a pokusíte se upravit oprávnění po pokusu o získání tokenu s vaší aplikací, ve skutečnosti nezískáte nový token s aktualizovanými oprávněními, dokud nevyprší platnost tokenu uloženého v mezipaměti.
Poznámka
Místní SQL Server nepodporuje ID Microsoft Entra a spravované identity.
Mějte na paměti, že stejné změny, které jste provedli ve službě Web.config nebo appsettings.json, fungují se spravovanou identitou, takže jedinou věcí, kterou je potřeba udělat, je odebrat existující připojovací řetězec ve službě App Service, kterou Visual Studio poprvé vytvořilo při nasazování vaší aplikace. Použijte následující příkaz, ale nahraďte <název> aplikace názvem vaší aplikace.
az webapp config connection-string delete --resource-group myResourceGroup --name <app-name> --setting-names MyDbConnection
Teď už stačí jen publikovat provedené změny do Azure.
Pokud jste přišli z kurzu: Sestavte aplikaci ASP.NET v Azure pomocí SLUŽBY SQL Database, publikujte změny v sadě Visual Studio. V Průzkumníku řešení klikněte pravým tlačítkem na projekt DotNetAppSqlDb a vyberte Publikovat.
Na stránce publikování vyberte Publikovat.
Důležité
Ujistěte se, že se název vaší služby App Service neshoduje s žádnou existující registrací aplikací. To povede ke konfliktům hlavního ID.
Pokud se na nové webové stránce zobrazí seznam úkolů, připojuje se vaše aplikace k databázi pomocí spravované identity.
Teď byste měli mít možnost upravovat seznam úkolu stejně jako předtím.
V předchozích krocích jste vytvořili prostředky Azure ve skupině prostředků. Pokud předpokládáte, že už tyto prostředky nebudete potřebovat, odstraňte skupinu prostředků spuštěním následujícího příkazu ve službě Cloud Shell:
az group delete --name myResourceGroup
Spuštění tohoto příkazu může trvat přibližně minut.
Naučili jste se:
Události
Vytváření inteligentních aplikací
17. 3. 23 - 21. 3. 23
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatŠkolení
Modul
Přizpůsobení aplikace .NET Aspire tak, aby používala existující prostředky Azure - Training
V tomto modulu se dozvíte, jak přesunout backingové služby pro aplikaci .NET hostované v Azure z kontejnerů do nativních služeb Azure.
Certifikace
Microsoft Certified: Přidružení správce identit a přístupu - Certifications
Předveďte funkce Microsoft Entra ID pro modernizaci řešení identit, implementaci hybridních řešení a implementaci zásad správného řízení identit.