OpenAMをDockerで立ち上げる(俺俺認証編)

SSOSAMLといった、主に大、中企業向けのID連携の話になります。

今回はそんななかオープンに実装できそうなSAML認証を実装すべく
まずはIDプロバイダーとなるOpenAMという物をDockerで立ち上げてみたいと思います。

準備する物

  • docker
  • docker-compose
  • OpenAMを稼働させるためのドメイン名
    ※ローカルでやる場合は、hostsに設定
    ※サーバ証明書作成の時にもこのドメイン名を使う

OpenAMのDockerイメージですが、今回は

https://hub.docker.com/r/vault/openam

こちらのイメージを使ってみます。

基本的には、overviewに書かれているとおりやれば起動する。。。。。。。
と思うのですが、このvault/openamのoverviewはちょっと端折りすぎているので手順を順を追って試してみようと思います。

OpenAM 13 with TLS Support

と書いてあるとおり、証明書の準備が必要になります。また、OpenAMはlocalhostIPでの起動が出来ない仕様になっています。

localhostやIPでは起動が出来ないとは言っても
ローカルで試す環境になりますので、今回は俺俺証明書で対応したいと思います。

証明書の準備自体は

ここにある手順で作成が可能です。
※ドメイン名はあらかじめ「準備する物」で考えておいたドメイン名を使用します。
一通り手順を実行すると、ca~~~というファイルとserver.~~~というファイルが作成されます。

作成されているのが確認できたら
次はOpenAMで使用するPKCS #12ファイルを作成します。

パスワードを設定するプロンプトが出るので、今回はsecretと入れます。
※各自パスワード設定してください。

keytoolコマンドでkyestoreファイルを作成します。
うまく実行出来た結果はこんな感じになります。

続いて
Dockerで起動する準備をします。

Dockerコマンドをoverviewの通りに叩いても良いのですが、面倒なのでdocker-compose.ymlファイルを作成してしまいます。

# docker-compose.yml

あとは

を実行すればOpenAMが起動します。

https://[ドメイン名]:8443/openam

でアクセス出来ることを確認できると思います。

トラブルシューティング

extra_hostsでドメイン名を指定しているのは
OpenAMの初回起動時に自信に対してアクセスして初期設定をするために設定してます。

次回予定

OpenAMを使用して実際に認証してサービスにログインできる状態まで設定していく所

アンケート