7.2. サービスプロバイダーキーおよびキー要素
IdP で、クライアントアプリケーション (または SP) がすべての要求に署名するか、IdP がアサーションを暗号化する場合は、これを実行するために使用するキーを定義する必要があります。クライアント署名のドキュメントでは、ドキュメントの署名に使用される秘密鍵、および公開鍵または証明書の両方を定義する必要があります。暗号化の場合は、復号に使用する秘密鍵のみを定義する必要があります。
キーを記述する方法は 2 つあります。キーは Java KeyStore 内に格納することも、PEM 形式の keycloak-saml.xml
にキーを直接コピー/貼り付けることもできます。
<Keys> <Key signing="true" > ... </Key> </Keys>
<Keys>
<Key signing="true" >
...
</Key>
</Keys>
Key
要素には、2 つの任意の属性の signing
および encryption
があります。true に設定すると、これらはアダプターにキーの使用目的を通知します。両方の属性が true に設定されていると、キーはドキュメントの署名と暗号化されたアサーションの復号の両方に使用されます。少なくとも 1 つの属性を true に設定する必要があります。
7.2.1. KeyStore 要素 リンクのコピーリンクがクリップボードにコピーされました!
Key
要素内で、Java Keystore から鍵と証明書を読み込みます。これは KeyStore
要素内で宣言されます。
以下は、KeyStore
要素で定義されている XML 設定属性です。
- file
- キーストアへのファイルパス。このオプションは 任意 です。file または resource 属性を設定する必要があります。
- resource
- KeyStore への WAR リソースパス。これは、ServletContext.getResourceAsStream() へのメソッド呼び出しで使用されるパスです。このオプションは 任意 です。file または resource 属性を設定する必要があります。
- password
- KeyStore のパスワード。このオプションは 必須 です。
SP がドキュメントの署名に使用するキーを定義する場合は、Java KeyStore 内の秘密鍵および証明書への参照も指定する必要があります。上記の例の PrivateKey
および Certificate
要素は、キーストア内のキーまたは証明書を参照する エイリアス
を定義します。キーストアには、秘密鍵にアクセスするために追加のパスワードが必要です。PrivateKey
要素で、password
属性内にこのパスワードを定義する必要があります。
7.2.2. キーの PEMS リンクのコピーリンクがクリップボードにコピーされました!
Key
要素内で、PrivateKeyPem
、PublicKeyPem
および CertificatePem
のサブ要素を使用して、キーと証明書を直接宣言します。これらの要素に含まれる値は PEM キー形式に準拠する必要があります。通常、openssl
または同様のコマンドラインツールを使用してキーを生成する場合は、このオプションを使用します。