3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WebLogic Serverで稼働するJavaアプリケーションをOracle Identity Cloud Serviceと連携してみた

Last updated at Posted at 2021-09-01
  • IDCSサンプルアプリケーションのデプロイ
  • WebLogicとIDCSのSAML連携

はじめに

Oracle Cloud Infrastructure (OCI) Marketplaceで提供されているWebLogic Serverイメージを利用して、サンプルとして提供されているJavaアプリケーションと認証プラットフォームとして提供されているOracle Identity Cloud Service (IDCS) の連携を試してみました。SAML2.0を使用してOracle Identity CloudServiceをWebLogicServerと統合することで、IDCSに登録されているIDCSユーザーのWebLogic ServerでホストされているアプリケーションへのSSOが可能になります。検証に利用したWebLogicの環境構築は前回の記事をご参照ください。

検証環境

  • WLS 14.1.1.0.210420.01 : OCI Marketplaceで提供されているOracle WebLogic Server Enterprise Edition
  • macOS 10.15.7 Catalina : ビルド用のクライアント環境
  • Apache NetBeans IDE 11.3 : ビルド用IDE
  • JDK 1.8 : ビルド環境
  • Apache Tomcat 10.0.6 : ビルド環境 (servlet-api.jar利用用途)

edashboardアプリケーションのビルドとデプロイ

edashboardアプリケーションのビルド

GutHubのリポジトリよりIDCSのサンプルアプリケーションをダウンロードし、NetBeansよりプロジェクトのインポートを実行します。edashboardプロジェクトのLibrariesにビルド環境のservlet-api.jarを追加し、ビルドを実行します。(筆者のビルド環境ではUserBean.javaのソースファイル中でjavax.servlet.http.HttpServletRequestをjakarta.servlet.http.HttpServletRequestに変更)
~/NetBeansProjects/idm-samples-master/edashboard/dist/edashboard.warのようにWARファイルが生成されるので、生成されたWARファイルをWebLogic稼働環境のoracleユーザーがアクセス可能なディレクトリ(例: /tmp) にscpなどのツールでアップロードしておきます。

WebLogicへのアプリのデプロイ

WebLogic Server管理コンソール左上部のチェンジ・センターよりロックして編集を選択します。
image.png
ドメイン構造メニューのデプロイメントよりデプロイメントのサマリー画面、構成タブに表示されたインストールボタンを選択します。
image.png
事前にアップロードしたedashbord.warのファイルを選択してへ、インストール・タイプの選択はデフォルトのこのデプロイメントをアプリケーションとしてインストールするを選択しへ、edashboardに指定可能なターゲットクラスタのすべてのサーバーを選択しへ、オプション設定はッデフォルトのままへ、追加構成画面ではデフォルトのはい、デプロイメントの構成画面に移動します。のまま終了を選択します。その後、WebLogic Server管理コンソール左上部のチェンジ・センターより変更のアクティブ化を選択します。

image.png
再度、デプロイメントのサマリー画面よりedashboardを選択し、制御タブからedashboardを選択して起動を選択します。デプロイメントの起動の画面ではいを選択し、デプロイメントのサマリー画面でedashboardの状態がアクティブで、ヘルスがOKであることを確認した後、サンプルアプリケーションが稼働するURL、http://ComputeインスタンスのPublicIPアドレス:9073/edashboard/index.jsp# にアクセスすると、認証画面が表示されるのでユーザー名にWebLogicの管理者アカウント名 (例: weblogic)、管理者パスワードでログインして、edashboardの稼働を確認します(この時点では下記のようなAuthorization Errorの画面が表示されれば正常です)。

image.png

WebLogicのSAML有効化

WebLogicのセキュリテイ・レルムの構成

WebLogic Server管理コンソール左上部のチェンジ・センターよりロックして編集を選択します。ドメイン構造メニューのセキュリティ・レルムよりセキュリティ・レルムのサマリー画面よりmyrealmを選択します。myrealmの設定画面のプロバイダ・タブから認証プロバイダの新規ボタンより下記のように認証プロバイダを作成します。

image.png


  • 新しい認証プロバイダの作成
    • 名前 : 任意 SAML2IdentityAsserter
    • タイプ : SAML2IdentityAsserter

再度、認証プロバイダの新規ボタンより下記のように認証プロバイダを追加作成します。


  • 新しい認証プロバイダの作成
    • 名前 : 任意 SAMLAuthenticator
    • タイプ : SAMLAuthenticator

認証プロバイダの並べ替えボタンより下記のような順に認証プロバイダを並べ替えます。


  1. SAMLAuthenticator
  2. SAML2IdentityAsserter
  3. DefaultAuthenticator
  4. DefaultIdentityAsserter

image.png
ここで、SAMLAuthenticatorを選択し、制御フラグをSUFFICIENTに変更して保存を選択します。次に、DefaultAuthenticatorを選択し、制御フラグをOPTIONALに変更して保存を選択します。その後、WebLogic Server管理コンソール左上部のチェンジ・センターより変更のアクティブ化を選択します。その後、WebLogicが稼働する検証環境をOS再起動します。

管理コンソール左上部のチェンジ・センターよりロックして編集を選択します。環境メニューのサーバーよりedashboardアプリケーションがデプロイされた管理対象サーバ(例: WLS_server_1) を選択し、設定画面よりフェデレーション・サービスタブ内のSAML2.0全般を選択します。検証用なので下記のようなダミーの情報を入力し、保存ボタンを選択します。


  • 一般
  • バインド
    • 受信者チェックの有効化 : 無効

フェデレーション・サービスタブ内のSAML 2.0サービス・プロバイダを選択します。有効にチェックし、優先バインドPOSTを選択、デフォルトURLに*https://ComputeインスタンスのPublicIPアドレス:9074/edashboard/index.jsp*を入力し、**保存**ボタンを選択します。そして、管理コンソール左上部の**チェンジ・センター**より**変更のアクティブ化**を選択します。

IDCSへサンプルアプリケーションの登録

IDCSの管理画面へのナビゲート

OCIダッシュボードにログインし、OCIダッシュボードメニューから、アイデンティティとセキュリティ>フェデレーションにアクセスし、OracleIdentityCloudServiceを選択し、アイデンティティ・プロバイダの詳細画面を表示します。Oracle Identity Cloud Service Consoleに表示されたURLより、IDCSのサービス・コンソールにアクセスできます。

image.png
image.png

IDCSグループの作成とユーザーの登録

下記のようにIDCSグループを作成し、ユーザーを割り当てていきます。


IDCSグループ edashboardアプリのJAZNロール 認可ページ
Employee appemployee Index, My Profile, and Employee Perks
Manager appmanager Index, My Profile, Employee Perks, and Management Watch
Security appsecurity Index, My Profile, Employee Perks, and Security Report

IDCS管理コンソールのナビゲーション・メニューよりGroupsを選択し、Addボタンより前述のグループを作成します。

image.png
image.png
image.png
次にIDCSグループにユーザーを割り当てていきます。本記事では、自分のIDCSアカウントをManagerグループにアサインします。IDCSグループの一覧からManagerグループの詳細画面のUsersタブのAssignボタンより自分のユーザーを追加します。
image.png

IDCSへedashboardアプリの登録

IDCS管理コンソールのナビゲーション・メニューよりApplicationsを選択し、AddボタンよりSAML Applicationを登録します。入力項目は下記を参考ください。



image.png
image.png

FinishボタンよりApplicationを作成し、Employee Dashboardを選択後、Activateを行ってください。
その後、Employee Dashboardの詳細画面、SSO ConfigurationタブのDownload Identity Provider MetadataボタンよりIDCSMetadata.xmlをダウンロードします。さらに、UsersタブよりEmployee Dashboardにアクセス可能なIDCSユーザーを追加します。
image.png

WebLogicのIDPとしてIDCSを登録

先ほどダウンロードしたIDCSMetadata.xmlをWebLogic稼働環境のoracleユーザーがアクセス可能なディレクトリ(例: /tmp) にscpなどのツールでアップロードしておきます。そして、WebLogic Server管理コンソール左上部のチェンジ・センターよりロックして編集を選択します。ドメイン構造メニューのセキュリティ・レルムよりセキュリティ・レルムのサマリー画面よりmyrealmを選択します。myrealmの設定画面のプロバイダ・タブに表示される認証プロバイダの一覧からSAML2IdentityAsserterを選択します。さらに、管理タブより、アイデンティティ・プロバイダ・パートナ新規ボタンを選択し、新しいシングル・サインオンのアイデンティティ・プロバイダ・パートナを選択します。ここで名前IDCS_IDPと入力し、先ほどアップロードしておいたIDCSMetadata.xmlのパス (例: /tmp/IDCSMetadata.xml) を指定します。

image.png

作成されたIDCS_IDPを選択して、有効にチェック、リダイレクトURLに/edashboard/*と入力して、上部の 保存 を選択して変更を更新します。

image.png

IDCSとの連携のテスト

http://ComputeインスタンスのPublicIPアドレス:9073/edashboard/index.jsp# にアクセスすると、IDCSの認証画面にリダイレクトされ、ユーザー名とパスワードを入力し認証します。

image.png

認証に成功すると下記のような認証済のedashboardの画面が表示されます。

image.png

ログインしたユーザーがIDCSのグループSecurityに属している場合は全てのページを閲覧することができますが、Managerのグループに属しているユーザーの場合はSecurity ReportページにアクセスするとAuthorization Errorが表示されアクセスできないことを確認できます。一方で、Employeeのグループに属しているユーザーでアクセスした場合は、Security Reportページに加えてManagement watchページにもアクセスできないことが確認できます。

まとめ

WebLogic Server上で稼働するJavaアプリケーションとOracle Identity Cloud Service (IDCS) の連携を確認することができました。今回の検証は無償利用可能なOracle Identity CloudServiceの基本機能の範囲で実現しています。

関連情報

公式ドキュメント Oracle Identity Cloud Service
Oracle Identity Cloud Service: Integrating with Weblogic Server
Identity Cloud Services and Weblogic Federation with Virtual Users and Groups
GitHub: Employee Dashboard

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?