Method: vdc.provisionMobileSecurityObjects

사용자 인증 정보를 프로비저닝하는 엔드포인트입니다.

HTTP 요청

POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

JSON 표현
{
  "requestMetadata": {
    object (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
필드
requestMetadata

object (RequestMetadata)

모든 요청에 필요한 요청에 관한 메타데이터입니다.

deviceReferenceId

string

기기 및 기기와 연결된 ID 키에 해당하는 ID입니다. 이는 기기 ID가 아닙니다. 즉, 사용자가 동일한 기기에서 두 개의 별도 사용자 인증 정보를 사용하는 경우 이 ID는 서로 다릅니다.

이 ID는 모든 요청에 제공되며 요청을 상호 연관시키는 데 사용할 수 있습니다.

credentialId

string

기기에 프로비저닝된 특정 사용자 인증 정보를 나타내는 불투명 식별자입니다.

예: UUID

authKeys[]

object (AuthKey)

모바일 보안 객체로 사용할 수 있도록 인증해야 하는 x509 인증서 목록입니다. 각 인증서는 기기 사용자 인증 정보 키로 서명됩니다.

proofOfProvisioning

object (ProofOfProvisioning)

사용자 인증 정보가 올바르게 프로비저닝되었음을 증명하는 기기의 객체입니다. 구조에 관한 자세한 내용은 객체 정의를 참고하세요.

참고: 이 객체는 사용자 인증 정보가 프로비저닝된 후 모바일 보안 객체가 처음 프로비저닝될 때만 제공됩니다. MSO 새로고침에 이 메서드를 사용하는 경우 제공되지 않습니다.

deviceEncryptionKey

object (DeviceEncryptionKey)

기기의 임시 암호화 키와 연결된 메타데이터가 포함된 객체입니다. 이 키는 값을 기기로 다시 암호화하는 데 사용됩니다. 이 객체는 온보딩 중에 샌드박스 환경에서 제공되지 않을 수 있으므로 발급자가 일반 텍스트 데이터를 반환해야 합니다. 프로덕션 환경에서는 항상 설정해야 합니다.

credentialVersionId

string

기기가 현재 보유한 사용자 인증 정보 버전 ID입니다. 이 값은 이전 버전의 사용자 인증 정보에 모바일 보안 객체를 프로비저닝하는 데 사용하면 안 됩니다(SHOULD NOT). 이 값이 발급자 레코드에 프로비저닝된 최신 버전과 일치하지 않으면 InvalidState가 포함된 ErrorResponse를 대신 반환해야 합니다.

응답 본문

모바일 보안 객체 프로비저닝 결과를 포함하는 응답입니다.

성공한 경우 응답 본문은 다음과 같은 구조의 데이터를 포함합니다.

JSON 표현
{
  "responseMetadata": {
    object (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
필드
responseMetadata

object (ResponseMetadata)

모든 응답에 필요한 응답에 관한 메타데이터입니다.

mobileSecurityObjects[]

object (MobileSecurityObject)

준비된 MobileSecurityObject 목록입니다. 현재 준비된 MobileSecurityObject가 없으면 이 목록이 비어 있을 수 있습니다.

AuthKey

발급자가 인증할 기기 사용자 인증 정보 키로 서명된 x509 인증서입니다.

이러한 키는 월렛에서 Android ID 자격 증명 API를 통해 가져오며 https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()에서 자세히 설명합니다.

JSON 표현
{

  // Union field presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
필드
통합 필드 presencetype. AuthKey가 표시되는 방식을 나타내는 oneof입니다. presencetype은 다음 중 하나여야 합니다.
encryptedData

object (EncryptedData)

값을 복호화하는 데 필요한 암호화된 값과 암호화 메타데이터입니다.

unencryptedValue

string

AuthKey의 base64 인코딩 값입니다.

ProofOfProvisioning

기기 사용자 인증 정보 키로 서명되고 관련 사용자 인증 정보가 기기의 보안 저장소에 올바르게 프로비저닝되었음을 증명하는 COSE_Sign1 구조입니다.

이 구조는 Android ID 사용자 인증 정보 API에 의해 정의되며 https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData)에서 자세히 설명합니다.

JSON 표현
{

  // Union field presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
필드
통합 필드 presencetype. 프로비저닝 증빙이 표시되는 방식을 나타내는 oneof입니다. presencetype은 다음 중 하나여야 합니다.
encryptedData

object (EncryptedData)

값을 복호화하는 데 필요한 암호화된 값과 암호화 메타데이터입니다.

unencryptedValue

string

ProofOfProvisioning의 base64로 인코딩된 값입니다.

MobileSecurityObject

인증 정보에 포함된 각 데이터 요소에서 계산된 다이제스트를 캡슐화하는 객체입니다. 이는 Android ID 사용자 인증 정보 라이브러리에 필요한 형식인 정적 인증 데이터로 표현됩니다. 정적 인증 데이터 구성에 관한 자세한 내용은 여기를 참고하세요.

JSON 표현
{
  "expirationTimeMillis": string,

  // Union field presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
필드
expirationTimeMillis

string (int64 format)

모바일 보안 객체가 만료되는 시간을 나타내는 타임스탬프입니다. 타임스탬프는 Unix epoch 이후의 밀리초 수로 표시됩니다.

통합 필드 presencetype. 사용자 인증 정보가 표시되는 방식을 나타내는 oneof입니다. presencetype은 다음 중 하나여야 합니다.
encryptedData

object (EncryptedData)

값을 복호화하는 데 필요한 암호화된 값과 암호화 메타데이터입니다.

unencryptedValue

string

사용자 인증 정보의 base64로 인코딩된 값입니다.