3

TL; DR - 제목 :ASP.NET 핵심 신원과 함께 IdentityServer 4를 사용하는 것의 부가 가치는 무엇입니까?

배경 이야기 : 나는 (편안하고 API 및 여러 클라이언트를 포함하여 - 순수 웹 응용 프로그램 및 모바일 응용 프로그램) 응용 프로그램 세트를 짓고 있어요 . 핵심 API는 모두 ASP.NET Core에 기록됩니다. 인증 권한 문제를 해결하고 싶습니다.

사용자 관련 데이터를 모두 닫지 않기 때문에 클라우드 나 외부 서비스를 사용하고 싶지 않습니다 (암호 포함).

내가 읽은 바에 따르면 ASP.NET Core Identity은 필요한 인증 및 권한 부여와 관련된 모든 기능과 프로세스를 제공합니다. 해쉬 된 패스워드를 포함한 전체 사용자 기반과 사용자와 관련된 모든 데이터를 스스로 관리 할 수 ​​있습니다. 추상화와 구체화 모음입니다 (필요한 경우 확장 할 수 있음).

나는 또한 IdentityServer 4과 통합 될 수 있음을 읽었습니다. 내가 이해하는 바로는 보안 토큰 서비스 (STS)로 사용할 수있는 방식으로 보안 계층을 추가로 부여하고 OAuth 2.0 인증 및 OpenID 인증을 제공합니다. . 그게 다야? 나는 그것을 사용하는 것이 나의 이익이라는 것을 이해하고 싶다.

내 질문은 두 부분으로 구성되어 있습니다 : ASP.NET의 핵심 ID 및 IdentityServer 4 사이에서 무엇

  1. ?
    IdentityServer 4는 ASP.NET Identity가 제공하는 추상화의 일부 (다른) 구체를 제공합니까?
    ASP.NET ID와 IdentityServer 4 사이의 관계를 알고 싶습니다.
  2. IdentityServer 4로 개발하는 데 드는 비용은 얼마입니까? 그것은 직설적입니까, 아니면 구현하기가 쉽지 않은가요?
  3. 보너스 질문 :) - 거기에 다른 대안이 있습니까? 무엇을 선택하겠습니까? 그리고 왜?

the following question은 훌륭한 답변을 제공하며 많은 질문에 대답했지만 여전히 내 질문에 대한 답변을 원합니다.

미리 감사드립니다.

답변

5

잘 모르겠 으면 지금 : ASP.NET 핵심 ID를 사용하여 jwt/bearer 토큰을 만들 수 없습니다.

ASP.NET 핵심 ID는 몇 가지 단점이있는 쿠키 미들웨어를 사용합니다. 사용 가능한 인증 미들웨어를 사용하면 무기명/토큰을 사용할 수 있지만 자신 만의 토큰을 만들 수는 없습니다. 그것은 ASOS & Identity4가 간격을 좁히는 곳입니다.

쿠키를 사용하는 것은 일반적으로 JWT 토큰이 수명이 짧고 (5 ~ 10 분) 아이덴티티 토큰을 통해 새로 고쳐지지만 일반적으로 수명이 오래 걸리는 등 몇 가지 단점이 있습니다.

누군가가 트래픽을 도청하여 베어러 토큰을 얻는 경우 토큰은 짧은 기간 동안 만 유효하며 공격자는 ID 토큰 없이는이를 새로 고칠 수 없습니다.

두 번째로 쿠키는 XSS에 더 취약한 반면 베어러 토큰은 요청 당 전송되며 XSRF에만 취약하며 AntiForgery 토큰을 통해 더 쉽게 보호 할 수 있습니다. 보안 스택 교환에 대해서는 answer을 참조하십시오.

+0

"권한 부여 미들웨어를 사용하면 ** 무기명/jwt 토큰을 사용할 수 있습니다."라고했을 때 "** 무기명/jwt 토큰을 사용할 수 없음"을 의미합니까? – DotnetProg

+0

아니요, Microsoft.AspNetCore.Authentication.JwtBearer 패키지로 Facebook (또는 Facebook 또는 Google에서 발급 한 것)을 사용할 수 있습니다. 그러나 당신은 자신의 것을 만들고 서명 할 수 없습니다. – Tseng

+0

@Tseng 어떤 경우에는 오타가 있지만 "당신은 ** 당신 자신의 것을 만들 수 있습니다"라고 생각하기 때문에 ** ** 할 수 없습니다 ** :) – OffHeGoes