Gmail API v1(Java)を使用して、
Gmailクライアントサイド暗号化(CSE)されたキーペアを取得する方法
についてご紹介します。
Gmailクライアントサイド暗号化とは
メールデータをGoogleクラウドベースストレージに転送または保存する前に
ブラウザ内で暗号化を行う仕組みです。
送信先の相手が受信するまで、メールデータは保護されます。
これにより機密データや規制対象データのコンテンツの機密性保持を強化できます。
このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。OAuth 2.0では利用できません。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Gmail API] JavaでGmail APIを使う
を参照ください。
No | 目次 | |
---|---|---|
1 | キーペアリストを取得 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 | |
2 | キーペアを取得 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 |
1. キーペアリストを取得
認証されたユーザーのクライアント側の暗号化キーのペアリストを取得します。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY
GmailScopes.GMAIL_SETTINGS_SHARING
⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。
1.2. 実行
public static void main(String[] args) throws Exception{
Gmail gmail = getGmail();
Gmail.Users users = gmail.users();
Gmail.Users.Settings settings = users.settings();
Gmail.Users.Settings.Cse.Keypairs keypairs = settings.cse().keypairs();
Gmail.Users.Settings.Cse.Keypairs.List list = keypairs.list("メールアドレス");
ListCseKeyPairsResponse res = list.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
GET: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/cse/keypairs
が実行されます。
1.2.2. クエリパラメータ
Gmail.Users.Settings.Cse.Identities.Listのsetメソッドにより、クエリパラメータを追加できます。
メソッド | 引数 | 説明 |
---|---|---|
setPageToken | String | IDのどのページを返すかを示すページネーショントークン |
setPageSize | Integer | 返されるIDの数 |
1.3. レスポンスの内容
ListCseKeyPairsResponse
メソッド | 戻り値 | 説明 |
---|---|---|
getNextPageToken | String | 次のページを取得するたのページトークン |
getCseKeyPairs | List<CseKeyPair> | CSEキーペアのリスト |
CseKeyPair
メソッド | 戻り値 | 説明 |
---|---|---|
getKeyPairId | String | キーペアID |
getPem | String | PEM形式の公開キーとその証明書チェーン |
getSubjectEmailAddresses | List<String> | リーフ証明書に指定されている電子メールアドレス |
getEnablementState | EnablementState(enum) | キーペアの現在の状態 |
getDisableTime | String | キーペアの状態がDISABLED変化した時刻 |
getPrivateKeyMetadata | List<CsePrivateKeyMetadata> | このキーペアの秘密キーのインスタンスのメタデータ |
EnablementState
定義値 | 内容 |
---|---|
stateUnspecified | 未設定 |
enabled | キーペアがオン |
disabled | キーペアがオフ |
CsePrivateKeyMetadata
メソッド | 戻り値 | 説明 |
---|---|---|
getPrivateKeyMetadataId | String | 秘密キーのメタデータ インスタンスID |
getKaclsKeyMetadata | KaclsKeyMetadata | サービスによって管理される秘密キーインスタンスのメタデータ |
getHardwareKeyMetadata | HardwareKeyMetadata | ハードウェアキーのメタデータ |
KaclsKeyMetadata
メソッド | 戻り値 | 説明 |
---|---|---|
getKaclsUri | String | アクセス制御リストのサービスURI |
getKaclsData | String | サービスによって生成および使用されるデータ(最大サイズ:8Kbyte) |
HardwareKeyMetadata
メソッド | 戻り値 | 説明 |
---|---|---|
getDescription | String | ハードウェアキーについての説明 |
2. キーペアを取得
既存のクライアント側の暗号化キーのペアを取得します。
取得したいキーペアのIDを指定します。
1. キーペアリストを取得(CseKeyPair)の
getKeyPairId()で取得した値を設定します。
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY
GmailScopes.GMAIL_SETTINGS_SHARING
⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。
2.2. 実行
public static void main(String[] args) throws Exception{
Gmail gmail = getGmail();
Gmail.Users users = gmail.users();
Gmail.Users.Settings settings = users.settings();
Gmail.Users.Settings.Cse.Keypairs keypairs = settings.cse().keypairs();
Gmail.Users.Settings.Cse.Keypairs.Get get = keypairs.get("メールアドレス","キーペアID");
CseKeyPair res = get.execute();
System.out.println(res);
}
2.2.1. HTTPリクエスト
GET: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/cse/keypairs/{キーペアID}
が実行されます。
2.2.2. クエリパラメータ
クエリパラメータはありません。
2.3. レスポンスの内容
CseKeyPair
1.3. レスポンスの内容(CseKeyPair)と同じです。
おしまい。。