Microsoft. Identity.Web은 Microsoft Entra ID 포함하여 Microsoft ID 플랫폼 통합하는 애플리케이션에 인증 및 권한 부여를 간소화하는 라이브러리 집합입니다. 다음을 지원합니다.
- .NET Aspire 분산 애플리케이션
- ASP.NET Core 웹 애플리케이션 및 웹 API
- .NET Framework의 OWIN 애플리케이션
- .NET 디먼 애플리케이션 및 백그라운드 서비스
사용자를 로그인하는 웹앱을 빌드하든, 토큰의 유효성을 검사하는 웹 API 또는 보호된 API를 호출하는 백그라운드 서비스를 빌드하든, Microsoft. Identity.Web은 인증 복잡성을 처리합니다.
Microsoft ID 웹을 사용하는 이유는 무엇인가요?
Microsoft. Identity.Web은 상용구 코드를 줄이고 일반적인 ID 시나리오에 대한 기본 제공 모범 사례를 제공합니다. 주요 기능은 다음과 같습니다.
- 간소화된 인증 - 사용자 로그인 및 토큰 유효성 검사에 대한 최소 구성
-
Downstream API 호출 - 자동 토큰 관리를 사용하여 Microsoft Graph, Azure SDK 또는 사용자 고유의 보호된 API 호출
- 토큰 획득 - 사용자 또는 애플리케이션을 대신하여 토큰 획득
- 토큰 캐시 관리 - Redis, SQL Server, Cosmos DB 및 PostgreSQL을 사용한 분산 캐시 지원
- 여러 자격 증명 유형 - 인증서, 관리 ID 및 인증서 없는 인증 지원
- 자동 권한 부여 헤더 - API를 호출할 때 인증이 투명하게 처리됩니다.
사용 가능한 모든 패키지 및 사용 시기에 대한 개요는 NuGet 패키지를 참조하세요.
자동 인증을 사용하여 API 호출
토큰을 수동으로 관리하지 않고 보호된 API를 호출할 수 있습니다. Microsoft. Identity.Web은 다음과 같은 통합 패턴을 지원합니다.
-
Microsoft Graph - 자동 토큰 획득에
GraphServiceClient사용 -
Azure SDK -
TokenCredentialMicrosoft.Identity.Web과 통합된 구현을 사용합니다. -
사용자 고유의 API - 원활한 API 호출 사용
IDownstreamApi또는IAuthorizationHeaderProvider사용 - 에이전트 ID - 자동 자격 증명 처리를 사용하여 관리 ID 또는 서비스 주체를 대신하여 API 호출
인증 헤더는 요청에 자동으로 추가되고 토큰은 획득되고 투명하게 캐시됩니다. 자세한 내용은 다운스트림 API 호출, 디먼 애플리케이션 및 에이전트 ID 가이드를 참조하세요.
구성 방법
Microsoft.Identity.Web은 설정 파일을 통해 또는 프로그래밍 방식으로 구성할 수 있습니다. 두 방법 모두 모든 인증 시나리오를 지원합니다.
파일별 구성(권장)
appsettings.json에서 인증을 구성하십시오.
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "your-tenant-id",
"ClientId": "your-client-id"
}
}
중요합니다
디먼 앱 및 콘솔 애플리케이션의 경우 appsettings.json 파일이 출력 디렉터리에 복사되었는지 확인합니다. Visual Studio에서 출력 디렉터리에 복사 속성을 새로운 버전만 복사 또는 항상 복사로 설정하거나, 다음을 .csproj에 추가하십시오.
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
코드별 구성
또는 애플리케이션 시작 코드에서 직접 인증을 구성합니다.
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(options =>
{
options.Instance = "https://login.microsoftonline.com/";
options.TenantId = "your-tenant-id";
options.ClientId = "your-client-id";
});
다음 단계
애플리케이션과 일치하는 시나리오를 선택합니다.
- Web 앱 - 로그인 사용자 - ASP.NET Core 웹 애플리케이션에 인증 추가
- Web API - API 보호 - 전달자 토큰을 사용하여 ASP.NET Core Web API 보호
- 디먼 앱 - API 호출 - 보호된 API를 호출하는 백그라운드 서비스 빌드