자습서: 인증을 위한 애플리케이션 준비
이전 자습서에서는 Microsoft Entra 관리 센터에서 웹 애플리케이션을 등록했습니다. 이 자습서에서는 IDE를 사용하여 ASP.NET Core 웹앱을 만드는 방법을 보여 줍니다. 또한 자체 서명된 인증서를 만들고 Microsoft Entra 관리 센터에 업로드하여 애플리케이션을 보호합니다. 마지막으로 인증을 위해 애플리케이션을 구성합니다.
이 자습서에서:
- ASP.NET Core 웹앱 만들기
- 자체 서명된 인증서 만들기
- 애플리케이션에 대한 설정 구성
- 플랫폼 설정 및 URL 정의
필수 조건
- 자습서: Microsoft ID 플랫폼에 애플리케이션 등록의 필수 구성 요소 및 단계를 완료합니다.
- 이 자습서에서 사용되는 IDE는 여기에서 다운로드할 수 있습니다.
- Visual Studio 2022
- Visual Studio Code
- Mac용 Visual Studio 2022
- .NET 6.0 SDK의 최소 요구 사항입니다.
ASP.NET Core 프로젝트 만들기
다음 탭을 사용하여 IDE 내에서 ASP.NET Core 프로젝트를 만듭니다.
- Visual Studio를 열고 새 프로젝트 만들기를 선택합니다.
- ASP.NET Core Web App 템플릿을 검색하여 선택한 다음, 다음을 선택합니다.
- 프로젝트의 이름(예: NewWebAppLocal)을 입력합니다.
- 프로젝트의 위치를 선택하거나 기본 옵션을 적용한 다음, 다음을 선택합니다.
- 프레임워크, 인증 유형 및 HTTPS용 구성에 대한 기본값을 적용합니다. 이 자습서에서는 프로세스를 다루기 때문에 인증 유형을 없음으로 설정할 수 있습니다.
- 만들기를 실행합니다.
자체 서명된 인증서 생성 및 업로드
인증서 사용은 클라이언트와 서버 간의 통신을 보호하는 제안된 방법입니다. 이 자습서의 목적을 위해 자체 서명된 인증서가 프로젝트 디렉터리에 만들어집니다. 여기에서 자체 서명된 인증서에 대해 자세히 알아보세요.
도구> 명령줄 > 개발자 명령 프롬프트를 선택합니다.
다음 명령을 입력하여 새 자체 서명된 인증서를 만듭니다.
dotnet dev-certs https -ep ./certificate.crt --trust
Microsoft Entra 관리 센터에 인증서 업로드
애플리케이션에서 인증서를 사용할 수 있도록 하려면 테넌트로 업로드해야 합니다.
이전에 만든 앱의 개요 페이지에서 시작하여 관리에서 인증서 및 비밀을 선택하고 인증서 (0) 탭을 선택합니다.
인증서 업로드를 선택합니다.
폴더 아이콘을 선택한 다음, 이전에 만든 인증서를 찾아 선택합니다.
인증서에 대한 설명을 입력하고 추가를 선택합니다.
다음 단계에서 사용할 지문 값을 기록합니다.
인증 및 API 참조에 대한 애플리케이션 구성
이전에 기록된 값은 인증을 위해 애플리케이션을 구성하는 데 사용됩니다. appsettings.json 구성 파일은 런타임 중에 사용되는 애플리케이션 설정을 저장하는 데 사용됩니다. 애플리케이션도 웹 API를 호출하므로 이에 대한 참조도 포함되어야 합니다.
IDE에서 appsettings.json을 열고 파일 내용을 다음 코드 조각으로 바꿉니다. 따옴표 안의 텍스트를 이전에 기록된 값으로 바꿉니다.
{ "AzureAd": { "Instance": "https://login.microsoftonline.com/", "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center", "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center", "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
는 약간 다릅니다.
파일의 변경 내용을 저장합니다.
속성 폴더에서 launchSettings.json 파일을 엽니다.
launchSettings.json 내에서
https
값applicationURI
를 찾아 기록합니다(예:https://localhost:{port}
). 이 URL은 리디렉션 URI를 정의할 때 사용됩니다.http
값을 사용하지 마세요.
플랫폼 리디렉션 URI 추가
Microsoft Entra 관리 센터의 관리에서 앱 등록을 선택한 다음, 이전에 만든 애플리케이션을 선택합니다.
왼쪽 메뉴의 관리 아래에서 인증을 선택합니다.
플랫폼 구성에서 플랫폼 추가를 선택한 다음 웹을 선택합니다.
리디렉션 URI에서
applicationURL
및CallbackPath
,/signin-oidc
를https://localhost:{port}/signin-oidc
형식으로 입력합니다.프런트 채널 로그아웃 URL에서 로그아웃을 위한 다음 URL
https://localhost:{port}/signout-oidc
를 입력합니다.구성을 선택합니다.