2012-05-23 2 views
1

회사의 업무용 소프트웨어를 작성하고 있으며 사용자를 인증하기 위해 워크 플로를 관리하고 감사를 수행 할 수 있습니다. 기본적으로 내 고용주는 특정 네트워크 제한 때문에 윈도우 인증을 피기 배제하고 싶지 않습니다. (실제로 들어갈 수는 없지만 할 수있는 방법이 있는지 알고 싶어하는 가난한 네트워크 설정과 상사가 혼합되어 있습니다. 나는 C#을 사용하고사용자 지정 업무용 소프트웨어에서 인증을 관리하는 방법

그것은), WPF, MVVM, PRISM

나는 등, 암호를 해싱 염장에 대해 조금 읽었하고 더 읽었 더 내가 정말를 작성하지 않아야 실현 이 프로그램의 보안 섹션은 기본적으로 자격을 갖추지 못한 사람입니다.

에릭 리 퍼트 (Eric Lippert)는 보안에 대한 기본적인 정보가 매우 풍부합니다. 처음에는 독자가 충분히 모르는 상태에서 보안 시스템을 설계해서는 안된다는 경고를 전했습니다.

알고 싶습니다. 대안은 무엇입니까?

본인이 직접 작성하지 않으므로 어디에서 가져야하는지 알고 싶습니다.

보안 전문가를 고용하여 작성해야합니까?

내가 써야하는 타사 보안 프로그램이 있습니까?

디자인을 아웃소싱하지만 직접 구현합니까?

이 업계에서 내가 봐야 할 큰 선수는 누구입니까?

가 (이 질문 here on IT Security Exchange을 만든하지만 난 그것을 프로그래밍 그대로보고, SO 궁금 그것에 대해 할 말이 아무것도했다) 내 IT Security Exchange question에 일부 조정을 한


편집이 사람들이 제기 한 몇 가지 질문에 답하기 위해 더 많은 정보가 필요하면 그것을 확인하십시오.

답변

0

나는 지금 당장 문제를 해결했다고 생각합니다. SteveSmy IT Security Exchange question에 게시되었으며 WCF, WIF 및 ASP.NET 멤버십 공급자 사용에 대한 좋은 아이디어가 있습니다. 코드의 일부를 작성하는 것이 이상적이지 않으므로 불안정해질 수 있습니다.

그러나 Microsoft에서 구축 한 보안 기술을 활용하는 것이 가장 좋은 옵션 인 것처럼 보입니다.

나는 이음새가 걱정입니다.

1

원격 보안을 살펴 봐야한다고 생각합니다. 리모컨을 사용하지 않아도 원리는 좋습니다. .NET Remoting Security Solution Part I".NET Remoting Security Solution Part II을 참조하십시오. 이렇게하면 SSO (Single Sign-On) 솔루션을 구축하는 데 도움이됩니다. 또는 비밀번호 재 입력 윈도우를 사용하는 사용자에게 구축 된 자격 증명 상자 : Show Authentication dialog in C# for windows Vista/7

+0

그 SSPI 물건 정말 재미 있고 그것을 사용하여 끝날 수도 있지만 내 질문에 실제로 네트워크를 설정했기 때문에 나는 Windows 로그인을 사용할 수 없다고 말했다. 이 SSPI 프로그램은 Windows 로그인을 사용하여 메시지를 암호화하고 원격으로 도용 할 수 있습니다. 그러나 필요한 것은 내 프로그램이이 서버에 암호를 알리고 암호화, 저장 및 액세스를 처리 할 수 ​​있도록 다른 로그인과 암호를 안전하게 처리 할 수있는 새로운 사용자 이름과 암호 서버입니다. 내가해야 할 일은 가비지 콜렉션이다. 정말 내 자신의 시스템을 구축해야한다고 생각하지 않습니다. –

+0

귀하의 요구 사항이 잘못되었을 수 있습니다. Kerberos 절차가 도움이되는지 확인하십시오. 좋지 않다는 경고를받습니다. 아키텍처에서 Windows 빌드를 사용하지 않으면 많은 작업이 필요합니다. WCF를 사용해야합니까? 그것은 보안에 내장되어 있습니다. –

+0

WCF에서 아무 것도하지 않았으므로 마음에 들지 않았습니다. 이것은 UserNames와 Passwords를 처리하기 위해 디자인 한 서버 측 응용 프로그램과 통신하는 데 사용될 수 있지만 실제로이 서버 측 응용 프로그램을 설계하는 기술이 없다고 생각합니다. 그것은 내가 결코 들어 본 적이없는 모든 종류의 약점을 가지고 있으며 보호 할 방법을 알지 못한다. 에릭 리 퍼트 (Eric Lippert)는 자신의 시스템을 설계해서는 안되며, 나는 그를 믿는다 고 말했습니다. 나는 내 시스템을 설계하는 대안이 무엇인지 궁금해했다. 일부 타사 소프트웨어를 사용할 수 있습니까 등 –

1

경고 : 다음에 포함 된 일부 뻔뻔한 자기 홍보 : 당신이 찾고있는 것처럼 소리가 무엇

을 표준 라이선스입니다 SaaS 유형 애플리케이션 또는 데스크톱 용 관리 찾고있는 기본 기능은 사용자 목록을 만들고 관리하고 해당 목록에 응용 프로그램을 자동으로 적용하는 것입니다. 내부 비즈니스 프로세스에 대한 앱의 기밀성 또는 중요성에 따라 특정 요구 사항에 대해 생각할 수 있습니다.

액세스 제어를 시작하자마자 합법적 인 사용자가 액세스하지 못하게하거나 불법 사용자를 허용하는 보안 구멍 (예 : 간단한 네임드 사용자/비밀번호 챌린지)이 불쾌감을 줄 수 있습니다. & 응답 시스템은 의도적 또는 부주의 한 계정 공유를 허용합니다.

감사를 시도하는 경우 정확한 데이터를 제공 할만큼 시스템이 안정적이어야합니다.

저희 회사는 great license management solution; 다른 선택 사항들도 있습니다. 좋은 시스템은 (일단 설정 및 통합되면) 개별 사용자 또는 그룹에 대한 비즈니스 규칙을 쉽게 설정할 수 있어야합니다. 예를 들어 20 명으로 구성된 그룹이 한 번에 5 개의 응용 프로그램 인스턴스를 실행할 수 있도록하려는 경우가 있습니다. 6. 그렇지 않은 경우 특정 날짜에 만료되는 임시 계정을 임시 사용자에게 제공하려고합니다. 이러한 기능을 스스로 압연하는 것은 어려울 수 있지만 좋은 LM 시스템을 사용하면 문제를 완전히 해결할 수 있습니다.

견고한 타사 솔루션을 사용하면 (장단기 모두) 자신의 코드를 작성하고 유지 관리하는 데 드는 비용이 저렴 해집니다.

+0

링크를 제공해 주셔서 감사합니다. 나는 제 3자가 내가 제대로 제게 그것을 지킬 수 없기 때문에 갈 길이라고 생각했습니다. 라이센스 관점에서 생각하는 것은 매우 흥미 롭습니다. 그 이유는 사용자를 인증 한 다음 해당 사용자 유형에 허용되는 기능을 기반으로 기능을 제공하기 때문입니다. 그러나 나는 2 개의 질문이있다 : (아래의 설명을 보라) –

+0

질문 1 : 얼마나 안전합니까? 어도비와 같은 최고의 소프트웨어 회사는 아주 좋은 라이센싱 시스템을 가지고 있다고 생각합니다. 그러나 소프트웨어는 항상 금이 가고 있습니다. 그래서 이것이 어떻게 다른지 궁금합니다. 사용자를 한 대의 PC로 제한하고 싶지는 않지만 동글 방식은 매우 안전하지 않습니다. 어떤 옵션이 안전하고 PC 독립적일까요? –

+0

질문 2 : 우리가 작성한 프로그램과 어떻게 인터페이스합니까?사용할 수있는 기능을 어떻게 제어합니까? 이 시스템에서 작동하도록 코드를 변경하려면 어떻게합니까? 설치 유형이 있습니까, 아니면 API를 사용하고 있습니까, 아니면 시스템에서 라이센스 작동 방식을 선택할 수있는 속성/인터페이스를 제공합니까? 우리는 특정 유형의 사용자에 대해 특정 역할과 권한을 원하며, 두 번째로 별도의 능력을 보유 할 웹 사용자가있을 것입니다. 라이선스가 얼마나 복잡하고 통합 비용은 얼마나됩니까? –

관련 문제