2017-09-26 2 views
0

나는 oauth2보다는 오히려 새로운 점을 염두에 두시기 바랍니다. 나는 oauth2의 느낌을 얻고 그것으로 놀고 싶었습니다. 이를 위해 Gmail 계정에 연결하고 이메일을 가져 오기 위해 offlineimap을 사용했습니다.oauth2에서 클라이언트 비밀을 보호하는 방법 및 이유

날 나는 내가 CLIENT_ID 나 나를 식별하는 데 사용됩니다 이해 마찬가지로 지금까지 내 일반적인 질문을

oauth2_client_id = clientId 
oauth2_client_secret = clientSecretToken 
oauth2_request_url = requestUrl 
oauth2_refresh_token = refreshToken 
type = IMAP 
remotehost = imap.gmail.com 
remoteuser = [email protected] 
remotepass = mailpasswd('gmail') 

을 명시하는 데 사용하는 몇 가지 설정 파일을 복사 할 수 있습니다 : 요청 URL 그냥 내 연결 지점입니다 외부 앱에 대한 Google 사이트에 새로 고침 토큰은 실제 액세스 토큰을 생성하는 데 사용됩니다.

클라이언트의 비밀은 올바른 앱이 특정 액세스를 요구하고 있음을 Gmail에 알리기 위해 앱과 Gmail 간의 공유 된 비밀입니다.

질문 나는 토큰 제대로 새로 고침이 이해하는 경우와 클라이언트의 비밀은 "비밀"이어야합니다. 이러한 정보를 이러한 구성 파일에 저장하는 것이 위험하다는 것을 의미합니까? 비밀번호 (예 : gpg)와 같이 암호화해야합니까?

oauth2에서 나에게 명확하지 않은 마지막 사항은 다음과 같습니다. oauth2는 기본적으로 내가 로그인 한 것으로 간주하므로 내 자격 증명 (사용자 이름/암호)을 제공해야한다는 점을 올바르게 이해하고 있습니까? ?

oauth2가 높은 수준에서하는 일은 특정 외부 앱이 내 Gmail에 대한 특정 액세스 권한을 확보하는 것입니다. 특정 데이터에 특정 앱을 부여하는 것입니다. 하지만 Gmail에 로그인 할 때 내 자격 증명을 제공해야합니다.

답변

1

예를 들어 공개 코드 repo를 github로 사용하고 사용중인 설정 파일과 함께 코드를 푸시한다고 가정 해 보겠습니다. 당신은 전 세계에 당신의 비밀을 드러 냈습니다. 그리고 사람들이 이것을 몇 번이나했는지 말할 수는 없습니다.

코드가 공개되지 않은 경우 더 좋지만 직접 요청한 경우 웹 서버가 구성 파일을 제공하지 않는지 확인하십시오. 일단 모든 것이 살아 있다면 아무도 접근 할 수없는 한 당신은 안전합니다.

아, 새로 고침 토큰이 작동하는 방식을 명확히하기 위해 ... 만료되었거나 만료 된 이전 토큰의 수명을 연장하는 데 사용되므로 새 토큰을 요청할 필요가 없습니다.

나인 경우 ClientID, ClientSecret 및 RefreshToken을 모두 의미하는 3을 모두 암호화합니다.

이런 식으로 생각하면 ClientID는 사용자 이름이고 ClientSecret은 암호입니다.

+0

thx입니다. 두 가지 빠른 질문 : 그렇다면 client_secret와 refresh_token 또는 client_secret 만 암호화 하시겠습니까? 물론, 내가 정확히 이해한다면 새로 고침 토큰이 새로운 액세스 토큰을 만드는 데 사용된다는 것입니다. – math

+0

질문에 대답하기 위해 더 많은 답변을 추가했습니다. –

+0

멋진, 확장 된 anwser에 대한 많은 감사합니다! – math

1

하지만 Gmail 계정에만 로그인 자격 증명을 제공하고 제 3 자 서비스에 노출시키지 않는 것이 중요합니다. 타사 앱이 로그인 후 인증 토큰을 통해 인증하는 계정과 상호 작용합니다. 필요한 경우이 토큰을 쉽게 무효화 할 수 있으며 타사 응용 프로그램에 더 이상 액세스 할 수 없습니다. 암호를 변경할 필요없이 모두.

+0

답장을 보내주십시오. 그것은 공정한 지적이다. "새로 고침과 clien 비밀"질문을 처리하는 방법은 어떻습니까? 파일에 저장하는 것은 위험한가요? 아니면 암호화 된 파일에서 읽어야합니까? anwser에 대한 – math

관련 문제