2010-04-07 2 views
0

고유 한 인증/인증 메커니즘 (기존 쿠키/세션 기반 사용자/전달)을 사용하는 웹 기반 응용 프로그램을 작성하고 있습니다. 그러나 소프트웨어 라이센스를 사용하는 조직에 따라, 내 회사를 대신 할 기존 내부 인증 시스템을 플러그인 할 수 있기를 바랍니다. 이상적으로는 가능한 한 적은 코드로 실행해야합니다. 이 서비스를 주로 호스팅 서비스로 만들려고합니다. 나는 OAuth의 존재를 알고 있지만 더 높은 수준에서 시스템을 구현하는 방법을 완전히 이해하지는 못합니다. 어떤 조언을 부탁드립니다.내 응용 프로그램과 기존 인증 시스템 간의 인터페이스

답변

2

어떤 플랫폼을 개발하고 있습니까? PHP, Java, .NET 또는 기타?

OAuth 외에도 SAML 및 OpenID를 조사해야합니다. 이러한 프로토콜은 OAuth보다 더 자주 웹 사이트 인증에 사용되며 주로 데스크톱/모바일의 클라이언트 응용 프로그램에 사용됩니다. 그것은 사용할 수 있지만 이것은 사람들이 그것을 사용하는 경향이 있습니다.

일반적으로 서비스 제공 업체로 간주됩니다. 다른 조직은 ID 제공자입니다. SAML에서는 사용자를 인증 (및 권한 부여) 할 수있는 ID 공급자로 사용자를 리디렉션합니다. 그러면 서비스 제공 업체로 다시 연결되어 로그인 할 수있게됩니다.

프로토콜 문서에 대한 링크는 another post of mine 링크를 참조하십시오. 또한 Google Apps에는 SAML을 사용한 good diagram의 싱글 사인온 (SSO) 기능이 있습니다.

+0

답장을 보내 주셔서 감사합니다. 템플릿은 PHP로 처리되지만 대부분의 데이터 처리는 Java로 처리됩니다. 아마도 auth에 PHP를 사용할 것입니다. 그러나 대부분의 주류 언어에 대한 클라이언트 라이브러리가 있기를 바랍니다. 다른 게시물을 확인한 후 회신 해 주시기 바랍니다 :) 또한 모바일 웹 앱이며 결국 네이티브 앱도 지원해야합니다. – Karan

0

귀하의 질문은 귀하가 풀고 자하는 바로 그 대상 (authn/authz, 즉 정책 및 응용 프로그램)을 얽히게합니다. 찾고있는 해답은 이러한 우려를 분리해야합니다.

"표준"답변은 일반적으로 PEP (정책 적용 지점)를 사용하여 authn/authz 정책을 분리하여 PDP (정책 결정 시점)에 의한 결정을 시행하는 것입니다. SAML은 둘 사이의 통신 표준을 제공합니다.

PEP가 지키고있는 응용 프로그램 (그리고 일반적으로 많은 다른 것들)을 감동시킵니다. 이것은 응용 프로그램 (예 : Tomcat 인터셉터)에 내장 할 수 있지만 별도의 컨테이너에서 프록시로 실행하는 것이 좋습니다. 외부에서 접근 할 수있는 유일한 방법은 PEP입니다. 각 요청을 검사하여 사용자가 인증되었는지 확인하고 (SSO의 경우) 각 요청에 보안 토큰이 포함되도록합니다.

그렇지 않은 경우 PEP는 인증을 위해 요청을 PDP에 전달합니다 (로그인 화면). PDP는 보안 토큰을 첨부하고 요청을 다시 PEP로 전달합니다. 요청에는 이제 유효한 토큰이 있으므로 PEP는이를 방화벽 뒤의 응용 프로그램으로 전달합니다.

관련 문제