2012年1月4日水曜日

OpenAM 9.5  SAML2.0認証の設定

OpenAM9.5  構築手順」で構築したOpenAMを使用し、SAML2.0認証をしてみる。
システムの構成は以下のとおり。同一のPC上に、SPとIdPを構築する。
(同一のドメイン上での認証なので、SAML仕様を使用するメリットはないが。。。)。

SAML2.0仕様のプロトコルおよびバインディング手法は以下を前提とする。
・SP先行型 Webブラウザ SSOプロファイル
・NameIDFormat::Persistent
・バインディング手法: Artifact
・ユーザ認証方法:ID/パスワード認証

(1)SP/IdPの設定
①SP側のOpenAMの管理コンソールにログインする。
「共通タスク」タブにおいて、「ホストサービスプロバイダの作成」をクリックする。

②「新しいトラストサークル」項目に、任意の値(Ex. samlcot)を入力する。値を入力後、「設定」ボタンを押下する。
以上で、SPが作成される。
「連携」タブにおいて、「エンティティプロバイダ」項目に以下のように表示されていることを確認する。
エンティティープロバイダ (1 項目)
  
すべてを選択 すべてを選択解除
名前現在のソート列: 名前 - 降順ソート (逆アルファベット順、数字の大きい順)
プロトコルプロトコル - 昇順ソート (アルファベット順、数字の小さい順)
タイプタイプ - 昇順ソート (アルファベット順、数字の小さい順)
場所場所 - 昇順ソート (アルファベット順、数字の小さい順)
レルムレルム - 昇順ソート (アルファベット順、数字の小さい順)
http://openam.yasuyasu.com:28080/openamSAMLv2SPホスト/

④IdP側のOpenAMの管理コンソールにログインする。
「共通タスク」タブにおいて、「ホストアイデンティティープロバイダの作成」をクリックする。

⑤「署名鍵」項目において、OpenAMが標準で提供しているtestを選択する。また、「新しいトラストサークル」項目に、任意の値(Ex. samlcot)を入力する。値を入力後、「設定」ボタンを押下する。

以上で、IdPが作成される。

④「連携」タブにおいて、「エンティティプロバイダ」項目に、以下のように表示されていることを確認する。

エンティティープロバイダ (1 項目)
  
すべてを選択 すべてを選択解除
名前現在のソート列: 名前 - 降順ソート (逆アルファベット順、数字の大きい順)
プロトコルプロトコル - 昇順ソート (アルファベット順、数字の小さい順)
タイプタイプ - 昇順ソート (アルファベット順、数字の小さい順)
場所場所 - 昇順ソート (アルファベット順、数字の小さい順)
レルムレルム - 昇順ソート (アルファベット順、数字の小さい順)
http://openam.yasuyasu.com:38080/openamSAMLv2IDPホスト/

(2)SPとIdPのメタデータの交換
①IdP側の管理コンソールにログインし、「共通タスク」タブにおいて、「リモートサービスプロバイダの登録」をクリックする。

②「メタデータが登録されているURL」項目に、以下のように、SPのメタデータが公開されているURLを入力する。入力後、「設定」ボタンを押下する。
http://openam.yasuyasu.com:28080/openam/saml2/jsp/exportmetadata.jsp

「連携」タブにおいて、「エンティティプロバイダ」項目に、以下のように表示されていることを確認する。
エンティティープロバイダ (2 項目)
  
すべてを選択 すべてを選択解除
名前現在のソート列: 名前 - 降順ソート (逆アルファベット順、数字の大きい順)
プロトコルプロトコル - 昇順ソート (アルファベット順、数字の小さい順)
タイプタイプ - 昇順ソート (アルファベット順、数字の小さい順)
場所場所 - 昇順ソート (アルファベット順、数字の小さい順)
レルムレルム - 昇順ソート (アルファベット順、数字の小さい順)
http://openam.yasuyasu.com:28080/openamSAMLv2SPリモート/
http://openam.yasuyasu.com:38080/openamSAMLv2IDPホスト/

④SP側の管理コンソールにログインし、「共通タスク」タブにおいて、「リモートアイデンティティープロバイダの登録」をクリックする。

⑤「メタデータが登録されているURL」項目に、以下のように、IdPのメタデータが公開されているURLを入力する。入力後、「設定」ボタンを押下する。
http://openam.yasuyasu.com:38080/openam/saml2/jsp/exportmetadata.jsp

⑥「連携」タブにおいて、「エンティティプロバイダ」項目に、以下のように表示されていることを確認する。
エンティティープロバイダ (2 項目)
  
すべてを選択 すべてを選択解除
名前現在のソート列: 名前 - 降順ソート (逆アルファベット順、数字の大きい順)
プロトコルプロトコル - 昇順ソート (アルファベット順、数字の小さい順)
タイプタイプ - 昇順ソート (アルファベット順、数字の小さい順)
場所場所 - 昇順ソート (アルファベット順、数字の小さい順)
レルムレルム - 昇順ソート (アルファベット順、数字の小さい順)
http://openam.yasuyasu.com:28080/openamSAMLv2SPホスト/
http://openam.yasuyasu.com:38080/openamSAMLv2IDPリモート/

(3)実機確認
①SPとIdPに、認証で使用するテストユーザを作成する(ID連携の方法がPersistentなので必ずSPにも登録が必要)。
(例)ID/PASS   taro/password

②以下にアクセスし、OpenAMのログイン画面が表示されることを確認する。また、認証後、Glassfishのトップページが表示されることを確認する。
(初回の認証時のみ、SPとIdPでIDを紐づけるために、認証画面が2回表示される)

http://openam.yasuyasu.com:28080/openam/saml2/jsp/spSSOInit.jsp?metaAlias=/sp&idpEntityID= http://openam.yasuyasu.com:38080/openam&RelayState= http://openam.yasuyasu.com:28080&binding=HTTP-Artifact

0 件のコメント: