0

OAuth2 인증 시스템을 사용하여 이미 존재하는 MVC 응용 프로그램에서 WebAPI를 개발 중입니다.이미 ID를 사용하는 프로젝트에서 고객 계정 관리

이 API를 사용하면 클라이언트가 내 사용자 정보를 요청할 수 있습니다. 현재 사용자는 ID 테이블 (ASPNetUsers)에 저장됩니다. 내 응용 프로그램에서는 Identity 클래스 및 메서드를 사용하여 등록, 로그인 등을 수행합니다.

문제는 여기에 있습니다. 액세스 토큰을 요청할 때 인증 할 수 있도록 "신원 확인"방식으로 API 클라이언트 계정을 관리하고 싶습니다. 하지만 내 고객과 내 사용자간에 공통점이 없기 때문에 현재 사용자 테이블을 사용할 수 없습니다.

완벽 솔루션은 내 사용자를위한 것이고 내 고객을위한 것입니다. 그러나 오랜 시간 검색 한 후에는 가능하지 않다고 생각했거나 기껏해야 엉망이되었습니다. .

답변

0

OAuth2 등록 클라이언트 응용 프로그램을 관리하는 방법으로 ASP.NET ID를 사용하지 않습니다.. 일부 클라이언트 응용 프로그램 (기밀)은 실제로 사용자 이름/암호 사용자 ID로 공유하는 유일한 것 인 클라이언트 자격 증명을 발급합니다. 그것은 완전히 다른 것이므로 독립적으로 관리하고 저장해야합니다.

많은 일처럼 들린다 고 생각한다면 절대적으로 옳습니다. 보안을 입증하고 OAuth2 인증 서버를 구현하는 것이 여러 번 복잡한 것처럼 사용자 정의 사용자 이름/암호 인증을 구현하는 것은 쉽지 않습니다.

당신은 정말/필요가 다음 몇 가지 필수 독서를 그 경로를 이동하려면 다음

  • OAuth 2.0 Threat Model and Security Considerations
  • JSON Web Token (JWT)

    하면 (당신이 JWT 같은 토큰 형식을 선택 가정) 당신은 여전히 ​​모든 옵션을 평가하고 있습니다. 또한 모든 인증/권한 부여 작업을 일차적으로 위임 할 가능성을 고려할 것입니다. ird-party, Auth0이 마음에 듭니다.하지만 저는 거기에서 일하기 때문에 편견이 있습니다.

  • +0

    내 고객을 인증하는 무료 솔루션은 무엇이 될 수 있습니까? 불행히도 필자는 내 프로젝트에 Auth0을 제공 할 여력이 없다. – Lawi

    +0

    무료로 제공되는 것은 아니지만 시스템에 구현하기위한 비용은 여전히 ​​있지만 ASOS 및 IdentityServer와 같은 오픈 소스가 더 적합한 지 평가할 수있다. –

    관련 문제