2011-04-11 10 views
2

일단 권한 프로세스가 완료되면 액세스 토큰과 비밀 (토큰 자격 증명)이 모두 필요하다는 인상을 받았습니다 타겟 리소스. 이 인용문에 따르면 [in some cases, the client credentials cannot be trusted and can only be used for informational purposes only, such as in desktop application clients] 이것은 그렇지 않을 수도 있습니다. 리소스에 액세스하기 위해 권한 부여 소비자 키와 비밀 (클라이언트 자격 증명)이 필요한 후에도 문제가 발생합니다. 이것은 옳지 않은 것처럼 보입니다.OAuth 클라이언트 자격 증명 (key + secret)은 유효한 토큰 자격증 명 이어도 데스크탑 응용 프로그램에 필요합니다.

내 데스크탑 응용 프로그램에 OAuth을 구현하여 DotNetOpenAuth 개의 샘플을 찾습니다. 기본적으로 변경되지 않은 InMemoryTokenManagerDesktopConsumer을 사용했으며 모든 권한은 한 번만 승인되었습니다. 앱을 다시 시작하고 저장된 토큰 자격 증명을 재사용하면 앱이 리소스에 액세스하지 못합니다. 저장된 토큰 신임장과 클라이언트 신임장을 사용한 경우, 자원은 올 Y 르게 액세스됩니다. 디자인에 의한 것인가? 부정확한데도 전문가가 아닙니다.

답변

1

정확합니다. OAuth 1.0 사양에 따라 액세스 토큰을 사용할 때마다 클라이언트 자격 증명이 필요합니다. 이렇게하면 유출 된 액세스 토큰이 다른 클라이언트에 의해 악용되는 것을 방지 할 수 있습니다. 이 추론은 주로 클라이언트의 비밀이 실제로는 비밀이라고 가정합니다.이 비밀은 데스크톱 응용 프로그램에서 가정 할 수 없습니다. 그럼에도 불구하고, 당신은 비밀이 아닌 "비밀"을 가질 수 있으며 모든 것을 계속 지키기 위해 앱을 시작한 후에도 그것을 유지할 수 있습니다.

관련 문제