빠른 시작: ASP.NET Core 웹앱에서 사용자 로그인 및 Microsoft Graph API 호출
이 빠른 시작에서는 샘플 ASP.NET Core 웹앱을 사용하여 인증 코드 흐름 사용하여 사용자를 로그인하고 Microsoft Graph API를 호출합니다. 이 샘플은 인증 처리를 위해 Microsoft 인증 라이브러리 for .NET 및 Microsoft Identity Web을 사용합니다.
필수 구성 요소
- 활성 구독이 있는 Azure 계정입니다. 아직 계정이 없으신 경우에는 무료로 계정을 만드세요.
- .NET 8.0 SDK 최소 요구 사항
- Visual Studio Code
애플리케이션 및 레코드 식별자 등록
등록을 완료하려면 애플리케이션에 이름을 제공하고 지원되는 계정 유형을 지정합니다. 등록되면 애플리케이션 개요 창에 애플리케이션 소스 코드에 필요한 식별자가 표시됩니다.
Microsoft Entra 관리 센터에 로그인합니다.
여러 테넌트에 액세스할 수 있는 경우 위쪽 메뉴의 설정 아이콘
사용하여 디렉터리 + 구독 메뉴에서 애플리케이션을 등록하려는 테넌트로 전환합니다.
Identity>애플리케이션>앱 등록으로 이동하여, 새 등록을 선택합니다.
identity-client-web-app같은 애플리케이션의 이름 입력합니다.
지원되는 계정 유형경우 이 조직 디렉터리에서 계정만선택합니다. 다른 계정 유형에 대한 정보를 보려면 선택 도움말 옵션을 선택하세요.
등록선택합니다.
등록이 완료되면 애플리케이션의 개요 창이 표시됩니다. 애플리케이션 소스 코드에서 사용할 디렉터리(테넌트) ID 및 애플리케이션(클라이언트) ID 기록합니다.
메모
지원되는 계정 유형은 애플리케이션이 지원하는 계정 수정을 참조하여 변경할 수 있습니다.
플랫폼 리디렉션 URI 추가
앱 등록에 앱 유형을 지정하려면 다음 단계를 수행합니다.
- 관리아래에서 인증선택합니다.
- 플랫폼 구성 페이지에서 플랫폼 추가선택한 다음, 웹 옵션을 선택합니다.
-
리디렉션 URI의에 대해
https://localhost:5001/signin-oidc
입력하십시오. -
프런트 채널 로그아웃 URL에 로그아웃할 때
https://localhost:5001/signout-callback-oidc
를 입력합니다. - 구성을 선택하여 변경 내용을 저장합니다.
샘플 애플리케이션 복제 또는 다운로드
샘플 애플리케이션을 가져오려면 GitHub에서 복제하거나 .zip 파일로 다운로드할 수 있습니다.
샘플을 복제하려면 명령 프롬프트를 열고 프로젝트를 만들 위치로 이동하고 다음 명령을 입력합니다.
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
.zip 파일다운로드합니다. 이름 길이가 260자 미만인 파일 경로로 추출합니다.
자체 서명된 인증서 만들기 및 업로드
애플리케이션을 보호하려면 애플리케이션에 인증서를 추가합니다. 이 섹션에서는 자체 서명된 인증서를 만들고 Microsoft Entra 관리 센터의 애플리케이션 등록에 업로드하는 방법을 보여줍니다.
메모
자체 서명된 인증서는 개발에만 사용해야 합니다. 프로덕션 환경에서는 신뢰할 수 있는 인증 기관의 인증서를 사용해야 합니다.
터미널을 사용하여 다음 명령을 사용하여 프로젝트 디렉터리에 자체 서명된 인증서를 만듭니다.
cd ms-identity-docs-code-dotnet\web-app-aspnet\ dotnet dev-certs https -ep ./certificate.crt --trust
Microsoft Entra 관리 센터로 돌아가서 관리아래에서 인증서 & 비밀>인증서 업로드를 선택합니다.
인증서(0) 탭을 선택한 다음, 인증서업로드를 선택합니다.
인증서 업로드 창이 나타납니다. 아이콘을 사용하여 이전 단계에서 만든 인증서 파일로 이동하고 열기를 선택합니다.
인증서에 대한 설명(예: aspnet-web-app 인증서)을 입력하고 추가를 선택합니다.
다음 단계에서 사용할 지문 값을 기록합니다.
프로젝트 구성
IDE에서 샘플이 포함된 ms-identity-docs-code-dotnet\web-app-aspnet 프로젝트 폴더를 엽니다.
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": "*" }
-
TenantId
- 애플리케이션이 등록된 테넌트 식별자입니다. 따옴표 안의 텍스트를 등록된 애플리케이션의 개요 페이지에서 이전에 기록한Directory (tenant) ID
으로 바꾸세요. -
ClientId
- 클라이언트라고도 하는 애플리케이션의 식별자입니다. 따옴표로 된 텍스트를 등록된 애플리케이션의 개요 페이지에서 이전에 기록된Application (client) ID
값으로 바꿉니다. -
ClientCertificates
- 자체 서명된 인증서가 애플리케이션의 인증에 사용됩니다.CertificateThumbprint
텍스트를 이전에 기록된 인증서의 지문으로 바꿉니다.
-
애플리케이션 실행 및 로그인
프로젝트 디렉터리에서 터미널을 사용하여 다음 명령을 입력합니다.
dotnet run
터미널에 표시되는
https
URL(예:https://localhost:5001
)을 복사하여 브라우저에 붙여넣습니다. 프라이빗 또는 시크릿 브라우저 세션을 사용하는 것이 좋습니다.단계를 수행하고 필요한 세부 정보를 입력하여 Microsoft 계정으로 로그인합니다. 한 번 암호를 보낼 수 있도록 전자 메일 주소를 제공하라는 요청이 있습니다. 메시지가 표시되면 코드를 입력합니다.
애플리케이션은 액세스 권한을 부여한 데이터에 대한 액세스를 유지하고 로그인하여 프로필을 읽을 수 있는 권한을 요청합니다. 수락을 선택합니다.
애플리케이션에 로그인하고 Microsoft Graph API에서 프로필 세부 정보에 액세스했음을 나타내는 다음 스크린샷이 나타납니다.
애플리케이션에서 로그아웃
- 페이지의 오른쪽 위 모서리에서 로그아웃 링크를 찾아 선택합니다.
- 로그아웃할 계정을 선택하라는 메시지가 표시됩니다. 로그인하는 데 사용한 계정을 선택합니다.
- 로그아웃했음을 나타내는 메시지가 나타납니다. 이제 브라우저 창을 닫을 수 있습니다.
관련 콘텐츠
- 시리즈 자습서: Microsoft ID 플랫폼애플리케이션을 등록하여 이 ASP.NET 웹앱을 빌드하여 알아봅니다.
- 빠른 시작: Microsoft 사용자 인증 플랫폼을 사용하여 ASP.NET Core 웹 API 보호하기.
- 퀵스타트: ASP.NET 웹앱을 Azure App Service에 배포하기