이 문서에서는 웹 사용 설정 과정에서 JSON 웹 토큰을 발급하는 방법을 설명합니다. 모바일 기반 앱이 Fleet Engine 데이터에 액세스할 수 있습니다. 아직 조치를 취하지 않으셨다면 Fleet Engine의 보안에서 JSON 웹 토큰을 이미 읽어보세요. 섹션으로 이동합니다. Fleet Engine 서비스를 사용하면 방법은 다음과 같습니다.
- 승인 라이브러리 사용: 다음과 같은 경우에 이 방법을 사용하는 것이 좋습니다. 코드베이스가 Java로 작성되었는지 확인할 수 있습니다 이 라이브러리는 모든 API에 대한 JWT 발급을 사용 사례 시나리오를 살펴보고 있습니다.
- 자체 JWT 만들기—JWT 라이브러리를 사용할 수 없는 경우 이를 자체 코드베이스에 빌드할 수 있습니다 이 섹션에서는 JWT를 생성했는지를 보여줍니다
Java용 승인 라이브러리 사용
Java용 Fleet Engine 승인 라이브러리를 사용하려면 GitHub로 이동하세요. 저장소를 사용합니다. Fleet Engine 구성을 간소화하는 라이브러리 안전하게 서명합니다 이 API는 다음과 같은 기능을 제공합니다.
- 프로젝트 종속 항목 선언
- 주문형 이동 또는 예약된 이동의 모든 서비스 계정 역할의 전체 목록 작업
- 인증 파일 사용 이외의 토큰 서명 메커니즘(예: 서비스 계정 가장
- 서명된 토큰을 gRPC 스텁 또는 GAPIC 클라이언트
- 서명자를 Fleet Engine 클라이언트 라이브러리와 통합하는 방법에 대한 안내입니다.
코드에서 JWT를 실행하는 경우
Java용 승인 라이브러리를 사용할 수 없는 경우 JWT를 구현해야 합니다. 실행할 수 있습니다 이 섹션에서는 사용할 수 있습니다 Fleet Engine의 보안에서 JSON 웹 토큰을 참조하세요. 섹션을 참조하세요. 자세한 내용은 다음 섹션을 참조하세요. 작업을 수행합니다.
일반 가이드라인
- 적절한 역할을 사용합니다. 이렇게 하면 토큰을 요청하는 사용자가
볼 수 있는 권한이 부여된 사용자
구체적으로는 다음과 같습니다.
- 휴대기기로 전달할 JWT에 서명할 때는 서비스 드라이버 또는 소비자 SDK 역할의 계정을 사용해야 합니다. 그렇지 않으면 모바일 기기는 보유해서는 안 되는 상태를 변경할 수 있습니다.
- 마찬가지로 권한 있는 호출에 사용할 JWT에 서명할 때는 반드시 올바른 Fleet Engine 관리자 역할이 있는 서비스 계정을 사용합니다. 그렇지 않으면 작업이 실패합니다.
- 생성된 토큰만 공유합니다. 사용자 인증 정보를 토큰을 만듭니다
- gRPC 호출의 경우 토큰을 연결하는 메커니즘은
호출 시 사용된 언어와 프레임워크입니다. 포드의 사양을 지정하기 위한 메커니즘은
HTTP 호출의 토큰은 Bearer와 함께
Authorization
헤더를 포함하는 것입니다. 이 토큰을 반환합니다. - 만료 시간을 반환합니다. 서버는 만료 시간을 토큰이며 일반적으로 몇 초 단위입니다.
- 다음을 사용하는 대신 JSON을 토큰 베어러로 직접 만들고 서명하려는 경우 OAuth 2.0 액세스 토큰을 만드는 방법은 서비스 계정 OAuth 없이 인증(ID 개발자) 문서를 참조하세요.
주문형 여행용
- JWT 페이로드를 만들 때 승인에 클레임을 추가합니다.
vehicleid
또는tripid
키가 차량 값으로 설정된 섹션 호출 중인 ID 또는 이동 ID입니다.
예약된 작업
- 서버가 다른 API를 호출할 때 토큰에는
제공합니다. 이를 위해 다음을 수행할 수 있습니다.
- 각 키의 값을
*
로 설정합니다. - 사용자에게 모든
taskids
및deliveryvehicleids
에 대한 액세스 권한을 부여합니다. 해야 할 일 승인 섹션에서taskid
및deliveryvehicleid
키. taskids
클레임에서 별표 (*
)를 사용할 때는 배열의 유일한 요소입니다.
- 각 키의 값을
주문형 이동을 위한 JWT 예시
이 섹션에서는 주문형을 사용하는 경우의 일반적인 시나리오에 대한 JWT 예시를 제공합니다. 이동 횟수
백엔드 서버 작업의 예시 토큰
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_provider_service_account"
}
.
{
"iss": "provider@yourgcpproject.iam.gserviceaccount.com",
"sub": "provider@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"authorization": {
"vehicleid": "*",
"tripid": "*"
}
}
드라이버 앱 작업의 토큰 예시
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_driver_service_account"
}
.
{
"iss": "driver@yourgcpproject.iam.gserviceaccount.com",
"sub": "driver@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"authorization": {
"vehicleid": "driver_12345"
}
}
소비자 앱 작업의 토큰 예시
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_consumer_service_account"
}
.
{
"iss": "consumer@yourgcpproject.iam.gserviceaccount.com",
"sub": "consumer@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"authorization": {
"tripid": "trip_54321"
}
}
예약된 작업을 위한 JWT 예시
이 섹션에서는 예약된 작업을 사용하는 경우의 일반적인 시나리오에 대한 JWT 예시를 제공합니다. 할 수 있습니다
백엔드 서버 작업의 예시 토큰
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_provider_service_account"
}
.
{
"iss": "provider@yourgcpproject.iam.gserviceaccount.com",
"sub": "provider@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"authorization": {
"taskid": "*"
}
}
백엔드 서버 일괄 태스크 생성 작업의 토큰 예시
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_provider_service_account"
}
.
{
"iss": "provider@yourgcpproject.iam.gserviceaccount.com",
"sub": "provider@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"authorization": {
"taskids": ["*"]
}
}
백엔드 서버 배송 차량별 작업의 토큰 예시
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_provider_service_account"
}
.
{
"iss": "provider@yourgcpproject.iam.gserviceaccount.com",
"sub": "provider@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"authorization": {
"deliveryvehicleid": "*"
}
}
드라이버 앱의 토큰 예
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_delivery_driver_service_account"
}
.
{
"iss": "driver@yourgcpproject.iam.gserviceaccount.com",
"sub": "driver@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"authorization": {
"deliveryvehicleid": "driver_12345"
}
}
소비자 앱의 토큰 예시
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_delivery_consumer_service_account"
}
.
{
"iss": "consumer@yourgcpproject.iam.gserviceaccount.com",
"sub": "consumer@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"authorization": {
"trackingid": "shipment_12345"
}
}
모든 태스크 및 차량을 추적하는 토큰 예시
다음 예는 모든 작업을 추적하고 수 있습니다 JavaScript Fleet 추적 라이브러리 설정을 참고하세요. 다음과 같습니다.
Fleet Engine Delivery Fleet Reader
Cloud IAM 역할을 사용하여 토큰에 서명합니다.
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_consumer_service_account"
}
.
{
"iss": "superuser@yourgcpproject.iam.gserviceaccount.com",
"sub": "superuser@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"scope": "https://www.googleapis.com/auth/xapi",
"authorization": {
"taskid": "*",
"deliveryvehicleid": "*",
}
}
다음 단계
- 설정을 확인하여 시험용 차량을 만들고 토큰이 정상적으로 작동하고 있는지