JSON 웹 토큰

JSON 웹 토큰 (JWT)은 인증 및 검증에 사용되는 개방형 웹 표준입니다. 클라이언트와 서버 간의 정보 교환을 승인합니다. 앱에서 먼저 해당 역할의 사용자 인증 정보로 로그인하면 서버는 후속 요청에 사용할 수 있도록 인코딩되고 디지털 서명된 JWT를 반환합니다. 이 프로세스는 사용자를 인증하고 경로에 액세스하도록 승인합니다. 리소스 및 서비스를 관리할 수 있습니다

Fleet Engine을 사용하려면 서명된 JSON 웹 토큰 (JWT)을 사용해야 합니다. 신뢰도가 낮은 API 메서드 호출을 위한 적절한 서비스 계정 환경을 참조하세요. 신뢰도가 낮은 환경에는 스마트폰과 브라우저가 포함됩니다. JWT 완전히 신뢰할 수 있는 환경인 서버에서 시작됩니다. JWT 서명되고 암호화되어 후속 서버를 위해 클라이언트에 전달됩니다. 만료되거나 더 이상 유효하지 않을 때까지 상호작용하지 않습니다.

백엔드는 다음을 사용하여 Fleet Engine에 대해 인증 및 승인해야 합니다. 표준 애플리케이션 기본 사용자 인증 정보 메커니즘을 사용합니다. 제조업체 적절한 서비스 계정으로 서명된 JWT를 사용해야 합니다. 서비스 계정 역할 목록은 Fleet Engine 서비스 계정 역할 참조 Fleet Engine 기본사항 참고

API 키와 달리 JWT는 수명이 짧으며 권한이 있는지 확인해야 합니다 JWT에 대한 자세한 내용은 JSON 웹 참조 토큰(위키백과) 액세스 역할에 대한 자세한 내용은 서비스 계정 역할을 참조하세요.

JWT 요소

JWT는 헤더와 클레임 섹션을 포함합니다. 헤더 섹션에는 서비스 계정에서 가져온 비공개 키, 암호화 알고리즘입니다. 클레임 섹션에는 JWT의 시간, TTL(수명), JWT에서 요구하는 서비스 생성 액세스 범위를 지정하기 위한 기타 승인 정보 대상: 배송 차량 ID를 예로 들 수 있습니다.

다음 표에는 일반적인 JWT 필드에 대한 상세한 설명이 나와 있습니다. 이러한 매개변수의 값을 찾을 수 있는 위치에 대한 구체적인 정보도 확인할 수 있습니다 Fleet Engine Cloud 프로젝트의 필드입니다.

JWT 헤더 필드

필드

설명

alg

사용할 알고리즘입니다. `RS256`

유형

토큰 유형입니다. `JWT`입니다.

어린이

서비스 계정의 비공개 키 ID입니다. 이 값은 서비스 계정 JSON 파일의 private_key_id 필드 제조업체 올바른 수준의 권한이 있는 서비스 계정의 키를 사용해야 합니다.

JWT 클레임 필드

필드

설명

iss

서비스 계정의 이메일 주소( 서비스 계정 JSON 파일의 client_email 필드

sub

서비스 계정의 이메일 주소( 서비스 계정 JSON 파일의 client_email 필드

aud

서비스 계정의 SERVICE_NAME, 이 경우 https://fleetengine.googleapis.com/

iat

JWT가 생성된 타임스탬프로, 초 단위로 지정됩니다. 00:00:00 UTC, January 1, 1970 이후 경과되었습니다. 편향은 10분 동안 허용합니다. 타임스탬프가 너무 먼 과거이거나 미래인 경우 서버에서 오류를 보고할 수 있습니다.

exp

JWT가 만료될 때의 타임스탬프로, 경과 시간(초)으로 지정됩니다. 00:00:00 UTC, January 1, 1970부터 다음과 같은 경우 요청이 실패합니다. timestamp는 한 시간 이후의 미래입니다.

승인

사용 사례에 따라 deliveryvehicleid, trackingid, taskid 또는 taskids입니다.

Fleet Engine JWT 클레임

Fleet Engine은 비공개 클레임을 사용합니다. 비공개 클레임을 사용하면 자신의 데이터에 액세스할 수 있습니다.

예를 들어 서버가 드라이버의 모바일 애플리케이션에 대한 JSON 웹 토큰을 발급하는 경우 vehicleid 클레임 또는 해당 운전자의 차량 ID 값으로 deliveryvehicleid 클레임을 제기합니다. 그런 다음 운전자 역할에 따라 JWT를 사용하면 특정 차량에 대해서만 액세스를 사용 설정할 수 있음 다른 임의의 차량 ID가 아닌 ID

Fleet Engine은 다음과 같은 비공개 클레임을 사용합니다.

주문형 경로

  • vehicleid:
    • Driver SDK는 경로 운행 여부와 상관없이 항상 이 클레임을 사용합니다. 또는 차량입니다. Fleet Engine 백엔드는 차량이 요청된 이동과 관련된 정보를 제공합니다.
    • 서비스 제공업체는 이 클레임을 '*'와 함께 사용합니다. 모두 일치 있습니다. JWT는 차량과 이동을 모두 포함할 수 있습니다. 작업을 수행할 수 있으므로 JWT 서명이 간소화될 수 있습니다. 있습니다.
  • tripid:
    • 소비자 SDK는 항상 이 소유권 주장을 사용합니다.
    • 서비스 제공업체는 이 클레임을 '*'와 함께 사용합니다. 모두 일치 이동 횟수 JWT는 차량 및 이동 작업을 모두 포함할 수 있습니다. 필요하지 않은 경우에도 이를 통해 토큰 서명이 간소화될 수 있음 있습니다.

예약된 작업

  • deliveryvehicleid

    배송 차량별로 전화를 걸 때 사용 API에 액세스할 수 있습니다

  • taskid

    태스크별 API를 호출할 때 사용합니다.

  • taskids

    통화할 때 사용 BatchCreateTasksAPI 이 클레임은 배열 형식이어야 하며 그리고 배열에는 합니다. delivervehicleid는 포함하지 않습니다. trackingid 또는 taskid 소유권 주장

  • trackingid

    호출 시 GetTaskTrackingInfoAPI 소유권 주장이 추적 정보와 일치해야 함 ID를 포함해야 합니다. delivervehicleid는 포함하지 않습니다. taskid 또는 taskids 소유권 주장

다음 단계