2.6. 推奨事項
このセクションでは、Red Hat build of Keycloak を使用してアプリケーションを保護する場合のいくつかの推奨事項を説明します。
2.6.1. アクセストークンの検証 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Keycloak が発行したアクセストークンを手動で検証する必要がある場合は、イントロスペクションエンドポイント を呼び出すことができます。このアプローチの欠点は、Red Hat build of Keycloak サーバーに対してネットワーク呼び出しを行う必要があることです。同時に実行される検証リクエストが多すぎる場合、処理が遅くなり、サーバーに過負荷がかかる可能性があります。Red Hat build of Keycloak が発行したアクセストークンは、JSON Web Signature (JWS) を使用してデジタル署名およびエンコードされた JSON Web Tokens (JWT) です。この方法でエンコードされるため、発行したレルムの公開鍵を使用してアクセストークンをローカルで検証できます。レルムの公開鍵を検証コードでハードコードするか、JWS 内に埋め込まれた Key ID (KID) で 証明書エンドポイント を使用して、公開鍵を検索してキャッシュします。コーディングする言語に応じて、多くのサードパーティーライブラリーが存在し、JWS の検証に使用できます。
2.6.2. リダイレクト URI リンクのコピーリンクがクリップボードにコピーされました!
リダイレクトベースのフローを使用する場合は、必ずクライアントに有効なリダイレクト URI を使用してください。リダイレクト URI は可能な限り具体的にする必要があります。これは特に、クライアント側の (パブリッククライアント) アプリケーションに適用されます。これを行わないと、以下が発生する可能性があります。
- オープンリダイレクト - これにより、攻撃者はドメインから来ているように見えるなりすましリンクを作成できます
- 不正なエントリー - ユーザーが Red Hat build of Keycloak ですでに認証されている場合、攻撃者はリダイレクト URI が正しく設定されていないパブリッククライアントを使用し、ユーザーが知らないうちにユーザーをリダイレクトしてアクセスを取得できる可能性があります。
Web アプリケーションで実稼働環境では常にすべてのリダイレクト URI に https を使用します。http へのリダイレクトを許可しないでください。
いくつかの特別なリダイレクト URI もあります。
http://127.0.0.1-
このリダイレクト URI はネイティブアプリケーションに役立ち、ネイティブアプリケーションは認可コードの取得に使用できるランダムポートで Web サーバーを作成できます。このリダイレクト URI は任意のポートを許可します。OAuth 2.0 for Native Apps にあるとおり、
localhostの使用は 推奨されません。代わりに、IP リテラル127.0.0.1を使用する必要があることに注意してください。
urn:ietf:wg:oauth:2.0:oob-
クライアントで Web サーバーを起動できない場合 (またはブラウザーが使用できない場合)、特別な
urn:ietf:wg:oauth:2.0:oobリダイレクト URI を使用できます。このリダイレクト URI を使用すると、Red Hat build of Keycloak は、タイトルとページ上のボックスにコードを含むページを表示します。アプリケーションは、ブラウザーのタイトルが変更されたことを検出するか、ユーザーがコードを手動でアプリケーションにコピーして貼り付けることができます。このリダイレクト URI を使用すると、ユーザーは別のデバイスを使用してコードを取得し、アプリケーションに貼り付けることができます。