LoginSignup
0
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 キーペアリストを取得
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)と同じです。



おしまい。。
0
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
0
1