0

나는 TweetDeck이 사용자를 대신하여 Twitter 및 Facebook에 액세스하는 것을 도울 수 있음을 이해합니다.TweetDeck은 데스크톱 앱/모바일 앱/웹 앱에 어떤 인증 메커니즘을 사용합니까?

OAuth2에서 TweetDeck은 타사 응용 프로그램이고 Twitter 및 Facebook은 사용자가 리소스 소유자 인 동안 리소스 서버입니다.

내 질문은 아니요에 대해 TweetDeck이 리소스 소유자를 대신하여 일부 리소스 서버에 액세스하는 것에 관한 것입니다.

제 질문은 TweetDeck이 자신의 데스크톱 app/mobile app/webapp에 대한 인증을 처리하는 방법입니다. 사용자가 여전히 자신의 TweetDeck 사용자 이름/비밀번호를 사용하여 로그인해야하기 때문에?

webapp의 경우 간단합니다. TweetDeck은 응용 프로그램/인증 상태와 HTTPS를 통한 간단한 로그인 양식을 유지하기 위해 좋은 ol '서버 세션과 브라우저 쿠키를 사용할 수 있습니다.

내 주요 질문은 데스크톱 앱/모바일 앱은 어떻습니까?

TweetDeck에서도 OAuth2를 자체 인증에 사용합니까? 그렇지 않다면 무엇을 사용합니까?

그렇다면 Resource Owner Password Credentials Grant입니까? 그렇지 않다면 어떤 유형의 OAuth가 허가됩니까?

그렇다면 무차별 대입에 의한 공격으로부터 어떻게 보호받을 수 있습니까? 문서에 명시되어 있기 때문에 엔드 포인트는 무차별 공격으로부터 보호해야합니다.

+0

클라이언트가 타사 응용 프로그램이기 때문에 사용자가 클라이언트가 아닙니다. 사용자가 자원 소유자입니다. –

+0

이 수정되었습니다. 감사합니다. @ArtemOboturov –

답변

0

사용자 지정 세션 구현시 HTTP Basic Authentication을 사용합니다. 아래에서 실행 한 테스트에서 required parameters (예 : grant_type) 중 일부를 지정하지 않았기 때문에 OAuth2의 리소스 소유자의 비밀번호 인증 보조금의 구현이 아니며 서버가 불평하지 않았습니다. 여기

내가 곱슬 곱슬 사용 않았다 로컬 실행의 : BTW

∴ curl -v https://opyate%40gmail.com:[email protected]/login\?session\=true 
    * About to connect() to api.tweetdeck.com port 443 (#0) 
    * Trying 199.59.149.231... 
    * connected 
    * Connected to api.tweetdeck.com (199.59.149.231) port 443 (#0) 
    * successfully set certificate verify locations: 
    * CAfile: /opt/local/share/curl/curl-ca-bundle.crt 
     CApath: none 
    * SSLv3, TLS handshake, Client hello (1): 
    * SSLv3, TLS handshake, Server hello (2): 
    * SSLv3, TLS handshake, CERT (11): 
    * SSLv3, TLS handshake, Server finished (14): 
    * SSLv3, TLS handshake, Client key exchange (16): 
    * SSLv3, TLS change cipher, Client hello (1): 
    * SSLv3, TLS handshake, Finished (20): 
    * SSLv3, TLS change cipher, Client hello (1): 
    * SSLv3, TLS handshake, Finished (20): 
    * SSL connection using RC4-SHA 
    * Server certificate: 
    * subject: C=US; ST=CA; L=San Francisco; O=Twitter, Inc.; OU=Twitter Security; CN=tdweb.twitter.com 
    * start date: 2012-02-23 00:00:00 GMT 
    * expire date: 2015-02-27 12:00:00 GMT 
    * subjectAltName: api.tweetdeck.com matched 
    * issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert High Assurance CA-3 
    * SSL certificate verify ok. 
    * Server auth using Basic with user '[email protected]' 
    > GET /login?session=true HTTP/1.1 
    > Authorization: Basic 1337YfRl1337YWl1337vbTpzdXJmYTMyMA== 
    > User-Agent: curl/7.25.0 (x86_64-apple-darwin10.8.0) libcurl/7.25.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.22 
    > Host: api.tweetdeck.com 
    > Accept: */* 
    > 
    < HTTP/1.1 200 OK 
    < Transfer-Encoding: chunked 
    < Date: Tue, 12 Jun 2012 12:59:47 GMT 
    < Expires: Fri, 21 Mar 1975 09:30:00 GMT 
    < Content-Type: text/html 
    < Cache-Control: no-cache 
    < Cache-Control: no-store 
    < Cache-Control: must-revalidate 
    < Cache-Control: pre-check=0 
    < Cache-Control: post-check=0 
    < Server: tfe 
    < 
    * Connection #0 to host api.tweetdeck.com left intact 
    {"mail_list": "False", "session": "Ta1337Qb1wu1337Ra29b1337-13371337Vbf93y91337", "updated_time": "2011-12-08T12:31:00"}* Closing connection #0 
    * SSLv3, TLS alert, Client hello (1): 

를, 나는 크롬 개발자 도구 세션에서 해당 로그인 URL 가지고 :

enter image description here


UPDATE를

I asked TweetDeck themselves,하지만 그들은 서면으로 아직 대답하지 않았습니다.

+0

Tweetdeck이 데스크톱 및 모바일 응용 프로그램에서도이 작업을 수행한다는 것이 맞습니까? –

+0

미안하지만 대부분의 사람들이 SPA와 데스크톱 응용 프로그램이 같은 것을 보았다고 가정했습니다. Adobe AIR Tweetdeck 클라이언트를 다운로드/설치했으며, Wireshark를 통해 처음 본 것은 api.tweetdeck.com에 대한 SSL CONNECT 호출이었습니다 (예 : 아마도). – opyate

+0

찰스를 사용하려고했지만 SSL 때문에 매개 변수를 볼 수 없습니다. 그들은 code, client_id, client_secret, access_tokens와 같은 매개 변수를 포함합니까? 그들이하지 않으면 로그인을 위해 OAuth를 사용하지 않는 것 같아요. –

관련 문제