Gmail API v1(Java)を使用して、
Gmailクライアントサイド暗号化(CSE)を作成・更新・削除する方法
についてご紹介します。
Gmailクライアントサイド暗号化とは
メールデータをGoogleクラウドベースストレージ時に転送または保存する前に
ブラウザ内で暗号化を行う仕組みです。
送信先の相手が受信するまで、メールデータは保護されます。
これにより機密データや規制対象データのコンテンツの機密性保持を強化できます。
このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。
OAuth 2.0では利用できません。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Gmail API] JavaでGmail APIを使う
を参照ください。
No | 目次 | |
---|---|---|
1 | CSEを生成 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 | |
2 | CSEを更新 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 | |
3 | CSEを削除 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 |
1. CSEを生成
認証されたユーザーのクライアント側で暗号化されたIDを生成します。
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.Identities identities = settings.cse().identities();
CseIdentity content = new CseIdentity();
Gmail.Users.Settings.Cse.Identities.Create create = identities.create("メールアドレス",content);
CseIdentity res = create.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
POST: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/cse/identities
が実行されます。
1.2.1. クエリパラメータ
クエリパラメータはありません。
1.2.3. リクエストボディ
CseIdentityのsetメソッドにより、リクエストボディを追加できます。
メソッド | 引数 | 説明 |
---|---|---|
setEmailAddress | String | メールアドレス |
setPrimaryKeyPairId | String | キーペアID setSignAndEncryptKeyPairs()とどちらか一方のみ指定可能 |
setSignAndEncryptKeyPairs | SignAndEncryptKeyPairs | 署名と暗号化に異なるキーペアを使用する構成 setPrimaryKeyPairId()とどちらか一方のみ指定可能 |
SignAndEncryptKeyPairs(Set)
メソッド | 引数 | 説明 |
---|---|---|
setSigningKeyPairId | String | 送信メールに署名するID |
setEncryptionKeyPairId | String | 署名付き送信メールを暗号化するID |
1.3. レスポンスの内容
CseIdentity
メソッド | 戻り値 | 説明 |
---|---|---|
getEmailAddress | String | メールアドレス |
getPrimaryKeyPairId | String | キーペアID |
getSignAndEncryptKeyPairs | SignAndEncryptKeyPairs | 署名と暗号化に異なるキーペアを使用する構成 |
SignAndEncryptKeyPairs
メソッド | 戻り値 | 説明 |
---|---|---|
getSigningKeyPairId | String | 送信メールに署名するID |
getEncryptionKeyPairId | String | 署名付き送信メールを暗号化するID |
2. CSEを更新
認証されたユーザーのクライアント側で暗号化されたIDを更新します。
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.GMAIL_SETTINGS_SHARING
⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。
2.2. 実行
更新したい構成のCSEメールアドレスを指定します。
1. CSEを生成(CseIdentity)の
getEmailAddress()で取得した値を設定します。
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.Identities identities = settings.cse().identities();
CseIdentity content = new CseIdentity();
Gmail.Users.Settings.Cse.Identities.Patch patch = identities.patch("メールアドレス","CSEメールアドレス",content);
CseIdentity res = patch.execute();
System.out.println(res);
}
2.2.1. HTTPリクエスト
PATCH: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/cse/identities/{CSEメールアドレス}
が実行されます。
2.2.1. クエリパラメータ
クエリパラメータはありません。
2.2.3. リクエストボディ
CseIdentityのsetメソッドにより、リクエストボディを追加できます。
1.2.3. リクエストボディと同じです。
2.3. レスポンスの内容
CseIdentity
1.3. レスポンスの内容(CseIdentity)と同じです。
3. CSEを削除
認証されたユーザーのクライアント側で暗号化されたIDを削除します。
3.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.GMAIL_SETTINGS_BASIC
GmailScopes.GMAIL_SETTINGS_SHARING
⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。
3.2. 実行
削除したい構成のCSEメールアドレスを指定します。
1. CSEを生成(CseIdentity)の
getEmailAddress()で取得した値を設定します。
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.Identities identities = settings.cse().identities();
Gmail.Users.Settings.Cse.Identities.Delete delete = identities.delete("メールアドレス","CSEメールアドレス");
delete.execute();
}
3.2.1. HTTPリクエスト
DELETE: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/cse/identities/{CSEメールアドレス}
が実行されます。
3.2.1. クエリパラメータ
クエリパラメータはありません。
3.2.2. リクエストボディ
リクエストボディはありません。
3.3. レスポンスの内容
レスポンスはありません。
削除に失敗した場合、例外が発生します。
おしまい。。