다음을 통해 공유


자습서: 사용자를 인증하는 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 관리 센터에 등록된 애플리케이션입니다. 이 자습서 시리즈의 목적을 위해 다음 설정을 사용합니다.
    • 이름: identity-client-web-app
    • 지원되는 계정 유형: 이 조직 디렉터리에 있는 계정만
    • 리디렉션 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 패키지를 설치합니다.

dotnet add package Microsoft.Identity.Web.UI

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

애플리케이션 설정에 기록된 값은 인증을 위해 애플리케이션을 구성하는 데 사용됩니다. appsettings.json구성 파일은 런타임 중에 사용되는 애플리케이션 설정을 저장하는 데 사용됩니다.

구성 파일 업데이트

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": "*"
  }
  • Instance - 인증 엔드포인트입니다. 국가별 클라우드에서 사용 가능한 다양한 엔드포인트를 확인합니다.
  • TenantId - 애플리케이션이 등록된 테넌트 식별자입니다. 따옴표의 텍스트를 등록된 애플리케이션의 개요 페이지에서 이전에 기록된 디렉터리(테넌트) ID 값으로 바꿉니다.
  • ClientId - 클라이언트라고도 하는 애플리케이션의 식별자입니다. 따옴표로 된 텍스트를 등록된 애플리케이션의 개요 페이지에서 이전에 기록된 애플리케이션(클라이언트) ID 값으로 바꿉니다.
  • ClientCertificates - 자체 서명된 인증서가 애플리케이션의 인증에 사용됩니다. CertificateThumbprint 텍스트를 이전에 기록된 인증서의 지문으로 바꿉니다. 프로덕션 앱에 자체 서명된 인증서를 사용하지 마세요.
  • CallbackPath - 서버가 적절한 애플리케이션에 대한 응답을 리디렉션하는 데 도움이 되는 식별자입니다.
  • DownstreamApi - Microsoft Graph에 액세스하기 위한 엔드포인트를 정의하는 식별자입니다. 애플리케이션 URI는 지정된 범위와 결합됩니다. 조직이 소유한 애플리케이션에 대한 구성을 정의하기 위해 Scopes 특성의 값은 약간 다릅니다.

리디렉션 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 웹앱 구성