アプリケーションとサービスのセキュリティ保護の計画

アプリケーションのセキュリティ保護に関する概要と基本概念

OAuth2、OpenID Connect、SAML に準拠したサーバーとして、Keycloak は、アプリケーションとサービスが使用しているテクノロジースタックがこれらのプロトコルのいずれかをサポートしている限り、あらゆるアプリケーションとサービスをセキュリティ保護できます。Keycloak でサポートされているセキュリティプロトコルの詳細については、サーバー管理ガイドを参照してください。

これらのプロトコルのサポートのほとんどは、プログラミング言語、フレームワーク、または使用しているリバースプロキシからすでに利用可能です。アプリケーションのエコシステムからすでに利用可能なサポートを活用することは、アプリケーションをセキュリティ標準とベストプラクティスに完全に準拠させ、ベンダーロックインを回避するための重要な側面です。

一部のプログラミング言語では、Keycloak は特定のセキュリティプロトコルのサポートの欠如を埋めたり、サーバーとのより豊富で緊密な統合を提供したりするためのライブラリを提供しています。これらのライブラリはKeycloak クライアントアダプターとして知られており、アプリケーションのエコシステムから利用できるものに頼ることができない場合の最後の手段として使用する必要があります。

アプリケーションとサービスをセキュリティ保護するための基本ステップ

これらは、Keycloak でアプリケーションまたはサービスをセキュリティ保護するための基本的なステップです。

  1. 次のいずれかのオプションを使用して、レルムにクライアントを登録します

    • Keycloak 管理コンソール

    • クライアント登録サービス

    • CLI

  2. 次のいずれかのオプションを使用して、アプリケーションで OpenID Connect または SAML プロトコルを有効にします

    • アプリケーションのエコシステムからの既存の OpenID Connect および SAML サポートの活用

    • Keycloak アダプターの使用

このガイドでは、これらのステップの詳細な手順を説明します。管理コンソールを介して Keycloak にクライアントを登録する方法の詳細については、サーバー管理ガイドを参照してください。

はじめに

Keycloak クイックスタートリポジトリでは、さまざまなプログラミング言語とフレームワークを使用してアプリケーションとサービスをセキュリティ保護する方法の例を提供しています。ドキュメントとコードベースを確認することで、アプリケーションとサービスを Keycloak でセキュリティ保護するために必要な最小限の変更を理解できます。

また、OpenID Connect および SAML プロトコルの両方について、信頼できる有名なクライアント側の実装に関する推奨事項については、以下のセクションを参照してください。

OpenID Connect

JavaScript (クライアント側)

Node.js (サーバー側)

C#

Python

Android

iOS

Apache HTTP Server

用語集

このガイドで使用される用語

  • クライアントは、ユーザーを認証し、トークンを取得するために Keycloak と対話するエンティティです。ほとんどの場合、クライアントは、ユーザーにシングルサインオンエクスペリエンスを提供し、サーバーによって発行されたトークンを使用して他のサービスにアクセスするユーザーに代わって動作するアプリケーションおよびサービスです。クライアントは、トークンを取得し、他のサービスにアクセスするために自身に代わって動作することのみに関心のあるエンティティである場合もあります。

  • アプリケーションには、各プロトコルの特定のプラットフォームで動作する幅広いアプリケーションが含まれます

  • クライアントアダプターは、Keycloak でアプリケーションとサービスを簡単にセキュリティ保護できるようにするライブラリです。これらは、基盤となるプラットフォームおよびフレームワークへの緊密な統合を提供します。

  • クライアントの作成クライアントの登録は同じアクションです。クライアントの作成は、管理コンソールを使用してクライアントを作成するために使用される用語です。クライアントの登録は、Keycloak クライアント登録サービスを使用してクライアントを登録するために使用される用語です。

  • サービスアカウントは、自身に代わってトークンを取得できるクライアントのタイプです。

このページの内容