개발이야기/AspNet&C#

IdentityServer 학습 #4 - Scope

Roslyn 2024. 3. 7. 12:00
반응형

이번에는 Scope를 추가해 보도록 합시다.

 

(1) api 프로젝트의 Program.cs 파일을 수정해서 인가정책을 추가해 줍니다.

using System.Security.Claims;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddAuthentication()
	.AddJwtBearer(options =>
	{
		options.Authority = "https://localhost:5001";
		options.TokenValidationParameters.ValidateAudience = false;
	});

builder.Services.AddAuthorization(options =>
{
	options.AddPolicy("ApiScope", policy =>
	{
		policy.RequireAuthenticatedUser();
		policy.RequireClaim("scope", "api1");
	});
});


var app = builder.Build();
app.UseHttpsRedirection();
app.MapGet("identity", (ClaimsPrincipal user) => user.Claims.Select(c => new { c.Type, c.Value }))
	.RequireAuthorization("ApiScope");
app.Run();


중요한 포인트 지점은 builder.Services에 AddAuthorization 함수를 통해 ApiScope라는 인가정책이 추가 되었고, scope에 api1 이라는 클레임이 필수조건이 되었다는 것입니다.

 

그리고 identity 메소드에 권한 요청으로 ApiScope라는 인가정책을 요구하고 있습니다.

 

콘솔 응용 프로그램에는 이미 Scope에 api1이 지정되어 있으므로 실행해 보면, 정상 동작합니다.

반응형

'개발이야기 > AspNet&C#' 카테고리의 다른 글

IdentityServer 학습 #6 - OpenID Connect  (0) 2024.03.07
IdentityServer 학습 #5 - Scope 개념  (0) 2024.03.07
IdentityServer 학습 #3  (0) 2024.03.07
IdentityServer 학습 #2  (0) 2024.03.07
IdentityServer 학습 #1 - 기본셋팅  (0) 2024.03.07