bin/kc.[sh|bat] start --https-client-auth=<none|request|required>
クライアント証明書を適切に検証し、双方向 TLS や mTLS などの特定の認証方法を有効にするには、サーバーが信頼する必要があるすべての証明書 (および証明書チェーン) を持つトラストストアを設定できます。Mutual TLS や X.509 認証など、証明書を使用してクライアントを適切に認証するために、このトラストストアに依存する機能が多数あります。
mTLS を使用した認証はデフォルトで無効になっています。Keycloak がサーバーであり、Keycloak エンドポイントへのリクエストから証明書を検証する必要がある場合に mTLS 証明書処理を有効にするには、適切な証明書をトラストストアに配置し、次のコマンドを使用して mTLS を有効にします。
bin/kc.[sh|bat] start --https-client-auth=<none|request|required>
値に required
を使用すると、Keycloak は常に証明書を要求するように設定され、リクエストに証明書が提供されない場合は失敗します。値を request
に設定すると、Keycloak は証明書なしのリクエストも受け入れ、証明書が存在する場合にのみ証明書の正確性を検証します。
mTLS の構成とトラストストアはすべてのレルムで共有されます。異なるレルムに対して異なるトラストストアを構成することはできません。 |
管理インターフェースのプロパティは、mTLS 設定を含むメインの HTTP サーバーから継承されます。つまり、mTLS が設定されている場合、管理インターフェースでも有効になります。この動作をオーバーライドするには、https-management-client-auth プロパティを使用します。 |
デフォルトでは、Keycloak はシステムトラストストアを使用して証明書を検証します。詳細については、信頼済み証明書の設定 を参照してください。
mTLS 専用のトラストストアを使用する必要がある場合は、次のコマンドを実行してこのトラストストアの場所を構成できます。
bin/kc.[sh|bat] start --https-trust-store-file=/path/to/file --https-trust-store-password=<value>
トラストストアで認識されるファイル拡張子
pkcs12 ファイルの場合は .p12
、.pkcs12
、および .pfx
jks ファイルの場合は .jks
および .truststore
pem ファイルの場合は .ca
、.crt
、および .pem
トラストストアの拡張子がファイルタイプと一致しない場合は、https-key-store-type
オプションも設定する必要があります。
これは、Keycloak がサーバーとして機能する mTLS ユースケースの基本的な証明書構成であることに注意してください。Keycloak が代わりにクライアントとして機能する場合 (たとえば、Keycloak が mTLS で保護されたブローカー ID プロバイダーのトークンエンドポイントからトークンを取得しようとする場合)、送信リクエストのキーストアで適切な証明書を提供するために HttpClient を設定する必要があります。これらのシナリオで mTLS を構成するには、送信 HTTP リクエストの設定 を参照してください。
X.509 認証の設定方法の詳細については、X.509 クライアント証明書ユーザー認証 セクションを参照してください。