REST API を使用してカスタムエクステンション付き証明書を申請する
Trust Lifecycle Manager REST API を使用してカスタムエクステンション付きプライベート証明書の発行と値の指定が可能です。
前提条件
証明書プロファイルは、
REST API登録方法で設定する必要があります。カスタムエクステンションフィールドは、各フィールドの値のソースとして「
REST request」または「From CSR」を使用するように設定する必要があります。
API 申請の本文
「REST request」から値を取得するカスタムエクステンションフィールドの値を指定するには、次の手順を実行します。
API 申請の本文では、単一の「
attributes.custom_values」JSON オブジェクトを使用して、本文すべての動的なカスタムエクステンションフィールドの値を指定します。証明書プロファイル内のカスタムエクステンションテンプレートで設定されたとおりのプレースホルダー名で各フィールドを対象にします。
「
attributes.custom_values」JSON オブジェクトには、カスタムエクステンションテンプレートの構造に関わらず、フラット構造を使用します。発行された証明書では、カスタムエクステンションの値はテンプレートの構造と同じ構造になります。
「From CSR」の値を取得するカスタムエクステンションフィールドの値を指定するには、次の手順を実行します。
csr申請の本文フィールドにエンコードされた CSR を含めます。CSR には、カスタムエクステンションフィールドの設定に一致する OID 番号のフィールドが含まれていることを確認します。
登録例
登録方法として REST API を使用し、次のカスタムエクステンションテンプレートを含む証明書プロファイルを想定します。
[
{
"oid": "1.2.8.8",
"critical": true,
"template": {
"type": "INTEGER",
"value": "${user_id}"
}
},
{
"oid": "1.2.8.9",
"critical": false,
"template": {
"type": "PrintableString",
"value": "${user_work_location}"
}
}
]以下の点に注意してください。
このテンプレートは 2 つのカスタムエクステンションで構成されています。プレースホルダー名が「
user_id」の「INTEGER」とプレースホルダー名が「user_work_location」の「PrintableString」です。証明書プロファイルでは、これらの動的なエクステンションフィールドの両方が、値のソースとして 「
REST request」を使用するように設定されています。
Trust Lifecycle Manager REST API を使用してこのプロファイルから新しい証明書を申請し、カスタムエクステンションフィールドに値を指定するには、申請の本文は次のようになるはずです。
{
"profile": {
"id": "<profile-id>"
},
"seat": {
"seat_id": "<seat-id>"
},
"csr": "<encoded-csr>"
"attributes": {
"subject": {
"common_name": "<common-name>"
}
"custom_values": {
"user_id": "<integer-value>",
"user_work_location": "<string-value>"
}
}
}