証明書をプロビジョニングするためのエンドポイント。
HTTP リクエスト
POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects
リクエストの本文
リクエストの本文には、次の構造のデータが含まれます。
| JSON 表現 |
|---|
{ "requestMetadata": { object ( |
| フィールド | |
|---|---|
requestMetadata |
必須。すべてのリクエストで必要な、リクエストに関するメタデータ。 |
deviceReferenceId |
必須。デバイスに対応する ID とデバイスに関連付けられた ID 鍵。これはデバイス ID ではありません。つまり、ユーザーが同じデバイスで 2 種類の認証情報を使用する場合、この ID はそれぞれの認証情報で異なります。 この ID はすべてのリクエストで提供され、リクエストの関連付けに使用できます。 |
credentialId |
必須。デバイスにプロビジョニングされた特定の認証情報を表す不透明な識別子。 例: UUID |
authKeys[] |
必須。モバイル セキュリティ オブジェクトとして使用できるよう、認定を受ける必要がある x509 証明書のリスト。それぞれの証明書はデバイスの認証情報鍵によって署名されます。 |
proofOfProvisioning |
必須。認証情報が適切にプロビジョニングされていることを証明するデバイスのオブジェクト。この構造の詳細については、オブジェクトの定義をご覧ください。 注: このオブジェクトが提供されるのは、認証情報がプロビジョニングされた後に、モバイル セキュリティ オブジェクトが最初にプロビジョニングされたときのみです。このメソッドが MSO の更新に使用される場合、このオブジェクトは提供されません。 |
deviceEncryptionKey |
必須。デバイスのエフェメラル暗号鍵と関連するメタデータを含むオブジェクト。この鍵は、値をデバイスに暗号化して返すために使用されます。このオブジェクトは、オンボーディング時のサンドボックス環境では提供されないことがあります。その場合、発行元は平文のデータを返す必要があります。このオブジェクトは本番環境では必ず設定する必要があります。 |
credentialVersionId |
必須。デバイスに現在設定されている認証情報のバージョン ID。認証情報のバージョンが古い場合は、モバイル セキュリティ オブジェクトのプロビジョニングに使用しないでください。発行者のレコード内でプロビジョニングされた最新バージョンと一致しない場合は、ErrorResponse に InvalidState が付加されて返されます。 |
レスポンスの本文
モバイル セキュリティ オブジェクトのプロビジョニングの結果を含むレスポンス。
成功した場合、レスポンスの本文には次の構造のデータが含まれます。
| JSON 表現 |
|---|
{ "responseMetadata": { object ( |
| フィールド | |
|---|---|
responseMetadata |
必須。すべてのレスポンスで必要な、レスポンスに関するメタデータ。 |
mobileSecurityObjects[] |
必須。準備ができた MobileSecurityObjects のリスト。現在 MobileSecurityObjects が準備できていない場合、このリストは空になります。 |
AuthKey
デバイスの認証情報鍵によって署名された x509 証明書。発行元によって認証されます。
これらはウォレットによって Android Identity Credential API から取得されます。詳細は、https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification() をご覧ください。
| JSON 表現 |
|---|
{ // Union field |
| フィールド | |
|---|---|
共用体フィールド presencetype。必須。AuthKey がどのように提示されているかを示す oneof。presencetype は次のいずれかになります。 |
|
encryptedData |
暗号化された値と、値を復号するために必要な暗号化メタデータ。 |
unencryptedValue |
Base64 でエンコードされた AuthKey の値。 |
ProofOfProvisioning
COSE_Sign1 構造。デバイスの認証情報鍵によって署名され、関連する認証情報がデバイスの安全なストレージに適切にプロビジョニングされたことを証明します。
この構造は Android Identity Credential API で定義されます。詳細は、https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData) をご覧ください。
| JSON 表現 |
|---|
{ // Union field |
| フィールド | |
|---|---|
共用体フィールド presencetype。必須。ProofOfProvisioning がどのように提示されているかを示す oneof。presencetype は次のいずれかになります。 |
|
encryptedData |
暗号化された値と、値を復号するために必要な暗号化メタデータ。 |
unencryptedValue |
Base64 でエンコードされた ProofOfProvisioning の値。 |
MobileSecurityObject
認証情報に含まれる各データ要素から計算したダイジェストをカプセル化するオブジェクト。これは静的認証データとして表されます。これは、Android Identity Credential ライブラリに必要な形式です。静的認証データの作成の詳細については、こちらをご覧ください。
| JSON 表現 |
|---|
{ "expirationTimeMillis": string, // Union field |
| フィールド | |
|---|---|
expirationTimeMillis |
モバイル セキュリティ オブジェクトの有効期限を表すタイムスタンプ。このタイムスタンプは、Unix エポックからの経過ミリ秒数として示されます。 |
共用体フィールド presencetype。必須。認証情報がどのように提示されているかを示す oneof。presencetype は次のいずれかになります。 |
|
encryptedData |
暗号化された値と、値を復号するために必要な暗号化メタデータ。 |
unencryptedValue |
base64 でエンコードされた認証情報の値。 |