문제

다음과 같은 목표를 가진 시스템을 어떻게 구현하시겠습니까?

  • 인증, 승인을 관리합니다수십만 ~의 기존 사용자 현재 제3자 공급업체의 애플리케이션과 긴밀하게 통합되어 있습니다(우리는 이러한 사용자를 우리가 관리하는 대상으로 몰아내고 앱이 이에 대해 작동하도록 하고 제3자 공급업체도 이에 대해 작동하도록 만들고 싶습니다).
  • 해당 사용자와 연결된 프로필 정보 관리
  • 거의 모든 플랫폼(Windows, *nix, PHP, ASP/C#, Python/Django 등)의 다양한 웹 애플리케이션에서 액세스할 수 있어야 합니다.

다음은 몇 가지 샘플 구현입니다.

  • 모든 것을 관리하는 LDAP/AD 서버.모든 프로필 데이터에 맞춤 스키마를 사용하세요.모든 것이 LDAP/AD에 대해 인증될 수 있으며 모든 종류의 ACL 및 프로필 데이터를 사용자 정의 스키마에 저장할 수 있습니다.
  • 인증에만 LDAP/AD를 사용하고, 일종의 기존 데이터베이스(MSSQL/PostgreSQL/MySQL) 또는 문서 기반 DB(CouchDB, SimpleDB 등)를 사용하여 LDAP 사용자를 가장 강력한 프로필/인증 서버에 연결하세요.인증을 위해 LDAP를 사용한 다음, 더 고급 기능을 위해 DB를 누르십시오.
  • 모든 것에 기존 데이터베이스(관계형 또는 문서)를 사용하세요.

이 세 가지 중 가장 좋은 것이 있습니까?위의 목표에 적합하고 구현하기 더 쉬운 다른 솔루션이 있습니까?

** 사용자 데이터베이스에 대해 인증하는 거의 모든 애플리케이션이 우리의 통제하에 있다는 점을 덧붙이고 싶습니다.소수의 외부인은 우리가 현재 사용자 데이터베이스를 제거하는 응용 프로그램과 아마도 1~2개의 다른 응용 프로그램이 될 것입니다.openID 서버가 필요할 만큼 광범위한 것은 없습니다.

또한 이러한 사용자 중 다수가 5~8년 동안 이러한 계정을 갖고 있었으며 로그인 및 비밀번호 등을 알고 있다는 사실을 아는 것도 중요합니다.

도움이 되었습니까?

해결책

인증과 권한 부여/프로파일링에는 차이가 있으므로 두 가지를 반드시 하나의 도구에 강제로 적용하지 마십시오.인증에 LDAP를 사용하고 인증에 DB를 사용하는 두 번째 솔루션은 LDAP 데이터가 사용자에 의해 제어되고 DB는 관리자에 의해 제어되므로 더욱 강력해 보입니다.후자는 시간이 지남에 따라 구조와 복잡성이 변할 가능성이 높지만 인증은 바로 그 인증입니다.이러한 기능을 분리하면 관리가 더 쉬워질 것입니다.

다른 팁

기존 ActiveDirectory 인프라가 있다면 그렇게 하는 것이 좋습니다.이는 이미 인증을 위해 Windows 서버를 설정한 회사에 특히 유리할 것입니다.이 경우 "샘플 구현"의 첫 번째 중요 항목을 향해 기울고 있습니다.

그렇지 않으면 AD와 오픈소스 LDAP 옵션 사이에서 혼란을 겪게 될 것입니다.

Single-Sign-On을 위한 자체 인증 스키마를 롤링하는 것은 실행 가능하지 않을 수 있으며(특히 수행해야 할 많은 양의 문서 및 통합 작업을 고려할 때) 분명히 인증 서버를 실행 중인 응용 프로그램과 함께 번들로 묶지 마십시오. 귀하의 시스템(해당 애플리케이션의 로드로부터 독립될 수 있기를 원하기 때문)

행운을 빌어요!

인증에만 LDAP/AD를 사용하고, 일종의 기존 데이터베이스(MSSQL/PostgreSQL/MySQL) 또는 문서 기반 DB(CouchDB, SimpleDB 등)를 사용하여 LDAP 사용자를 가장 강력한 프로필/인증 서버에 연결하세요.인증을 위해 LDAP를 사용한 다음, 더 고급 기능을 위해 DB를 누르십시오.

우리는 약 100,000명의 사용자를 보유한 다양한 사이트를 보유하고 있으며 모두 일반 데이터베이스를 사용하여 작동합니다.대부분의 애플리케이션이 DB에 액세스할 수 있는 경우 이 솔루션을 사용할 수 있습니다.

언제든지 자신만의 것을 구현할 수 있습니다. 오픈아이디 섬기는 사람.이미 OpenID용 Python 라이브러리 그래서 꽤 쉬울 것입니다.

물론 애플리케이션에서 다른 서버가 승인한 로그인을 수락할 필요는 없습니다.자신의 서버에서만 승인된 자격 증명을 수락하세요.

편집하다: 나는 다음을 발견했습니다. Django에서 OpenID 서버 프로토콜 구현.

편집2: 사용자를 위해 OpenID를 구현하면 분명한 이점이 있습니다.그들은 자신의 로그인 정보를 사용하여 StackOverflow에 로그인할 수 있습니다 :-)

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