자습서: 관리 ID를 사용하여 App Service에서 Azure SQL Database 연결 보호Tutorial: Secure Azure SQL Database connection from App Service using a managed identity

App Service는 Azure에서 확장성 높은 자체 패치 웹 호스팅 서비스를 제공합니다.App Service provides a highly scalable, self-patching web hosting service in Azure. 또한 Azure SQL Database 및 기타 Azure 서비스에 대한 액세스를 보호하기 위한 턴키 솔루션인 관리 ID를 앱에 제공합니다.It also provides a managed identity for your app, which is a turn-key solution for securing access to Azure SQL Database and other Azure services. App Service의 관리 ID는 연결 문자열의 자격 증명과 같은 비밀을 앱에서 제거하여 앱의 보안을 보다 강화합니다.Managed identities in App Service make your app more secure by eliminating secrets from your app, such as credentials in the connection strings. 이 자습서에서는 다음 자습서 중 하나에서 빌드한 샘플 웹앱에 관리 ID를 추가합니다.In this tutorial, you will add managed identity to the sample web app you built in one of the following tutorials:

완료되면 샘플 앱은 사용자 이름과 암호 없이도 안전하게 SQL Database에 연결됩니다.When you're finished, your sample app will connect to SQL Database securely without the need of username and passwords.

참고

이 자습서에서 다루는 단계는 다음 버전을 지원합니다.The steps covered in this tutorial support the following versions:

  • .NET Framework 4.7.2 이상.NET Framework 4.7.2 and above
  • .NET Core 2.2 이상.NET Core 2.2 and above

다음을 알아봅니다.What you will learn:

  • 관리 ID 사용Enable managed identities
  • 관리 ID에 SQL Database 액세스 권한 부여Grant SQL Database access to the managed identity
  • SQL Database에서 Azure AD 인증을 사용하도록 Entity Framework 구성Configure Entity Framework to use Azure AD authentication with SQL Database
  • Visual Studio에서 Azure AD 인증을 사용하여 SQL Database에 연결Connect to SQL Database from Visual Studio using Azure AD authentication

참고

Azure AD 인증은 온-프레미스 Active Directory(AD DS)의 통합 Windows 인증다릅니다.Azure AD authentication is different from Integrated Windows authentication in on-premises Active Directory (AD DS). AD DS 및 Azure AD는 완전히 다른 인증 프로토콜을 사용합니다.AD DS and Azure AD use completely different authentication protocols. 자세한 내용은 Azure AD Domain Services 설명서를 참조하세요.For more information, see Azure AD Domain Services documentation.

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.If you don't have an Azure subscription, create a free account before you begin.

필수 구성 요소Prerequisites

이 문서는 자습서: SQL Database를 사용하여 Azure에서 ASP.NET 앱 빌드 또는 자습서: Azure App Service에서 ASP.NET Core 및 SQL Database 앱 빌드에서 중단한 곳에서 이어집니다.This article continues where you left off in Tutorial: Build an ASP.NET app in Azure with SQL Database or Tutorial: Build an ASP.NET Core and SQL Database app in Azure App Service. 아직 수행하지 않은 경우 두 자습서 중 하나를 먼저 수행합니다.If you haven't already, follow one of the two tutorials first. 또는 SQL Database를 사용하여 해당 .NET 앱에 맞게 단계를 조정할 수 있습니다.Alternatively, you can adapt the steps for your own .NET app with SQL Database.

SQL Database를 백 엔드로 사용하여 앱을 디버깅하려면 컴퓨터에서 클라이언트 연결을 허용했는지 확인합니다.To debug your app using SQL Database as the back end, make sure that you've allowed client connection from your computer. 그렇지 않은 경우 Azure Portal를 사용하여 서버 수준 IP 방화벽 규칙 관리의 단계에 따라 클라이언트 IP를 추가합니다.If not, add the client IP by following the steps at Manage server-level IP firewall rules using the Azure portal.

Azure Cloud Shell 사용Use Azure Cloud Shell

Azure는 브라우저를 통해 사용할 수 있는 대화형 셸 환경인 Azure Cloud Shell을 호스트합니다.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell에서 Bash 또는 PowerShell을 사용하여 Azure 서비스 작업을 수행할 수 있습니다.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. 로컬 환경에 아무 것도 설치할 필요 없이 Azure Cloud Shell의 미리 설치된 명령을 사용하여 이 문서의 코드를 실행할 수 있습니다.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell을 시작하려면 다음을 수행합니다.To start Azure Cloud Shell:

옵션Option 예제/링크Example/Link
코드 블록의 오른쪽 위 모서리에서 사용을 선택합니다.Select Try It in the upper-right corner of a code block. 사용해보기를 선택하면 코드가 Cloud Shell에 자동으로 복사되지 않습니다.Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell에 대한 사용 예제
https://shell.azure.com으로 이동하거나 Cloud Shell 시작 버튼을 선택하여 브라우저에서 Cloud Shell을 엽니다.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. 새 창에서 Cloud Shell 시작Launch Cloud Shell in a new window
Azure Portal의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Azure Portal의 Cloud Shell 단추

이 문서의 코드를 Azure Cloud Shell에서 실행하려면 다음을 수행합니다.To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell을 시작합니다.Start Cloud Shell.

  2. 코드 블록의 복사 단추를 선택하여 코드를 복사합니다.Select the Copy button on a code block to copy the code.

  3. Windows 및 Linux에서 Ctrl+Shift+V를 선택하거나 macOS에서 Cmd+Shift+V를 선택하여 코드를 Cloud Shell 세션에 붙여넣습니다.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Enter를 선택하여 코드를 실행합니다.Select Enter to run the code.

Azure AD 사용자에 데이터베이스 액세스 권한 부여Grant database access to Azure AD user

먼저 Azure AD 사용자를 서버의 Active Directory 관리자로 할당하여 SQL Database에 대한 Azure AD 인증을 사용하도록 설정합니다.First enable Azure AD authentication to SQL Database by assigning an Azure AD user as the Active Directory admin of the server. 이 사용자는 Azure 구독에 가입하는 데 사용한 Microsoft 계정과 다릅니다.This user is different from the Microsoft account you used to sign up for your Azure subscription. 자신이 만들거나, Azure AD로 가져오거나, 동기화하거나, 초대한 사용자여야 합니다.It must be a user that you created, imported, synced, or invited into Azure AD. 허용된 Azure AD 사용자에 대한 자세한 내용은 Azure AD 기능 및 SQL Database의 제한 사항을 참조하세요.For more information on allowed Azure AD users, see Azure AD features and limitations in SQL Database.

Azure AD 테넌트에 아직 사용자가 없는 경우 Azure Active Directory를 사용하여 사용자 추가 또는 삭제의 단계에 따라 하나를 만듭니다.If your Azure AD tenant doesn't have a user yet, create one by following the steps at Add or delete users using Azure Active Directory.

az ad user list를 사용하여 Azure AD 사용자의 개체 ID를 찾고 <user-principal-name> 를 바꿉니다.Find the object ID of the Azure AD user using the az ad user list and replace <user-principal-name>. 결과는 변수에 저장됩니다.The result is saved to a variable.

azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].objectId --output tsv)

Azure AD의 모든 사용자 계정 이름 목록을 보려면 az ad user list --query [].userPrincipalName을 실행합니다.To see the list of all user principal names in Azure AD, run az ad user list --query [].userPrincipalName.

Cloud Shell에서 az sql server ad-admin create 명령을 사용하여 이 Azure AD 사용자를 Active Directory 관리자로 추가합니다.Add this Azure AD user as an Active Directory admin using az sql server ad-admin create command in the Cloud Shell. 다음 명령에서 <server-name> 을 서버 이름(.database.windows.net 접미사 없이)으로 바꿉니다.In the following command, replace <server-name> with the server name (without the .database.windows.net suffix).

az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser

Active Directory 관리자를 추가하는 방법에 대한 자세한 내용은 서버의 Azure Active Directory 관리자 프로비전을 참조하세요.For more information on adding an Active Directory admin, see Provision an Azure Active Directory administrator for your server

Visual Studio 설정Set up Visual Studio

Windows 클라이언트Windows client

Windows용 Visual Studio는 Azure AD 인증과 통합됩니다.Visual Studio for Windows is integrated with Azure AD authentication. Visual Studio에서 개발 및 디버깅을 사용하도록 설정하려면 Visual Studio의 메뉴에서 파일 > 계정 설정을 선택하여 Azure AD 사용자를 추가하고 계정 추가를 클릭합니다.To enable development and debugging in Visual Studio, add your Azure AD user in Visual Studio by selecting File > Account Settings from the menu, and click Add an account.

Azure 서비스 인증의 Azure AD 사용자를 설정하려면 메뉴에서 도구 > 옵션을 선택한 후 Azure 서비스 인증 > 계정 선택을 선택합니다.To set the Azure AD user for Azure service authentication, select Tools > Options from the menu, then select Azure Service Authentication > Account Selection. 추가한 Azure AD 사용자를 선택하고 확인을 클릭합니다.Select the Azure AD user you added and click OK.

이제 백 엔드 SQL Database에서 Azure AD 인증을 사용하여 앱을 개발하고 디버그할 준비가 되었습니다.You're now ready to develop and debug your app with the SQL Database as the back end, using Azure AD authentication.

macOS 클라이언트macOS client

Mac용 Visual Studio는 Azure AD 인증과 통합되지 않습니다.Visual Studio for Mac is not integrated with Azure AD authentication. 그러나 나중에 사용할 Microsoft.Azure.Services.AppAuthentication 라이브러리는 Azure CLI의 토큰을 사용할 수 있습니다.However, the Microsoft.Azure.Services.AppAuthentication library that you will use later can use tokens from Azure CLI. Visual Studio에서 개발 및 디버깅을 사용하려면 먼저 로컬 머신에 Azure CLI를 설치해야 합니다.To enable development and debugging in Visual Studio, first you need to install Azure CLI on your local machine.

로컬 머신에 Azure CLI를 설치했으면 다음 명령을 사용하여 Azure AD 사용자로 Azure CLI에 로그인합니다.Once Azure CLI is installed on your local machine, sign in to Azure CLI with the following command using your Azure AD user:

az login --allow-no-subscriptions

이제 백 엔드 SQL Database에서 Azure AD 인증을 사용하여 앱을 개발하고 디버그할 준비가 되었습니다.You're now ready to develop and debug your app with the SQL Database as the back end, using Azure AD authentication.

프로젝트 수정Modify your project

프로젝트에 대해 수행하는 단계는 ASP.NET 프로젝트인지 아니면 ASP.NET Core 프로젝트인지에 따라 달라집니다.The steps you follow for your project depends on whether it's an ASP.NET project or an ASP.NET Core project.

ASP.NET 수정Modify ASP.NET

Visual Studio에서 패키지 관리자 콘솔을 열고, Microsoft.Azure.Services.AppAuthentication NuGet 패키지를 추가합니다.In Visual Studio, open the Package Manager Console and add the NuGet package Microsoft.Azure.Services.AppAuthentication:

Install-Package Microsoft.Azure.Services.AppAuthentication -Version 1.4.0

Web.config에서 파일 위쪽부터 다음과 같은 변경 작업을 수행합니다.In Web.config, working from the top of the file and make the following changes:

  • <configSections>에서 다음과 같은 섹션 선언을 추가합니다.In <configSections>, add the following section declaration in it:

    <section name="SqlAuthenticationProviders" type="System.Data.SqlClient.SqlAuthenticationProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    
  • 닫는 </configSections> 태그 아래에서 <SqlAuthenticationProviders>에 다음 XML 코드를 추가합니다.below the closing </configSections> tag, add the following XML code for <SqlAuthenticationProviders>.

    <SqlAuthenticationProviders>
      <providers>
        <add name="Active Directory Interactive" type="Microsoft.Azure.Services.AppAuthentication.SqlAppAuthenticationProvider, Microsoft.Azure.Services.AppAuthentication" />
      </providers>
    </SqlAuthenticationProviders>
    
  • MyDbConnection이라는 연결 문자열을 찾고 connectionString 값을 "server=tcp:<server-name>.database.windows.net;database=<db-name>;UID=AnyString;Authentication=Active Directory Interactive"로 바꿉니다.Find the connection string called MyDbConnection and replace its connectionString value with "server=tcp:<server-name>.database.windows.net;database=<db-name>;UID=AnyString;Authentication=Active Directory Interactive". <server-name><db-name> 을 서버 이름 및 데이터베이스 이름으로 바꿉니다.Replace <server-name> and <db-name> with your server name and database name.

참고

방금 등록한 SqlAuthenticationProvider는 이전에 설치한 AppAuthentication 라이브러리를 기반으로 합니다.The SqlAuthenticationProvider you just registered is based on top of the AppAuthentication library you installed earlier. 기본적으로 시스템 할당 ID를 사용합니다.By default, it uses a system-assigned identity. 사용자 할당 ID를 활용하려면 추가 구성을 제공해야 합니다.To leverage a user-assigned identity, you will need to provide an additional configuration. AppAuthentication 라이브러리는 연결 문자열 지원을 참조하세요.Please see connection string support for the AppAuthentication library.

SQL Database에 연결하는 데 필요한 모든 항목입니다.That's every thing you need to connect to SQL Database. Visual studio에서 디버깅하는 경우 코드는 Visual Studio 설정에서 구성한 Azure AD 사용자를 사용합니다.When debugging in Visual Studio, your code uses the Azure AD user you configured in Set up Visual Studio. App Service 앱의 관리 ID에서 연결할 수 있도록 SQL Database를 나중에 설정합니다.You'll set up SQL Database later to allow connection from the managed identity of your App Service app.

Ctrl+F5를 입력하여 앱을 다시 실행합니다.Type Ctrl+F5 to run the app again. 이제 브라우저에서 동일한 CRUD 앱이 Azure AD 인증을 사용하여 Azure SQL Database에 직접 연결합니다.The same CRUD app in your browser is now connecting to the Azure SQL Database directly, using Azure AD authentication. 이 설정을 사용하면 Visual Studio에서 데이터베이스 마이그레이션을 실행할 수 있습니다.This setup lets you run database migrations from Visual Studio.

ASP.NET Core 수정Modify ASP.NET Core

Visual Studio에서 패키지 관리자 콘솔을 열고, Microsoft.Azure.Services.AppAuthentication NuGet 패키지를 추가합니다.In Visual Studio, open the Package Manager Console and add the NuGet package Microsoft.Azure.Services.AppAuthentication:

Install-Package Microsoft.Azure.Services.AppAuthentication -Version 1.4.0

ASP.NET Core 및 SQL Database 자습서에서는 로컬 개발 환경에서 Sqlite 데이터베이스 파일을 사용하고 Azure 프로덕션 환경에서 App Service의 연결 문자열을 사용하기 때문에 MyDbConnection 연결 문자열은 전혀 사용되지 않습니다.In the ASP.NET Core and SQL Database tutorial, the MyDbConnection connection string isn't used at all because the local development environment uses a Sqlite database file, and the Azure production environment uses a connection string from App Service. Active Directory 인증을 사용하여 두 환경에서 동일한 연결 문자열을 사용하려고 합니다.With Active Directory authentication, you want both environments to use the same connection string. appsettings.json에서 연결 문자열 MyDbConnection의 값을 다음으로 바꿉니다.In appsettings.json, replace the value of the MyDbConnection connection string with:

"Server=tcp:<server-name>.database.windows.net,1433;Database=<database-name>;"

다음으로, SQL Database에 대한 액세스 토큰을 사용하여 Entity Framework 데이터베이스 컨텍스트를 제공합니다.Next, you supply the Entity Framework database context with the access token for the SQL Database. Data\MyDatabaseContext.cs에서 다음 코드를 빈 MyDatabaseContext (DbContextOptions<MyDatabaseContext> options) 생성자의 중괄호 내에 추가합니다.In Data\MyDatabaseContext.cs, add the following code inside the curly braces of the empty MyDatabaseContext (DbContextOptions<MyDatabaseContext> options) constructor:

var conn = (Microsoft.Data.SqlClient.SqlConnection)Database.GetDbConnection();
conn.AccessToken = (new Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;

참고

이 데모 코드는 명확성과 단순성을 위해 동기식입니다.This demonstration code is synchronous for clarity and simplicity.

SQL Database에 연결하는 데 필요한 모든 항목입니다.That's every thing you need to connect to SQL Database. Visual studio에서 디버깅하는 경우 코드는 Visual Studio 설정에서 구성한 Azure AD 사용자를 사용합니다.When debugging in Visual Studio, your code uses the Azure AD user you configured in Set up Visual Studio. App Service 앱의 관리 ID에서 연결할 수 있도록 SQL Database를 나중에 설정합니다.You'll set up SQL Database later to allow connection from the managed identity of your App Service app. AzureServiceTokenProvider 클래스는 메모리에서 토큰을 캐시하여 만료 직전에 Azure AD에서 검색합니다.The AzureServiceTokenProvider class caches the token in memory and retrieves it from Azure AD just before expiration. 토큰을 새로 고치는 데 사용자 지정 코드는 필요하지 않습니다.You don't need any custom code to refresh the token.

구성한 Azure AD 사용자가 여러 테넌트에 액세스할 수 있는 경우 원하는 테넌트 ID로 GetAccessTokenAsync("https://database.windows.net/", tenantid)를 호출하여 적절한 액세스 토큰을 검색합니다.If the Azure AD user you configured has access to multiple tenants, call GetAccessTokenAsync("https://database.windows.net/", tenantid) with the desired tenant ID to retrieve the proper access token.

Ctrl+F5를 입력하여 앱을 다시 실행합니다.Type Ctrl+F5 to run the app again. 이제 브라우저에서 동일한 CRUD 앱이 Azure AD 인증을 사용하여 Azure SQL Database에 직접 연결합니다.The same CRUD app in your browser is now connecting to the Azure SQL Database directly, using Azure AD authentication. 이 설정을 사용하면 Visual Studio에서 데이터베이스 마이그레이션을 실행할 수 있습니다.This setup lets you run database migrations from Visual Studio.

관리 ID 연결 사용Use managed identity connectivity

다음으로, 시스템에서 할당한 관리 ID를 사용하여 SQL Database에 연결하도록 App Service 앱을 구성합니다.Next, you configure your App Service app to connect to SQL Database with a system-assigned managed identity.

참고

이 섹션의 지침은 시스템 할당 ID에 대한 것이지만 사용자 할당 ID를 쉽게 사용할 수 있습니다.While the instructions in this section are for a system-assigned identity, a user-assigned identity can just as easily be used. 이 작업을 수행하려면To do this. 원하는 사용자 할당 ID를 할당하려면 az webapp identity assign command를 변경해야 합니다.you would need the change the az webapp identity assign command to assign the desired user-assigned identity. 그런 다음, SQL 사용자를 만들 때 사이트 이름이 아닌 사용자 할당 ID 리소스의 이름을 사용해야 합니다.Then, when creating the SQL user, make sure to use the name of the user-assigned identity resource rather than the site name.

앱에서 관리 ID 사용Enable managed identity on app

Azure 앱의 관리 ID를 사용하려면 Cloud Shell에서 az webapp identity assign 명령을 사용합니다.To enable a managed identity for your Azure app, use the az webapp identity assign command in the Cloud Shell. 다음 명령에서 <app-name> 을 바꿉니다.In the following command, replace <app-name>.

az webapp identity assign --resource-group myResourceGroup --name <app-name>

다음은 출력의 예입니다.Here's an example of the output:

{
  "additionalProperties": {},
  "principalId": "21dfa71c-9e6f-4d17-9e90-1d28801c9735",
  "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
  "type": "SystemAssigned"
}

관리 ID에 사용 권한 부여Grant permissions to managed identity

참고

원하는 경우 Azure AD 그룹에 ID를 추가한 다음, ID 대신 Azure AD 그룹에 SQL Database 액세스 권한을 부여할 수 있습니다.If you want, you can add the identity to an Azure AD group, then grant SQL Database access to the Azure AD group instead of the identity. 예를 들어 다음 명령은 이전 단계의 관리 ID를 _myAzureSQLDBAccessGroup_이라는 새 그룹에 추가합니다.For example, the following commands add the managed identity from the previous step to a new group called 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

Cloud Shell에서 SQLCMD 명령을 사용하여 SQL Database에 로그인합니다.In the Cloud Shell, sign in to SQL Database by using the SQLCMD command. <server-name> 를 서버 이름으로, <db-name> 을 앱에서 사용하는 데이터베이스 이름으로, <aad-user-name><aad-password> 를 Azure AD 사용자의 자격 증명으로 바꿉니다.Replace <server-name> with your server name, <db-name> with the database name your app uses, and <aad-user-name> and <aad-password> with your Azure AD user's credentials.

sqlcmd -S <server-name>.database.windows.net -d <db-name> -U <aad-user-name> -P "<aad-password>" -G -l 30

원하는 데이터베이스에 대한 SQL 프롬프트에서 다음 명령을 실행하여 앱에 필요한 권한을 부여합니다.In the SQL prompt for the database you want, run the following commands to grant the permissions your app needs. 예를 들면 다음과 같습니다.For example,

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> 은 Azure AD의 관리 ID 이름입니다.<identity-name> is the name of the managed identity in Azure AD. ID가 시스템 할당된 경우 이름은 App Service 앱의 이름과 항상 동일합니다.If the identity is system-assigned, the name always the same as the name of your App Service app. Azure AD 그룹에 대한 사용 권한을 부여하려면 대신 그룹의 표시 이름을 사용합니다(예: myAzureSQLDBAccessGroup).To grant permissions for an Azure AD group, use the group's display name instead (for example, myAzureSQLDBAccessGroup).

EXIT를 입력하여 Cloud Shell 프롬프트로 돌아갑니다.Type EXIT to return to the Cloud Shell prompt.

참고

또한 관리 ID의 백 엔드 서비스는 만료된 경우에만 대상 리소스에 대한 토큰을 업데이트하는 토큰 캐시를 유지 관리합니다.The back-end services of managed identities also maintains a token cache that updates the token for a target resource only when it expires. SQL Database 사용 권한을 구성하는 실수를 하고 앱을 사용하여 토큰을 가져오려고 시도한 에 사용 권한을 수정하려고 하는 경우 캐시된 토큰이 만료될 때까지 실제로 업데이트된 권한으로 새 토큰을 얻을 수 없습니다.If you make a mistake configuring your SQL Database permissions and try to modify the permissions after trying to get a token with your app, you don't actually get a new token with the updated permissions until the cached token expires.

연결 문자열 수정Modify connection string

Web.config 또는 appsettings.json에서 변경한 내용은 관리 ID와 함께 작동하므로 Visual Studio가 처음으로 앱을 배포할 때 만든 기존 연결 문자열을 App Service에서 제거하기만 하면 됩니다.Remember that the same changes you made in Web.config or appsettings.json works with the managed identity, so the only thing to do is to remove the existing connection string in App Service, which Visual Studio created deploying your app the first time. 다음 명령을 사용하되 <app-name> 을 앱의 이름으로 바꾸어 사용합니다.Use the following command, but replace <app-name> with the name of your app.

az webapp config connection-string delete --resource-group myResourceGroup --name <app-name> --setting-names MyDbConnection

변경 내용 게시Publish your changes

이제 Azure에 변경 내용을 게시하면 됩니다.All that's left now is to publish your changes to Azure.

자습서: SQL Database를 사용하여 Azure에서 ASP.NET 앱 빌드 를 진행 중이었다면 Visual Studio에서 변경 내용을 게시합니다.If you came from Tutorial: Build an ASP.NET app in Azure with SQL Database, publish your changes in Visual Studio. 솔루션 탐색기에서 DotNetAppSqlDb 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다.In the Solution Explorer, right-click your DotNetAppSqlDb project and select Publish.

솔루션 탐색기에서 게시

게시 페이지에서 게시를 클릭합니다.In the publish page, click Publish.

자습서: Azure App Service에서 ASP.NET Core 및 SQL Database 앱 빌드 를 진행 중이었다면 다음 명령으로 Git을 사용하여 변경 내용을 게시합니다.If you came from Tutorial: Build an ASP.NET Core and SQL Database app in Azure App Service, publish your changes using Git, with the following commands:

git commit -am "configure managed identity"
git push azure master

새 웹 페이지에 할 일 목록이 표시되면 앱이 관리 ID를 사용하여 데이터베이스에 연결합니다.When the new webpage shows your to-do list, your app is connecting to the database using the managed identity.

Code First 마이그레이션 후 Azure 앱

이제 이전처럼 할 일 목록을 편집할 수 있어야 합니다.You should now be able to edit the to-do list as before.

리소스 정리Clean up resources

이전 단계에서 Azure 리소스를 리소스 그룹에 만들었습니다.In the preceding steps, you created Azure resources in a resource group. 나중에 이러한 리소스가 필요하지 않을 것 같으면 Cloud Shell에서 다음 명령을 실행하여 리소스 그룹을 삭제합니다.If you don't expect to need these resources in the future, delete the resource group by running the following command in the Cloud Shell:

az group delete --name myResourceGroup

이 명령을 실행하는 데 1분 정도 걸릴 수 있습니다.This command may take a minute to run.

다음 단계Next steps

학습한 내용은 다음과 같습니다.What you learned:

  • 관리 ID 사용Enable managed identities
  • 관리 ID에 SQL Database 액세스 권한 부여Grant SQL Database access to the managed identity
  • SQL Database에서 Azure AD 인증을 사용하도록 Entity Framework 구성Configure Entity Framework to use Azure AD authentication with SQL Database
  • Visual Studio에서 Azure AD 인증을 사용하여 SQL Database에 연결Connect to SQL Database from Visual Studio using Azure AD authentication

다음 자습서로 이동하여 사용자 지정 DNS 이름을 웹앱에 매핑하는 방법을 알아봅니다.Advance to the next tutorial to learn how to map a custom DNS name to your web app.