2014-09-11 2 views
2

내 모든 PHP/각도 응용 프로그램에서 SSO를 구현하고자합니다. 거기 SSO 애플 리케이션의 중간 남자의 일종이며 OAuth 1.0/2.0과 같은 프로토콜이 있지만 (전술 한 OAuth 프로토콜을 사용하여 사용자 정의 SSO 솔루션을 만드는 방법에 관한 서비스 (Auth0, oauth.io 등) 참조하십시오, 나는 생각한다), 나는 과정의 완전한 흐름에 약간 안개가 낀다.싱글 사인온 (SSO) - 워크 플로

내가 무엇을 얻을 :

  • 앱은
  • (선택 사항) 응용 프로그램이 액세스 토큰의 유효성을 확인 액세스 토큰을 얻을 수
  • 앱 (액세스 토큰 포함) 특정 API에 대한 액세스 권한을 얻을 반환이 발생합니다. 예를 들어, Facebook 프로필 정보.

내가하지 않는 무엇을 : 나는 그것을 일단 그 정보와 함께해야 할 일

. 액세스 토큰을 보유하고 로그인 할 때마다 API 소스에서 정보를 요청합니까? 내 애플리케이션 데이터를 API 데이터와 어떻게 관련시킬 수 있습니까? 액세스 토큰과 응용 프로그램의 사용자 ID 만 포함 된 다른 종류의 사용자 레코드를 만들 수 있습니까?

답변

1

로그인 할 때마다 API 소스에서 액세스 토큰과 요청 정보를 유지합니까?

토큰이 만료되지 않으면 데이터 저장소에서 토큰을 보유하고 각 요청에 사용할 수 있습니다. 하지만 토큰이 만료되기 때문에 세션을 시작할 때마다 새 토큰을 요청해야합니다. 이 경우 토큰을 영구 저장 위치 대신 메모리에 저장할 수 있습니다.

API 데이터에 내 응용 프로그램 데이터를 어떻게 연관 시키나요?

이 질문에 대답하기 위해 응용 프로그램에 대해 더 알 필요가 있다고 생각합니다.

액세스 토큰과 응용 프로그램의 사용자 ID 만 포함 된 다른 종류의 사용자 레코드를 만들 수 있습니까?

다시 말하면 응용 프로그램에 대한 정보가 더 필요합니다. 토큰을 지속하는 경우 (만료되지 않는 경우), 토큰을 저장하려는 f}에 대해 몇 가지 고려 사항을 작성해야합니다. 그렇지 않다면 아마도 로컬 변수 나 세션에 넣을 수 있습니다.

+0

시간을내어 답변 해 주셔서 감사합니다. 응용 프로그램 구체화와 관련하여 저는 응용 프로그램 사용자와 관련된 주석 또는 만화 모음 또는 질문에 대한 응답 또는 응용 프로그램 사용자와 관련된 응용 프로그램 내에 존재하는 모든 종류의 데이터와 관련된 응용 프로그램 사용자 데이터를 관련시키는 일반적인 방법을 언급하고 있습니다. –

+1

OAuth 정보를 저장하는 일반적으로 일반적인 장소는 데이터베이스, 구성 파일, 캐시 또는 세션입니다. 어쩌면 비밀 키를 설정 파일에 넣고 세션 키를 캐시에 저장하거나 memcache와 같은 일종의 임시 저장 장치에 저장하십시오. –

+0

OAuth (또는 SSO 구현에 관계없이)에서 얻은 정보가 내 응용 프로그램의 사용자 테이블을 업데이트한다는 혼란의 주된 부분은 무엇입니까? 그래서) OAuth 데이터를 얻으십시오 2.) 전자 메일 (?) 3a를 기반으로 기존 응용 프로그램 사용자 레코드를 확인하십시오.) 존재하지 않으면 fname, profile pic, lname (예 :)을 데이터베이스에 채 웁니다. 3b 그렇지 않으면 응용 프로그램을 업데이트하십시오 사용자 데이터. 나는 벗어날 수 있습니다. –

관련 문제