LoginSignup
1
1

[Gmail API] JavaでGmailクライアントサイド暗号化(CSE)を作成・更新・削除する

Posted at

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. レスポンスの内容

レスポンスはありません。
削除に失敗した場合、例外が発生します。




おしまい。。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1