証明書と JWT (JSON Web Token)
OAuth 2.0 のそれぞれのパーティが公開/秘密鍵ペアを持っている必要があります。リリース 2016.2 では証明書 (およびその秘密鍵) を使用する必要がありました。互換性の理由から、このリリースには証明書に関連するオプションも依然として提供されています。この付録では、次の各シナリオの詳細について説明します。
いずれの場合でも、秘密鍵と対応する証明書の生成では、"Caché セキュリティ管理ガイド" に説明があるインターシステムズ公開鍵インフラストラクチャを使用できます。
リリース 2017.1 時点では、Caché は JWKS (JSON Web Key Set) のペアを生成できます。一方の JWKS は秘密鍵で、(アルゴリズムあたり) 必要なすべての秘密鍵だけでなく、対称鍵として使用するクライアント秘密鍵も含んでいます。この JWKS は共有されません。他方の JWKS には、対応する公開鍵が含まれていて、公開されて利用できます。JWKS を生成するオプションを使用する場合は、この付録は無視してください。
OAuth 2.0 クライアントの証明書の使用
OAuth 2.0 クライアントは承認サーバから (暗号化や署名を施した) JWT を受信することができます。同様に、このクライアントは承認サーバへ (暗号化や署名を施した) JWT を送信することができます。これらの目的で証明書/秘密鍵のペアを使用する場合、以下の表を参考にして必要になる証明書を特定してください。
シナリオ | クライアント構成の要件 |
---|---|
クライアントは、承認サーバが送信した JWT のシグニチャを検証する必要がある | 承認サーバが所有する証明書と、サーバ証明書に署名する CA (認証機関) 証明書を取得します。この証明書の公開鍵は、シグニチャ検証と暗号化で使用されます。 |
クライアントは、承認サーバへ送信する JWT を暗号化する必要がある | |
クライアントは、JWT に署名してから承認サーバへ送信する必要がある | クライアント用の秘密鍵を取得し、対応する証明書とその証明書に署名する CA 証明書を取得します。秘密鍵を署名と復号化に使用します。 |
クライアントは、承認サーバが送信した JWT を復号化する必要がある |
いずれの場合も、そのクライアント Web アプリケーションを含む同じインスタンスで次の手順も実行する必要があります。
-
Caché が使用するための信頼された証明書を用意します。"Caché Web サービスの保護" の “設定およびその他の一般的なアクティビティ” の章にある “Caché が使用するための信頼された証明書の用意” を参照してください。信頼された証明書には、クライアントの証明書に署名する証明書と承認サーバの証明書を組み込む必要があります (必要とする証明書に応じていずれかまたは両方)。
-
Caché で証明書を使用可能にする、Caché 資格情報セットを作成します。"Caché Web サービスの保護" の “設定およびその他の一般的なアクティビティ” の章にある “Caché 資格情報セットの作成と編集” を参照してください。
クライアント証明書の場合は、資格情報セットを作成するときに秘密鍵を読み込み、秘密鍵のパスワードを入力します。
-
クライアントを構成する場合は、[X509 資格情報から JWT 設定を作成] オプションを選択します。また、以下の指定を行います。
-
[X.509 証明書] — クライアントの証明書を使用し対応秘密鍵 (ClientConfig など) を含む資格情報セットを選択します。
-
[秘密鍵パスワード] — この証明書の秘密鍵のパスワードを入力します。
-
OAuth 2.0 リソース・サーバの証明書の使用
OAuth 2.0 リソース・サーバは、承認サーバから (暗号化や署名を施した) JWT を受信することができます。同様に、リソース・サーバは承認サーバへ (暗号化や署名を施した) JWT を送信することができます。 これらの目的で証明書/秘密鍵のペアを使用する場合、以下の表を参考にして必要になる証明書を特定してください。
シナリオ | リソース・サーバ構成の要件 |
---|---|
リソース・サーバは、承認サーバが送信した JWT のシグニチャを検証する必要がある | 承認サーバが所有する証明書と、サーバ証明書に署名する CA 証明書を取得します。この証明書の公開鍵は、シグニチャ検証と暗号化で使用されます。 |
リソース・サーバは、承認サーバへ送信する JWT を暗号化する必要がある | |
リソース・サーバは、JWT に署名してから承認サーバへ送信する必要がある | リソース・サーバ用の秘密鍵を取得し、対応する証明書とその証明書に署名する CA 証明書を取得します。秘密鍵は署名と復号化に使用します。 |
リソース・サーバは、承認サーバが送信した JWT を復号化する必要がある |
いずれの場合も、そのリソース・サーバ Web アプリケーションを含む同じインスタンスで次の手順も実行する必要があります。
-
Caché が使用する信頼された証明書を用意します。"Caché Web サービスの保護" の “設定およびその他の一般的なアクティビティ” の章にある “Caché が使用するための信頼された証明書の用意” を参照してください。信頼された証明書には、リソース・サーバの証明書に署名する証明書と承認サーバの証明書を組み込む必要があります (必要とする証明書に応じていずれかまたは両方)。
-
Caché で証明書を使用可能にする、Caché 資格情報セットを作成します。"Caché Web サービスの保護" の “設定およびその他の一般的なアクティビティ” の章にある “Caché 資格情報セットの作成と編集” を参照してください。
リソース・サーバの証明書では、資格情報セットを作成するときに秘密鍵を読み込み、秘密鍵のパスワードを入力します。
-
リソース・サーバを構成する場合は、[X509 資格情報から JWT 設定を作成] オプションを選択します。また、以下の指定を行います。
-
[X.509 証明書] — リソース・サーバの証明書を使用し対応秘密鍵 (ResourceConfig など) を含む資格情報セットを選択します。
-
[秘密鍵パスワード] — この証明書の秘密鍵のパスワードを入力します。
-
OAuth 2.0 承認サーバの証明書の使用
OAuth 2.0 承認サーバは、そのクライアントから (暗号化や署名を施した) JWT を受信することができます。同様に、承認サーバはそのクライアントへ (暗号化や署名を施した) JWT を送信することができます。これらの目的で証明書/秘密鍵のペアを使用する場合、以下の表を参考にして必要になる証明書を特定してください。
シナリオ | 承認サーバ構成の要件 |
---|---|
承認サーバは、クライアントが送信した JWT のシグニチャを検証する必要がある | そのクライアントが所有する証明書と、証明書に署名する CA 証明書を取得します。この証明書の公開鍵は、シグニチャ検証と暗号化で使用されます。 |
承認サーバは、クライアントへ送信する JWT を暗号化する必要がある | |
承認サーバは、JWT に署名してからクライアントへ送信する必要がある | 承認サーバ用の秘密鍵を取得し、対応する証明書とその証明書に署名する CA 証明書を取得します。秘密鍵は署名と復号化に使用します。 |
承認サーバは、クライアントが送信した JWT を復号化する必要がある |
いずれの場合も、その承認サーバを含む同じインスタンスで次の手順も実行する必要があります。
-
Caché が使用する信頼できる証明書を用意します。"Caché Web サービスの保護" の “設定およびその他の一般的なアクティビティ” の章にある “Caché が使用するための信頼された証明書の用意” を参照してください。信頼された証明書には、クライアントの証明書に署名する証明書と承認サーバの証明書を組み込む必要があります (必要とする証明書に応じていずれかまたは両方)。
-
Caché で証明書を使用可能にする、Caché 資格情報セットを作成します。"Caché Web サービスの保護" の “設定およびその他の一般的なアクティビティ” の章にある “Caché 資格情報セットの作成と編集” を参照してください。
承認サーバの証明書では、資格情報セットを作成するときに秘密鍵を読み込み、秘密鍵のパスワードを入力します。
-
サーバを構成する場合、[JWT 設定] タブを選択します。このタブで、[X509 資格情報から JWT 設定を作成] オプションを選択します。また、以下の指定を行います。
-
[X509 証明書] — 承認サーバの証明書を使用し対応秘密鍵 (AuthConfig など) を含む資格情報セットを選択します。
-
[秘密鍵パスワード] — この証明書の秘密鍵のパスワードを入力します。
-
-
サーバ上でクライアント定義を作成する場合、[JWT 設定] タブを選択します。このタブで、[ダイナミック登録以外のソース] では、[X509 証明書] を選択します。また、[クライアント資格情報] では、クライアント証明書を使用する認証情報セット (ClientConfig など)を選択します。