다음을 통해 공유


자습서: 사용자를 인증하는 ASP.NET Core 웹앱 설정

적용 대상: 이 내용은 워크포스 테넌트에 적용됩니다. 흰색 체크 표시가 있는 녹색 원으로 표시됩니다.이 내용은 외부 테넌트에 적용됩니다. 흰색 체크 표시가 있는 녹색 원으로 표시됩니다. 외부 테넌트(자세한 정보)

이 자습서에서는 ASP.NET Core 웹앱을 만들고 인증을 위해 구성합니다. ASP.NET Core 웹 애플리케이션을 빌드하고 Microsoft Entra 관리 센터를 사용하여 인증을 준비하는 방법을 보여 주는 시리즈의 1부입니다. 이 애플리케이션은 직원 테넌트에 있는 직원 또는 외부 테넌트를 사용하는 고객에 사용할 수 있습니다.

이 자습서에서는 다음을 수행합니다.

  • ASP.NET Core 웹앱 만들기
  • 자체 서명된 인증서 만들기
  • 애플리케이션에 대한 설정 구성
  • 플랫폼 설정 및 URL 정의

필수 구성 요소

  • 활성 구독이 있는 Azure 계정입니다. 계정을무료로 만드세요. 이 계정에는 애플리케이션을 관리할 수 있는 권한이 있어야 합니다. 애플리케이션을 등록하는 데 필요한 다음 역할을 사용합니다.
    • 애플리케이션 관리자
    • 애플리케이션 개발자
  • ASP.NET Core 애플리케이션을 지원하는 모든 IDE(통합 개발 환경)를 사용할 수 있지만 이 자습서에서는 Visual Studio Code사용합니다. 에서 다운로드할 수 있습니다.
  • .NET 8.0 SDK최소 요구 사항.
  • ASP.NET Core 개발자 인증서입니다. dotnet dev-certs를 사용하여 인증서를 설치하십시오
  • 새 앱을 Microsoft Entra 관리 센터에 등록하고, 해당 조직 디렉터리의 계정만을 위해 구성합니다. 자세한 내용은 Register an application을 참조하십시오. 응용 프로그램 개요 페이지에서 다음 값을 나중에 사용할 수 있도록 기록하십시오.
    • 애플리케이션(클라이언트) ID
    • 디렉터리(테넌트) ID
  • 플랫폼 구성을 사용하여 다음 리디렉션 URI를 추가합니다. 자세한 내용은 애플리케이션에서 리디렉션 URI를 추가하는 방법을 참조하세요 .
    • 리디렉션 URI: https://localhost:5001/signin-oidc
    • 프런트 채널 로그아웃 URL: https://localhost:5001/signout-oidc
  • 개발을 위해 자체 서명된 인증서만듭니다. 자격 증명 추가를 참조하여 인증서를 업로드하고 인증서 지문을 기록하세요. 프로덕션 앱에 자체 서명된 인증서 사용하지 마세요. 신뢰할 수 있는 인증 기관을 사용합니다.

ASP.NET Core 프로젝트 만들기

이 섹션에서는 Visual Studio Code에서 ASP.NET Core 프로젝트를 만듭니다.

  1. Visual Studio Code를 열고 파일 > 열기 폴더를 선택합니다... 프로젝트로 이동하여 프로젝트를 만들 위치를 선택합니다.

  2. 터미널 > 새 터미널선택하여 새 터미널을 엽니다.

  3. 다음 명령을 입력하여 MVC(모델 뷰 컨트롤러) ASP.NET Core 프로젝트를 만듭니다.

    dotnet new mvc -n identity-client-web-app
    

ID 패키지 설치

이 애플리케이션은 microsoft.Identity.Web 사용하며 관련 NuGet 패키지를 설치해야 합니다.

다음 코드 조각을 사용하여 새 identity-client-web-app 폴더로 변경하고 관련 NuGet 패키지를 설치합니다.

cd identity-client-web-app
dotnet add package Microsoft.Identity.Web.UI

인증을 위해 애플리케이션 구성

Microsoft ID 플랫폼을 사용하여 사용자를 로그인하는 웹 애플리케이션은 구성 파일appsettings.json통해 구성됩니다. ASP.NET Core에서는 다음 값을 지정해야 합니다.

Setting Description
Instance 국가별 클라우드에서 앱을 실행하는 인증 엔드포인트입니다. 다음 중 하나를 사용합니다.
- https://login.microsoftonline.com/ (Azure 퍼블릭 클라우드)
- https://login.microsoftonline.us/ (Azure 미국 정부)
- https://login.microsoftonline.de/ (Microsoft Entra Germany)
- https://login.partner.microsoftonline.cn/ (21Vianet에서 운영하는 Microsoft Entra China)
TenantId 앱이 등록된 테넌트 식별자입니다. 권장: 앱 등록에서 테넌트 ID를 사용합니다. 대안:
- organizations (모든 회사 또는 학교 계정)
- common (회사/학교 또는 Microsoft 개인 계정)
- consumers (Microsoft 개인 계정만 해당).
ClientId 애플리케이션 등록에서 얻은 애플리케이션(클라이언트)의 식별자입니다.
CertificateThumbprint Microsoft Entra 관리 센터에 업로드된 인증서의 지문입니다( 자격 증명 추가 참조).
CallbackPath 응답을 리디렉션하는 데 사용되는 경로입니다. 이 자습서에서는 /signin-oidc로 설정됩니다.
DownstreamApi Microsoft Graph에 액세스하기 위한 엔드포인트를 정의하는 식별자입니다. 애플리케이션 URI를 필요한 범위(예: user.read)와 결합합니다.

구성 파일 업데이트

IDE에서 appsettings.json 열고 파일 내용을 다음 코드 조각으로 바꿉니다. 따옴표로 된 텍스트를 이전에 기록된 값으로 바꿉니다.

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "Enter_the_Tenant_Id_Here",
    "ClientId": "Enter_the_Application_Id_Here",
    "ClientCertificates": [
      {
        "SourceType": "StoreWithThumbprint",
        "CertificateStorePath": "CurrentUser/My",
        "CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center"
      }   
    ],
    "CallbackPath": "/signin-oidc"
  },
    "DownstreamApi": {
      "BaseUrl": "https://graph.microsoft.com/v1.0/",
      "RelativePath": "me",
      "Scopes": [ 
        "user.read" 
      ]
    },
    "Logging": {
      "LogLevel": {
        "Default": "Information",
        "Microsoft.AspNetCore": "Warning"
      }
    },
    "AllowedHosts": "*"
  }

리디렉션 URI 업데이트

전제 조건, 리디렉션 URI는 https://localhost:5001/signin-oidc. 애플리케이션 시작 설정에서 업데이트해야 합니다. 로컬 애플리케이션 설치 중에 만든 리디렉션 URI 또는 애플리케이션 등록의 리디렉션 URI와 일치하는 경우 사용 가능한 다른 포트 번호를 사용할 수 있습니다.

  1. 속성 폴더에서 launchSettings.json 파일을 엽니다.

  2. https 개체를 찾고 applicationURI 값을 올바른 포트 번호(이 경우 5001)로 업데이트합니다. 줄은 다음 코드 조각과 유사해야 합니다.

    "applicationUrl": "https://localhost:5001;http://localhost:{port}",
    

다음 단계

권한 부여 및 인증 대한 ASP.NET Core 웹앱 구성