2015-01-29 2 views
0

저는 OAuth를 구현하는 회사와 협력 중이며 현재는 access_token의 수명을 180 초 동안 제공하고 있습니다. 이것은 나에게 부족한 것처럼 보입니다. 그래서 평생이 access_token 일 때 다른 웹에서하는 일이 무엇인지 파악하려고합니다.OAuth access_token의 일반적인 수명은 어떻게됩니까?

내가 웹에서 본 : 그것은 개발자를 강제로, expires them after ~60 days

은 그래서 180 초 너무 짧은 것을 나에게 보인다

  • 트위터 lets them live forever
  • 페이스 북 새로운 access_token을 요청하려면 항상 refresh_token을 사용해야합니다.

    제안 사항?

    EDIT : 처음에는 "OAuth access_token의 합리적인 수명은 어땠습니까?"라고 물었습니다. OAuth access_token의 전형적인 수명은 무엇입니까? "라는 질문을 변경했습니다. 실제로 이것이 의미하는 바에 가까워 졌다고 생각합니다.

+0

회사 데이터가 얼마나 합리적인지에 달려 있습니다. 약한 앱에 저장된 긴 수명의 토큰을 사용하면 해당 앱이 해킹 당할 수 있으며 누군가가 해당 토큰을 사용하여 고객 데이터를 읽습니다. 보통 180 초는 프로그램이 API에 쿼리 할 수있는 적절한 시간입니다. –

답변

2

짧은 답변 :

모두가 회사의 정책과 그 OAuth를 구현에 따라 어떤 합리적인

.

긴 답변 :

액세스 토큰 수명이 정말 즉 파트너 회사와 정책의 인증 서버 토큰의 공급에 달려있다.

3 분이 매우 짧지 만 회사 보안 정책에 따라 특정 사용 권한 또는 계정 제거를 취소 할 때 해당 사용 권한을 기반으로 액세스 권한이 부여 된 클라이언트의 액세스가 3 분 이내에 비활성화되도록 요구할 수 있습니다. 이것이 상당히 중요한 네트워크 및 프로세싱 오버 헤드를 희생시켜야한다는 사실은 (잘하면) 계산 된 것입니다.

해당 결정의 비용 (: 오버 헤드)도 토큰 자체의 사용법에 따라 다릅니다. 드물게 사용되지만 항상 버스트 모드에서 오버 헤드가 상대적으로 낮을 수 있습니다. 자주 사용되지만 한 번만 API 호출에 사용되는 경우 오버 헤드가 상대적으로 크기 때문에 비용이 더 많이 듭니다.

대부분의 환경에서는 현장에서 모든 위임 된 액세스를 즉시 제거 할 필요가 없으며 적어도 1 시간의 지연을 처리하는 것이 합리적 일 것입니다.

한편 트위터와 페이스 북은 장기간 액세스 토큰을 제공 할 수있는 방식으로 OAuth를 구현하고 있습니다. 리소스 서버가 액세스 토큰을 받으면 토큰을 발급 한 계정과 관련된 사용 권한을 확인합니다 . 물론 성능상의 이유로 리소스 서버는 이러한 결과를 캐싱합니다 (논의를 위해 3 분 동안 말합니다). 그러나 효과적으로 클라이언트 대신 리소스 서버에 "새로 고침 오버 헤드"를 가하는 동일한 결과를 산출합니다 . (이것은 JWT와 같은 구조화 된 자체 포함 액세스 토큰을 사용하는 목적을 다소 상실합니다).

합리적인 범위 내에서 클라이언트를 명시 적으로 다시 인증 할 필요가 없거나 원하는 경우 Twitter 및 Facebook의 접근 방식이 효과적입니다. 트위터와 페이스 북은 사용자를 자주 인증하지 않기 때문에 이러한 접근 방식이 적합합니다.

각 유스 케이스가 다르다고 말할 수 있습니다. 모든 유스 케이스는 당신이 원하는 것과 실행 방법에 달려 있습니다. 그리고 귀하의 회사와 페이스 북은 서로 다른 토큰, 리소스 서버 구현 및 클라이언트 (및 사용자) 인증에 대한 제한이 있으므로 비교할 수 없습니다.

+0

한스 Z, 나는 너의 음악에 대한 열렬한 팬이다. 네가 너무 좋아했다는 것을 몰랐다 : D 좋은 설명! – divyanshm

관련 문제