빠른 시작: ASP.NET Core 웹앱 Microsoft로 로그인 추가
환영합니다! 아마도 기대했던 페이지는 아닐 것입니다. 수정 작업을 진행하는 동안 이 링크를 통해 올바른 문서로 이동해야 합니다.
이 문제를 해결하는 동안 불편을 끼쳐 드려 죄송하며 양해해 주셔서 감사합니다.
이 빠른 시작에서는 ASP.NET Core 웹앱이 모든 Microsoft Entra 조직에서 사용자를 로그인하는 방법을 보여주는 코드 샘플을 다운로드하고 실행합니다.
1단계: Azure Portal에서 애플리케이션 구성
이 빠른 시작의 코드 샘플이 작동하려면 다음을 수행합니다.
- 리디렉션 URI에 대해 https://localhost:44321/ 및 https://localhost:44321/signin-oidc을(를) 입력합니다.
- 프런트 채널 로그아웃 URL에 대해 https://localhost:44321/signout-oidc를 입력합니다.
권한 부여 엔드포인트에서 요청 ID 토큰을 발급합니다.
이러한 특성을 사용하여 애플리케이션을 구성합니다.
2단계: ASP.NET Core 프로젝트 다운로드
프로젝트를 실행합니다.
팁
Windows의 경로 길이 제한으로 인해 발생하는 오류를 방지하려면 보관 파일의 압축을 풀거나 리포지토리를 드라이브 루트에 가까운 디렉터리에 복제하는 것이 좋습니다.
3단계: 앱이 구성되고 실행할 준비가 되었습니다.
앱의 속성 값을 사용하여 프로젝트를 구성했으며 실행할 준비가 되었습니다.
참고 항목
Enter_the_Supported_Account_Info_Here
자세한 정보
이 섹션에서는 로그인 사용자에 필요한 코드에 대한 개요를 제공합니다. 이 개요는 코드의 작동 방식, 기본 인수의 개념 및 로그인을 기존 ASP.NET Core 애플리케이션에 추가하는 방법을 이해하는 데 유용할 수 있습니다.
샘플 작동 방법
시작 클래스
Microsoft.AspNetCore.Authentication 미들웨어는 호스팅 프로세스가 시작될 때 실행되는 Startup
클래스를 사용합니다.
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
services.AddRazorPages()
.AddMicrosoftIdentityUI();
}
AddAuthentication()
메서드는 쿠키 기반 인증을 추가하도록 서비스를 구성합니다. 이 인증은 브라우저 시나리오에서 OpenID Connect에 대한 질문을 설정하는 데 사용됩니다.
.AddMicrosoftIdentityWebApp
이 포함된 줄은 Microsoft ID 플랫폼 인증을 애플리케이션에 추가합니다. 그런 다음, 애플리케이션이 appsettings.json 구성 파일의 AzureAD
섹션에 있는 정보를 기반으로 하여 사용자를 로그인하도록 구성됩니다.
appsettings.json 키 | 설명 |
---|---|
ClientId |
Azure Portal에 등록된 애플리케이션의 애플리케이션(클라이언트) ID입니다. |
Instance |
사용자가 인증하는 STS(보안 토큰 서비스) 엔드포인트입니다. 이 값은 일반적으로 https://login.microsoftonline.com/ 이며, Azure 퍼블릭 클라우드를 나타냅니다. |
TenantId |
회사 계정, 학교 계정 또는 Microsoft 개인 계정을 사용하여 사용자를 로그인하는 테넌트의 이름 또는 테넌트 ID(GUID) 또는 common 입니다. |
Configure()
메서드에는 명명된 기능을 사용할 수 있도록 설정하는 두 가지 중요한 메서드인 app.UseAuthentication()
및 app.UseAuthorization()
이 포함되어 있습니다. 또한 Configure()
메서드에서 endpoints.MapControllerRoute()
또는 endpoints.MapControllers()
에 대한 호출을 하나 이상 사용하여 Microsoft ID 웹의 경로를 등록해야 합니다.
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
컨트롤러 또는 메서드를 보호하기 위한 특성
컨트롤러 또는 컨트롤러 메서드는 [Authorize]
특성을 사용하여 보호할 수 있습니다. 이 특성은 인증된 사용자만 허용하여 컨트롤러 또는 메서드에 대한 액세스를 제한합니다. 사용자가 인증되지 않은 경우 컨트롤러에 액세스하기 위해 인증 질문을 시작할 수 있습니다.
도움말 및 지원
도움이 필요하거나, 문제를 보고하거나, 지원 옵션에 대해 알아보려면 개발자를 위한 도움말 및 지원을 참조하세요.
다음 단계
이 ASP.NET Core 자습서를 포함하는 GitHub 리포지토리에는 다음 방법을 보여주는 지침과 추가 코드 샘플이 포함되어 있습니다.
- 새 ASP.NET Core 웹 애플리케이션에 인증 추가
- Microsoft Graph, 기타 Microsoft API 또는 사용자 고유의 웹 API 호출
- 권한 부여 추가
- 국가별 클라우드 또는 소셜 ID를 사용하여 사용자 로그인