2017-12-13 1 views
0

배경 : 사용자 이름 (이메일)과 비밀번호가있는 기본 사용자 데이터베이스가 있습니다. 사용자는 이러한 자격 증명으로 내 웹 사이트에 로그인 할 수 있습니다. 웹 사이트에서 다른 사용자 이름/비밀번호로 액세스 할 수있는 다른 서비스에 대한 링크를 얻을 수 있습니다. 따라서 그들은 "내 서비스 X 열기"링크를 클릭하고 서비스 고유 로그인 자격 증명으로 로그인해야합니다. 나는 사용자 서비스 login-username을 가지고있다. 따라서 로컬 사용자 < => service-user를 매핑 할 수 있습니다.기존 계정과 서비스 제공 업체 간의 SAML

SAML과 내 웹 사이트를 지원하는 서비스 X간에 SSO를 원합니다.

질문/문제 : 나는 사용자가 내 데이터베이스에서의 사용자/암호, 서비스 X는 SAML에 대한 지원을하고 서비스 X 방향에 다음 하나의 기호로 로그인합니다. 사용자가 서비스 X의 SAML 지원을 사용하여 내 웹 사이트에 새 사용자 계정을 등록 할 수 없도록하려는 경우 사용자는 이미 내 데이터베이스에 계정이 있어야합니다.

제 질문은 다소 모호하지만, 어떻게 달성 할 수 있을지 압니다.

내 webapp이 SAML ID 공급자가되도록하여 SSO 요청이 내 webapp로 다시 전송되고 서비스 사용자가 확인됩니다. 이것이 올바른 접근일까요?

답변

1

SAMLIdP으로 올바른 길을 가고 있습니다. 기본적으로 세 가지 부분이 있습니다. SAML을 지원하는 전자 메일 데이터베이스 (ID), 기존 응용 프로그램 프런트 엔드 및 원격 서비스. 요즘은 보통 SAML2입니다.

당신이 Shibboleth IdP 같은 IdP를 설치하고 앱이 대신 로그인 이메일/비밀번호를 사용하는 그것을 사용하는 변환 할 수있는 응용 프로그램 (자신의 응용 프로그램과 원격 서비스)의 포트폴리오를 통해 싱글 사인온 ( SSO)을 얻으려면 . 원격 서비스처럼 앱을 SAML SP로 변환해야하므로 상당한 시간이 걸릴 것입니다.

더 쉬운 방법은 SAML 용 IdP를 원격 서비스에만 사용하고 IdP가 사용자가 이미 이메일/비밀번호로 로그인했음을 인식하도록하는 것입니다. 쿠키? 따라서 IdP는 앱의 쿠키를 인식하고 데이터베이스의 사용자와 일치하도록 로그인 페이지를 표시해서는 안됩니다. 그런 다음 해당 사용자의 정보를 기반으로 SAML 속성을 원격 서비스에 릴리스합니다. 또한 원격 서비스에서 SAML을 통한 계정 생성을 허용하지 않는 사용 사례도 다룹니다. https://yourapp.com/idp/

사용자

  • https://yourapp.com/
  • 가 정상적으로 최초의 URL 및 원격 서비스로 로그인 번째 URL을 사용하면 다음과 같은 URL을 끝낼 수 있습니다 의미

    . 그렇게하면 앱 쿠키가/idp 엔드 포인트에서 볼 수 있지만 데이터베이스의 사용자와 일치하도록 코드를 작성해야합니다.

+0

입력 해 주셔서 감사합니다. 나는 이것을 더 깊이 조사 할 것이다. – nergal

관련 문제