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-servingnamespace のシステム 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要求の使用についての詳細は、サーバーレスアプリケーションのデプロイメントの確認 を参照してください。