5 IDCSを使用したOCI上のシングル・サインオン用のWebLogicクラスタとHelidonアプリケーションの統合
Oracle WebLogic Server (WebLogic Server)とHelidonの統合により、Kubernetes環境でOpenID Connect (OIDC)をOracle Identity Cloud Service (IDCS)とともに使用して、WebLogic ServerおよびHelidonにデプロイされたアプリケーションでシングル・サインオン(SSO)認証メカニズムを使用できます。WebLogic ServerアプリケーションとHelidonマイクロサービスの間でSSOを使用すると、セキュアなサービスを保証しながら認証を共有することで、最新のアプリケーションにおけるセキュリティが簡素化されます。SSOは様々な方法で実装できます。一般的なアプローチは、OAuthやOIDCなどのトークンベースの認証プロトコルを使用することです。
KubernetesクラスタでのWebLogic ServerとHelidonの統合により、SSO認証で次のことが可能になります:
- WebLogicクラスタにデプロイされている、IDCSで構成されたクライアント・アプリケーションにアクセスします。
- IDCSで構成されたHelidon RESTエンドポイントにアクセスします。
- Helidon RESTエンドポイントからWebLogic Serverアプリケーション・エンドポイントにアクセスします。
次の図は、Oracle Cloud Infrastructure (OCI)環境でIDCSを使用したSSO用のWebLogic ServerとHelidonの統合を示しています:
図のステップの説明:
- クライアントは、ブラウザを使用して、Bearerトークンなしで保護されたHelidonリソースをコールし、IDCS SSOログイン・ページにリダイレクトされます。
- クライアントは、ログイン・ページで正常にサインインした後、認可コードを使用してHelidonアプリケーションにリダイレクトされます。
- Helidonが認可コードを受信すると、JWTトークンがIDCSからリクエストされ、返されて、JSESSIONID Cookieとして保存されます。
- 新しい認可コード、クライアントIDおよびクライアント・シークレットでJWTトークンがリクエストされます。
- 最後のリダイレクトが、最初にコールされたリソースであるHelidonに戻ります。今回はJSESSIONID内の有効なBearerトークンが使用されます。
- BearerトークンがWebLogic Serverアプリケーション・リソースのクライアント・コールに伝播されます。
- WebLogic Serverアプリケーション・リソースもOIDCで保護され、トークンをIDCSに対して検証します。
この章の内容は次のとおりです。
- 前提条件
前提条件は、KubernetesクラスタでのWebLogic ServerとHelidonの統合に基づいています。このリストは、サポートされている他のプラットフォームを使用する場合には異なる可能性があります。 - シングル・サインオン用のHelidonとのWebLogicクラスタ統合の設定
WebLogicクラスタとHelidonの統合を容易にするために、WebLogic Serverは、WebLogic Server Kubernetes Operator (Operator)を使用してKubernetesクラスタにデプロイされます。Helidonコンテナも同じKubernetesクラスタ内にデプロイされます。
前提条件
前提条件は、KubernetesクラスタでのWebLogic ServerとHelidonの統合に基づいています。このリストは、サポートされている他のプラットフォームを使用する場合には異なる可能性があります。「WebLogic ServerとHelidonの統合のためのKubernetesクラスタの準備」を参照してください。
次のものが利用可能であることを確認します。
- Kubernetesクラスタにアクセスするための
kubectl
が設定されたローカル・マシン。この設定の詳細は、Oracle Cloud Infrastructure Container Engine for Kubernetesを使用したクラスタの作成チュートリアルのクラスタ用のkubeconfigファイルの設定およびkubectlおよびKubernetes Dashboardによるクラスタへのアクセスの検証に関する項を参照してください。 - WebLogic Kubernetes Operator (Operator)の設定。Operator Quick Startを参照してください。
- パブリックIPを持つOCIロード・バランサと、WebLogic ServerおよびHelidonアプリケーションのURLパターンに従って適用されるロード・バランサ・ルール。次の例は、ルールがどのように適用されるかを示しています:
--- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: cquotes namespace: sample-domain1-ns spec: routes: - kind: Rule match: PathPrefix(`/<WLS application url>) services: - kind: Service name: sample-domain1-cluster-cluster-1 port: 8001 sticky: cookie: httpOnly: true name: cookie secure: false sameSite: none --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: helidon-quickstart-mp namespace: default spec: routes: - kind: Rule match: PathPrefix(`/<helidon rest url>`) services: - kind: Service name: helidon-quickstart-mp port: 8080 --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: helidon-oidc namespace: default spec: routes: - kind: Rule match: PathPrefix(`/oidc`) services: - kind: Service name: helidon-quickstart-mp port: 8080
- アプリケーションを登録する権限があるIDCSへのアクセス。ユーザーを作成する手順は、『Oracle Identity Cloud Serviceの管理』のユーザー・アカウントの作成に関する項を参照してください。
- WebLogicクラスタ・クライアント・アプリケーションをビルドするためのサポートされているJDK (JDK 8以降など)およびMaven (必要な場合)。
- Helidonのデプロイについては、次を参照してください:
- OpenID Connect (OIDC)の基本的な理解。OpenIDを参照してください。
シングル・サインオン用のHelidonとのWebLogicクラスタ統合の設定
WebLogicクラスタとHelidonの統合を容易にするために、WebLogic Serverは、WebLogic Server Kubernetes Operator (Operator)を使用してKubernetesクラスタにデプロイされます。Helidonコンテナも同じKubernetesクラスタ内にデプロイされます。WebLogic Server管理コンソール、クライアント・アプリケーション(WebLogicクラスタにデプロイ)、およびHelidon RESTエンドポイント(Helidonマイクロサービス・アプリケーションによって公開)へのアクセスには、パブリックIPを持つデフォルトのOCIロード・バランサが使用されます。Helidonマイクロサービス・アプリケーションは、SSOを使用した認証および認可のためにOracle Identity Cloud Serviceと統合されたRESTエンドポイントを介して、WebLogicクラスタ・アプリケーションと通信します。
統合を設定するには: