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 | レスポンスの内容 | |
3 | キーペアを有効にする | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 | |
4 | キーペアを削除 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 |
1. キーペアを生成
認証されたユーザーのクライアント側の暗号化キーのペアリストを生成します。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.GMAIL_SETTINGS_BASIC
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();
CseKeyPair content = new CseKeyPair();
Gmail.Users.Settings.Cse.Keypairs.Create create = keypairs.create("メールアドレス",content);
CseKeyPair res = create.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
POST: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/cse/keypairs
が実行されます。
1.2.2. クエリパラメータ
クエリパラメータはありません。
1.2.3. リクエストボディ
CseKeyPairのsetメソッドにより、リクエストボディを追加できます。
メソッド | 引数 | 説明 |
---|---|---|
setPkcs7 | String | 公開キーとその証明書チェーン |
setPrivateKeyMetadata | List<CsePrivateKeyMetadata> | キーペアの秘密キーのメタデータ |
CsePrivateKeyMetadata(Set)
メソッド | 引数 | 説明 |
---|---|---|
setSetKaclsKeyMetadata | List<KaclsKeyMetadata> | 外部キーアクセス制御リスト setHardwareKeyMetadata()と一方のみ設定可能 |
setHardwareKeyMetadata | List<HardwareKeyMetadata> | ハードウェアキーのメタデータリスト setSetKaclsKeyMetadata()と一方のみ設定可能 |
KaclsKeyMetadata(Set)
メソッド | 引数 | 説明 |
---|---|---|
setKaclsUri | String | 秘密キーを管理するキーURI |
setKaclsData | String | キー アクセス制御リストのデータ 最大:8kb |
HardwareKeyMetadata(Set)
メソッド | 引数 | 説明 |
---|---|---|
setDescription | String | ハードウェアキーについての説明 |
1.3. レスポンスの内容
CseKeyPair
メソッド | 戻り値 | 説明 |
---|---|---|
getNextPageToken | String | 次のページを取得するたのページトークン |
getCseKeyPairs | List<CseKeyPair> | CSEキーペアのリスト |
CseKeyPair
メソッド | 戻り値 | 説明 |
---|---|---|
getKeyPairId | String | キーペアID |
getPem | String | PEM形式の公開キーとその証明書チェーン |
getSubjectEmailAddresses | Lisr<String> | リーフ証明書に指定されているメールアドレスID |
getEnablementState | EnablementState(enum) | キーペアの現在の状態 |
getDisableTime | String | キーペアの状態がDisableに変化した時刻 |
getPrivateKeyMetadata | List<CsePrivateKeyMetadata> | キーペアの秘密キーのメタデータリスト |
CsePrivateKeyMetadata
メソッド | 戻り値 | 説明 |
---|---|---|
getPrivateKeyMetadataId | String | 秘密キーのメタデータID |
getSetKaclsKeyMetadata | List<KaclsKeyMetadata> | 外部キーアクセス制御リスト getHardwareKeyMetadata()と一方のみ設定可能 |
getHardwareKeyMetadata | List<HardwareKeyMetadata> | ハードウェアキーのメタデータリスト getSetKaclsKeyMetadata()と一方のみ設定可能 |
KaclsKeyMetadata
メソッド | 戻り値 | 説明 |
---|---|---|
getKaclsUri | String | アクセス制御リストのサービスURI |
getKaclsData | String | サービスによって生成および使用されるデータ(最大サイズ:8Kbyte) |
HardwareKeyMetadata
メソッド | 戻り値 | 説明 |
---|---|---|
getDescription | String | ハードウェアキーについての説明 |
EnablementState
定義値 | 内容 |
---|---|
stateUnspecified | 未設定 |
enabled | キーペアがオン |
disabled | キーペアがオフ |
2. キーペアを無効にする
既存のクライアント側の暗号化キーのペアを無効にします。
更新したいキーペアのIDを指定します。
1. キーペアリストを生成(CseKeyPair)の
getKeyPairId()で取得した値を設定します。
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.GMAIL_SETTINGS_BASIC
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.Disable disable = keypairs.disable("メールアドレス","キーペアID",null);
CseKeyPair res = disable.execute();
System.out.println(res);
}
2.2.1. HTTPリクエスト
POST: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/cse/keypairs/{キーペアID}:disable
が実行されます。
2.2.2. クエリパラメータ
クエリパラメータはありません。
2.3. レスポンスの内容
CseKeyPair
1.3. レスポンスの内容(CseKeyPair)と同じです。
3. キーペアを有効にする
既存のクライアント側の暗号化キーのペアを有効にします。
更新したいキーペアのIDを指定します。
1. キーペアリストを生成(CseKeyPair)の
getKeyPairId()で取得した値を設定します。
3.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.GMAIL_SETTINGS_SHARING
⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。
3.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.Enable enable = keypairs.enable("メールアドレス","キーペアID",null);
CseKeyPair res = enable.execute();
System.out.println(res);
}
3.2.1. HTTPリクエスト
POST: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/cse/keypairs/{キーペアID}:enable
が実行されます。
3.2.2. クエリパラメータ
クエリパラメータはありません。
3.3. レスポンスの内容
CseKeyPair
1.3. レスポンスの内容(CseKeyPair)と同じです。
4. キーペアを削除
既存のクライアント側の暗号化キーのペアを有効にします。
更新したいキーペアのIDを指定します。
1. キーペアリストを生成(CseKeyPair)の
getKeyPairId()で取得した値を設定します。
4.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.GMAIL_SETTINGS_SHARING
⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。
4.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.Obliterate obliterate = keypairs.obliterate("メールアドレス","キーペアID",null);
obliterate.execute();
}
4.2.1. HTTPリクエスト
POST: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/cse/keypairs/{キーペアID}:obliterate
が実行されます。
2.2.2. クエリパラメータ
クエリパラメータはありません。
4.3. レスポンスの内容
レスポンスはありません。
削除に失敗した場合、例外が発生します。
おしまい。。