실제 두뇌 굴곡 세션이 끝난 후 오늘 나는 3 각형 OAuth 인증을 꽤 잘 이해하고 있다고 느낍니다. 아직도 이해가 안되는 것은 사용자 ID를 사용하는 것입니다. 지금까지 본 모든 예제는 예제 스크립트 맨 위에 임의로 사용자 ID를 지정하고 이동하는 것 같습니다. 그것은 나를 혼란스럽게합니다.3-legged OAuth 세션에서 사용자 ID 사용 이해?
내가 본 샘플 코드의 대부분은 OAuth "세션"을 관리하기 위해 사용자 ID와 OAuth 서버의 소비자 키를 사용한다는 개념을 중심으로 한 것 같습니다 (인용문에서는 용어를 브라우저 "세션"). 예를 들어 필자가 본 데이터베이스 샘플 코드는 사용자 ID 및 소비자 키 필드 값에 따라 토큰 및 기타 정보를 저장하고 검색합니다.
내가 이해의 몇 경쟁 단편 경쟁 불확실성과 충돌의 상태에 지금 나는 다음을 통해,
1)의 OAuth 세션 세부 레코드 또는 "OAuth를 저장"조회에 대한 이해가 맞으면 고객 키 및 사용자 ID 입력란을 입력 한 다음 OAuth 서버에 연결하는 응용 프로그램을 사용하는 각 사용자마다 서로 다른 사용자 ID를 사용하도록 요구하지 않습니다.
2) # 1이 맞으면 다른 사용자를 위해 내 자신의 사용자 계정을 만들지 않으려면 어떻게 피하려고합니까? 나는 OAuth가 가능한 서비스의 프론트 엔드 역할을하는 소프트웨어를 작성하려고 노력하고있다. 그래서 나는 내 자신의 사용자 기록과 그에 따르는 유지 보수의 어려움을 가질 필요가 없다. 대신 OAuth 서버가 퍼즐의 끝 부분을 처리하도록 할 것입니다. 그러나 내 접근법의 단점은 모든 세션에서 사용자를 다시 인증해야한다는 것입니다. 내 자신의 영구 사용자 계정/ID가 없으면 이전에 부여 된 "해지하기 좋은"액세스 토큰을 조회 할 수 없기 때문에, 옳은?
3) 내가 귀찮게하는 것은 인증되지 않은 토큰을 요청하는 동안 동적으로 지정된 콜백 URL을 전달할 수 없도록 일부 OAuth 서버에 대해 읽었으며 소비자 키와 사용자 ID가 다시 전달된다는 것입니다 불가능한. 대신 개발자/소비자로 등록 할 때 콜백 URL을 지정하면됩니다. 다행히도 내가 다루고있는 OAuth 서버는 그 기능을 허용하지만, 그렇지 않다면 상대방 키와 사용자 ID 쌍을 사용하는 전체 아이디어에 거대한 원숭이 렌치를 던지지 않을 것입니다. OAuth 세션 세부 정보의 색인을 생성 하시겠습니까?
는
네가 맞아. 나는 적어도 사용자 ID와 PIN으로 끝날 것입니다. 정적 콜백 URL 보안에 대한 좋은 지적. 하나의 질문. "악의적 인 사람이 GreatApp의 고객 키를 훔치는 경우"라고 말하면서도 비밀을 유지할 필요가 없습니까? 나는 그들이 당신의 콜백 URI를 분명히 볼 수있는 GET URL 인수로 다시 전달할 것을 제안하는 샘플 코드를 보았 기 때문에 희망한다. 예를 들어 oauth-php 샘플에서 "3 단계 : 서버에 액세스하기"섹션을 참조하십시오. http://code.google.com/p/oauth-php/wiki/ConsumerHowTo –
네, 맞습니다. , 나는 오직 소비자 키와 소비자 비밀을 말 했어야했다. 왜냐하면 키만으로는 그다지 할 수 없기 때문이다. :) – middlehut
@Lyuben, 공급자가 사용자 ID (논리적으로 들리 겠지만)를 가질 필요가 없으며 또한 고객? 따라서 OAuth를 로그인 시스템으로 사용하는 클라이언트는 OAuth 서버를 통해 인증하기 전에 사용자 (ID가있는 사용자)를 생성해야합니다. 인증이 실패하거나 액세스가 허용되지 않은 경우 빈 사용자 계정을 많이 만듭니다. OAuth를 로그인 시스템으로 사용하기가 어렵다면 OpenID가 더 좋습니다. – Lode