This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.12.2. サービスメッシュおよび OpenShift Serverless での JSON Web トークン認証の使用
Knative サービスの JSON Web Token (JWT) 認証を有効にするには、有効な JWT を使用した要求のみを許可するサーバーレスアプリケーションの namespace にポリシーを作成します。
前提条件
- OpenShift Serverless をインストールします。
- Red Hat OpenShift Service Mesh をインストールします。
- Knative サービスのサイドカーコンテナー挿入を有効化を含め、OpenShift Serverless でサービスメッシュ を設定します。
knative-serving
および knative-serving-ingress
などのシステム namespace の Pod へのサイドカー挿入の追加はサポートされていません。
手順
以下の
Policy
リソースを YAML ファイルにコピーします。重要パスの
/metrics
および/healthz
は、knative-serving
namespace のシステム Pod からアクセスされるため、excludedPaths
に組み込まれる必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Policy
リソースの YAML ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
curl
要求トを使用して Knative サービス URL を取得しようとすると、これは拒否されます。curl http://hello-example-default.apps.mycluster.example.com/
$ curl http://hello-example-default.apps.mycluster.example.com/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Origin authentication failed.
Origin authentication failed.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有効な JWT で要求を確認します。
以下のコマンドを入力して、有効な JWT トークンを取得します。
TOKEN=$(curl https://raw.githubusercontent.com/istio/istio/release-1.6/security/tools/jwt/samples/demo.jwt -s) && echo "$TOKEN" | cut -d '.' -f2 - | base64 --decode -
$ TOKEN=$(curl https://raw.githubusercontent.com/istio/istio/release-1.6/security/tools/jwt/samples/demo.jwt -s) && echo "$TOKEN" | cut -d '.' -f2 - | base64 --decode -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl
要求ヘッダーで有効なトークンを使用してサービスにアクセスします。curl http://hello-example-default.apps.mycluster.example.com/ -H "Authorization: Bearer $TOKEN"
$ curl http://hello-example-default.apps.mycluster.example.com/ -H "Authorization: Bearer $TOKEN"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これで要求が許可されます。
出力例
Hello OpenShift!
Hello OpenShift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.2.1. 追加リソース リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat OpenShift Service Mesh architecture を参照してください。
-
Knative サービスの検証および
curl
要求の使用についての詳細は、サーバーレスアプリケーションのデプロイメントの確認 を参照してください。