다음 요구 사항을 고려하여 자체 인증/승인 시스템을 롤링하려는 것이 잘못된 것입니까?

StackOverflow https://stackoverflow.com/questions/1860150

문제

내 애완동물 프로젝트에서 다음 요구 사항을 갖춘 사용자 시스템을 갖고 싶습니다.

  • 그것은 함께 작동해야합니다 Db4o 지속성 모델로서
  • DI를 사용하고 싶습니다. 터빈) 내 사용자 모델에 필요한 종속성을 전달하기 위해
  • asp.net-mvc에 쉽게 연결할 수 있어야 합니다.
  • 큰 번거로움 없이 테스트 가능해야 함
  • SO와 마찬가지로 익명 사용자를 지원해야 합니다.
  • 인증과 권한 부여를 분리하고 싶습니다(첫 번째는 두 번째 없이도 가능)
  • 안전해야 해요

여기서는 기능보다 몇 가지 기술을 우선시한다는 것을 알고 있지만, 이는 애완동물 프로젝트이고 몇 가지 새로운 것을 배우고 싶기 때문에 이를 요구 사항에 포함시키는 것이 합리적이라고 생각합니다.

내 자신을 굴리는 도중에 나는 아마도 약간의 고통을 겪고 있음을 깨달았습니다. NIH : 국립보건원 증후군.
나는 asp.net의 기존 사용자 프레임워크가 얼마나 불필요하게 복잡한지 별로 좋아하지 않기 때문에 실제로는 보안과 관련하여 더 복잡한 것들이 대부분 지금 나에게 약간의 의구심을 주고 있습니다.계속해서 내 자신을 굴리는 것이 방어 가능할까요?그렇지 않다면 기존 IPrinciple 기반 프레임워크를 사용하여 위의 모든 요구 사항을 어떻게 충족할 수 있습니까?

도움이 되었습니까?

해결책

당신이하고 싶은 것은 나만의 Custom .NET 멤버십 제공 업체를 굴리는 것 같은 것 같습니다.

내장 된 ASP.NET 인증을 사용할 수 있습니다./권한 부여 기인하다에스 컨트롤러 작업에서 제공자 내부의 구현을 완전히 제어 할 수 있습니다 (위에서 언급 한 요구 사항을 충족하도록 코딩 할 수 있음).

MSDN에서 직접 ...

멤버십 제공 업체 구현

다른 팁

나는 당신이 당신의 고려의 얇은 부분이 어디에 있는지 알고 있다고 생각합니다. 즉, 당신이 그것을하고있는 이유와 NIH에서 동기로하고있는 일을하는 방법을 포함했다는 것입니다 (Funny : 나는 전에 그것을 본 적이 없습니다. ) 문제.

이를 제쳐두고 제공자는 잠재적으로 재사용 할 수있는 것이며 향후 노력을 단순화 할 수 있습니다. 또한이 문제에 대해 더 친숙해지는 역할을해야합니다. ASP.NET 프레임 워크를 이해하는 한, 필요한 경우 (그리고 도구를 사용하지 않는 경우 무엇을하고 있는지 모르는 데 필요한 특수화되지 않은 경우에도 작업 할 수 있습니다. 당신이 이미 당신의 방어를 제작했다고 믿습니다.

Dok가 언급했듯이, 다른 기능이 무엇이든간에 더 큰 작업을 피하기 위해 여기에서 자신의 것을 굴리지 않도록주의하십시오. 이것이 방해가되지 않도록하지 마십시오. 응용 프로그램에 실제로 필요한 것이어야합니다. 그렇지 않다면, 나는 당신의 소프트웨어의 핵심 임무에 초점을 맞추기 위해 몸을 기울일 것입니다.

계속해서 자신만의 사용자 정의 솔루션을 만들면 그것이 얼마나 어려운지, 원하는 기능을 더 잘 알 수 있습니다. 이를 통해 향후 프로젝트를위한 상용 솔루션을 평가하는 데 도움이됩니다.

OTOH, 이미 쉽게 이용할 수있는 기능을 개발하는 데 시간을 소비한다는 것은 프로젝트의 주요 기능을 수행하는 데 시간을 소비하지 않을 것임을 의미합니다. 인증 및 승인이 프로젝트의 주요 구성 요소가 아니라면 다른 영역에서 시간을 투자하고 지식을 확장하는 것을 고려할 수 있습니다.

나 역시 ASP.net MVC와 db4o를 사용하여 애완동물 프로젝트를 진행하고 있으며 동일한 작업을 수행했기 때문에 적어도 그 경로를 따라가는 사람은 혼자가 아닙니다 :).지속성 레이어로 db4o를 사용하기 시작한 가장 큰 이유 중 하나는 특히 필드 수준에서 권한 부여(즉, A의 이름은 볼 수 있지만 B의 이름은 볼 수 없음)가 가능하다는 것입니다. 복잡한 SQL 문과 빈약한 도메인 모델을 강제로 사용합니다.

db4o 및 Solr 인덱스 모두에서 유지(및 동기화)해야 하는 복잡한 인증 요구 사항이 있었기 때문에 자체 롤아웃 작업을 시작했지만 이것이 내 애완 동물 프로젝트의 주요 기능 중 하나라는 것을 미리 알았기 때문에 100% 통제를 원했습니다.

이제 인증을 위해 .Net 멤버십 공급자를 계속 사용할 수 있지만 객체 인증에는 (전적으로) 사용하지 않고 POC를 수행한 후에만 인증에 내 인증을 사용해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top