SimpleSAMLphp をSP、OpenAMをIdP

以下のような流れ
  • とりあえずOpenAMをhttpsで見られるようにする
  • サーバ証明書をOpenAMにも認識させる
  • OpenAMの管理コンソールでIdPを登録する。証明書は上記で登録されたものを使う
  • OpenAMにSPを登録する
  • SPにOpenAMのメタデータを登録する
  • SPからOpenAMにRequest送ってもらう
前回の流れからなので、OpenAMの設定はデフォルト。データベースはデモ用のやつのまま。前提としてサーバ証明書はあるものとする。Tomcat6を使っている。SimpleSAMLphp側もサーバ証明書は自己振出ではないちゃんとした奴にしてる。


成功するとこういう感じに。多分Attribute周りを全く設定してないのでこうなる。

○ httpsで

証明書、中間証明書、秘密鍵の三種類があるとき、まずそれらを保持するkeystoreを作って、それを/etc/tomcat6/server.xml の 8443ポート周りの設定で使うようにする。keytoolを使う

ここは世の中にたくさん資料があるようなので省略

○ OpenAMのAdminツールインストール

keystore.jksが出来た上でこれをOpenAMにも認識させる際、ampasswordというOpenAM独自のツールを使って、暗号化させた暗号鍵解読のパスワードとkeystoreのストアキーのパスワードを (install-root)/opensso/opensso/ 下の .keystore .storepass に入れておく必要がある。そのためにはまずAdminツールが必要。


今回の場合に限るとssoadmが正しく動く必要はじつはない、というか手元でまともに動いてない。

○ OpenAMのkeystore.jksとパスワードファイル2つを入れ替える


どうでも良いけど一瞬で終わると想像するampasswordはなぜか何十秒という単位で固まる (waitシステムコールで何か待ってた)。理由は謎。あなたの手元では起きないかもしれない。固まるけど、結果として認識したので良いや。VPSのせいかもしれないし。

○ OpenAMにhosted IdPを登録

とりあえずサーブレットリブートしとく

で、後は管理画面からよろしくやると、"test"だった鍵選択の部分で自分の鍵が出てくるに違いない。ちなみにパスワード間違えてたりすると「インストールされてない!」と怒る

○ OpenAMにSPを設定

よろしくやる。

別の件で試した時にはSP側がオレオレ証明書だとメタデータのURL指定で発見してくれないという不思議挙動を見た気がする。気をつけること。


○ SPにIdPを設定

http://(hostname):(port)/opensso/saml2/jsp/exportmetadata.jsp 的な場所からXMLは取れる (参考)

SimpleSAMLphpのsaml20-idp-remote.phpにこんな感じに書く


$metadata['https://openam.example.com:8443/opensso'] = array (
    'name' => 'openam_idp',
    'metadata-set' => 'saml20-idp-remote',
    'entityid' => 'https://openam.example.com:8443/opensso',
    'SingleSignOnService' =>
    array (
        0 =>
        array (
            'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
            'Location' => 'https://openam.example.com:8443/opensso/SSORedirect/metaAlias/idp',
        ),
    ),
    'SingleLogoutService' => 'https://openam.example.com:8443/opensso/IDPSloRedirect/metaAlias/idp',
    'certData' => 'しょうめいしょ',
    'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
);

後はSimpleSAMLphpのよくあるパターンで動く。



このブログの人気の投稿

WiiUのコントローラが通信不良に陥った話

LibreOfficeで表紙、目次、本体でフッターのページ番号のスタイルを変える

技術書典2 あ-03 『もわねっとのPythonの本』