1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LibertyとIBM Verifyで試すSAML認証 【2】動かして体験しよう

Posted at

はじめに

本記事は「LibertyとIBM Verifyで試すSAML認証」シリーズの第2回です。LibertyとIBM Verifyを使用して、SAML認証の動作を実際に体験していきます。
【1】SAML認証とは
【2】動かして体験してみよう(本記事)
【3】仕組みの詳細を理解する

前提条件

本記事の内容を実行するためには、以下の2点が必要です。

  • IBM Verifyの管理者権限
    IBM Verifyは90日間試用可能なSaaS環境が提供されています。必要に応じて、登録をご検討ください。

  • JDKが動作するアプリケーション環境
    JDK 21がインストールされた端末上での動作を想定しています。Open Libertyを使用してアプリケーションを起動しますが、JDKがインストールされていれば、Open Libertyの事前準備は不要です。

本記事のサンプルアプリケーションは、SAML認証の基本的な動作を確認するための最小限の実装です。実運用に際しては、設計上の考慮点が多数存在します。
WebSphere Liberty SAML Web SSO 構成ガイドに詳細が記載されていますので、併せてご確認ください。

アプリケーションを動かす(SAML認証なし)

アプリケーションのダウンロードと実行

GitリポジトリからLiberty用の実行リソースを取得し、以下のコマンドで実行します。

git clone https://github.com/tatsuya-ibm/liberty-saml-verify.git
cd liberty-saml-verify
mvn liberty:run

起動後、ブラウザで https://localhost:9443/hello/hello.jsp にアクセスします。

qiita-square

この画面からボタンを押すことで、「HelloWorld 1」「HelloWorld 2」画面に遷移できます。

SAML認証の設定

ここからは、アプリケーションの設定変更とVerify側の設定を行い、SAML認証が動作するように構成していきます。

Verify:IdPメタデータ取得

Verifyが稼働するURLに次の形式にてブラウザでアクセスすると、IdPのメタデータファイル(federation_metadata.xml)をダウンロードできます。

https://(例: https://example.verify.ibm.com)/v1.0/saml/federations/saml20ip/metadata

Liberty:SAML認証有効化

ダウンロードしたIdPのメタデータファイルを src/main/liberty/config フォルダー(server.xmlがある場所)にコピーします。

server.xmlを開き、「SAMLを有効化する場合、以下のコメントアウトを解除してください」と記載された2か所のコメントを解除して保存します。

src/main/webapp/WEB-INF/web.xml を開き、こちらも「SAMLを有効化する場合、以下のコメントアウトを解除してください」と記載された2か所のコメントを解除して保存します。

Liberty:SPメタデータ取得

アプリを起動した状態で以下のURLにアクセスすると、SPのメタデータファイル(spMetadata.xml)をダウンロードできます。

https://localhost:9443/ibm/saml20/defaultSP/samlmetadata

Verify:ユーザー・グループの作成

Verifyに管理者としてログインし、今回使用するユーザーとグループを作成します。

管理者権限がある場合、右上のユーザーアイコンをクリックすると「adminへの切り替え」というリンクがあります。これをクリックします。
qiita-square

メニューの「ディレクトリー > ユーザー&グループ」から、ユーザー&グループ画面に遷移します。
qiita-square

ユーザーは「ユーザーの追加」ボタンから作成します。一般的な登録画面ですが、アイデンティティー・プロバイダーにIBMidを使用しない場合は「Cloud Directory」を選択します。
qiita-square

グループは、グループタブの「グループの追加」から作成します。今回は「group1」「group2」を作成し、group1に先ほど作成したユーザーを追加します。
qiita-square

Verify:アプリケーションの作成

ここでの「アプリケーション」は、IdPが認証を提供する対象のSP(サービスプロバイダー)を指します。

メニューの「アプリケーション > アプリケーション」から一覧画面に遷移し、「アプリケーションの追加」ボタンをクリックします。
qiita-square

「Custom Application」を選択し、「アプリケーションの追加」ボタンをクリックします。
qiita-square

アプリケーションは以下のように設定します。指定項目以外はデフォルトのままで構いません。

タブ 項目
一般 名前 (任意)
一般 会社名 (任意)
サインオン Use metadata ON
サインオン Metadata file (前の手順で取得したSPメタデータファイルをアップします)
サインオン ターゲットURL https://localhost:9443/hello/hello.jsp
サインオン サービス・プロバイダーの SSO URL https://localhost:9443/ibm/saml20/defaultSP/acs
サインオン 属性マッピング 「すべての既知のユーザー属性をSAMLアサーションで送信」をON

設定後、「保存」ボタンをクリックします。

「資格」タブが表示されるので、「すべてのユーザーおよびグループに対する自動アクセス」を選択し、「保存」ボタンをクリックします。更新確認のダイアログでは「OK」をクリックしてください。

アプリケーションを動かす(SAML認証あり)

SAML認証なしのときと同様に、Libertyのアプリケーションを起動し、ブラウザで https://localhost:9443/hello/hello.jsp にアクセスします。

Verifyの認証画面に遷移します。ログインには、Verify上で作成したユーザーとそのパスワードを使用します。
qiita-square

ログイン後、アプリケーション画面に遷移します。「HelloWorld 1」の画面にも正常に遷移できます。
qiita-square

qiita-square

ログインユーザーは group2 に所属していないため、「HelloWorld 2」へのアクセス権限がなく、権限エラーが表示されます。
qiita-square

ここまでのまとめ

実際に動作を確認することで、SAML認証は手が届く技術だと感じていただけたのではないでしょうか。
次回【3】動きの詳細を理解するでは、今回設定した内容の確認と、SAMLアサーションの挙動について詳しく解説します。

参考

WebSphere Liberty SAML Web SSO 構成ガイド

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?