클라이언트에 액세스 토큰을 제공하는 Identityserver4가 있습니다.identityserver3.accesstokenvalidation을 사용하여 특정 역할에 API에 액세스하는 방법
내 API에서이 사용자에게 API 액세스 권한을 부여하기 전에 클라이언트가 특정 범위에 액세스 할 수 있고 특정 역할에 속하는지 확인하고 싶습니다.
이렇게하려면 Identityserver3.accesstokenvalidation 패키지를 사용하고 있습니다.
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = "Authority",
RequiredScopes = new[] { "MyScope" },
});
이 또한 제공되는 범위는 "마이 스코프는"인 경우 확인하고 있습니다, 내 API에 액세스 액세스 토큰이없는 사용자를 차단하고 있습니다.
제 질문은 API에 대한 액세스를 허용하기 전에 사용자에게 특정 역할이 있는지 확인하는 방법입니다.
답변을 주셔서 감사합니다. 컨트롤러가 역할을 확인하는 데이 클래스를 사용해야한다는 것을 컨트롤러가 어떻게 이해할 수 있습니까? [AuthorizePermission ("Preview")] 란 무엇입니까? 약간의 설명을 추가 할 수 있습니까? –
보호하려는 컨트롤러에 대해 [Authorize (Roles = "Admin")]을 사용할 수 있습니다 (이 논리는 .NET의 AuthorizeAttribute에서 제공됨). [AuthorizePermission ("Preview")]보다 고급 로직이 필요한 경우 예를 들어 자신의 속성을 사용하는 방법에 대한 예입니다. 사용 권한을 확인합니다. –
감사합니다 .. 나는 이미 [Authorize (Roles = "Admin")]를 사용했지만 access_token에 역할이 포함되어 있어도 모든 요청을 차단합니다. 사용자 답장으로 사용자가 –