2014年12月25日木曜日

OpenAMのレシピを手動作成

GitにOpenAMのレシピがなく、自分でレシピを作成する。

# knife cookbook create -o /root/cookbooks myopenam
** Creating cookbook myopenam in /root/cookbooks
** Creating README for cookbook: myopenam
** Creating CHANGELOG for cookbook: myopenam
** Creating metadata for cookbook: myopenam

# knife cookbook upload -o . myopenam
Uploading myopenam       [0.1.0]
Uploaded 1 cookbook.

OpenAMサーバパッケージを導入する。
# cd /root
# chef-client -o myopenam::server
[2014-12-24T06:38:03-08:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 12.0.3
[2014-12-24T06:38:03-08:00] INFO: *** Chef 12.0.3 ***
[2014-12-24T06:38:03-08:00] INFO: Chef-client pid: 30200
[2014-12-24T06:38:05-08:00] WARN: Run List override has been provided.
[2014-12-24T06:38:05-08:00] WARN: Original Run List: []
[2014-12-24T06:38:05-08:00] WARN: Overridden Run List: [recipe[myopenam::server]]
[2014-12-24T06:38:05-08:00] INFO: Run List is [recipe[myopenam::server]]
[2014-12-24T06:38:05-08:00] INFO: Run List expands to [myopenam::server]
[2014-12-24T06:38:05-08:00] INFO: Starting Chef Run for goodjob
[2014-12-24T06:38:05-08:00] INFO: Running start handlers
[2014-12-24T06:38:05-08:00] INFO: Start handlers complete.
resolving cookbooks for run list: ["myopenam::server"]
[2014-12-24T06:38:05-08:00] INFO: Loading cookbooks [myopenam@0.1.0]
[2014-12-24T06:38:05-08:00] INFO: Skipping removal of obsoleted cookbooks from the cache
Synchronizing Cookbooks:
[2014-12-24T06:38:05-08:00] INFO: Storing updated cookbooks/myopenam/recipes/server.rb in the cache.
  - myopenam
Compiling Cookbooks...
Converging 10 resources
Recipe: myopenam::server
  * yum_package[yum-priorities] action install[2014-12-24T06:38:05-08:00] INFO: Processing yum_package[yum-priorities] action install (myopenam::server line 1)
[2014-12-24T06:38:12-08:00] INFO: yum_package[yum-priorities] installing yum-plugin-priorities-1.1.30-30.el6 from base repository
    - install version 1.1.30-30.el6 of package yum-plugin-priorities
  * yum_package[expect] action install[2014-12-24T06:38:13-08:00] INFO: Processing yum_package[expect] action install (myopenam::server line 5)
 (up to date)
  * yum_package[jpackage] action install[2014-12-24T06:38:13-08:00] INFO: Processing yum_package[jpackage] action install (myopenam::server line 10)
    - install version 6-3.jpp6 of package jpackage
  * yum_package[tomcat7] action install[2014-12-24T06:38:19-08:00] INFO: Processing yum_package[tomcat7] action install (myopenam::server line 15)
[2014-12-24T06:38:28-08:00] INFO: yum_package[tomcat7] installing tomcat7-7.0.54-2.jpp6 from jpackage repository
    - install version 7.0.54-2.jpp6 of package tomcat7
  * yum_package[tomcat7-webapps] action install[2014-12-24T06:38:45-08:00] INFO: Processing yum_package[tomcat7-webapps] action install (myopenam::server line 21)
[2014-12-24T06:38:46-08:00] INFO: yum_package[tomcat7-webapps] installing tomcat7-webapps-7.0.54-2.jpp6 from jpackage repository
    - install version 7.0.54-2.jpp6 of package tomcat7-webapps
  * script[chkconfig_tomcat] action run[2014-12-24T06:38:59-08:00] INFO: Processing script[chkconfig_tomcat] action run (myopenam::server line 27)
tomcat7         0:off 1:off 2:on 3:on 4:on 5:on 6:off
[2014-12-24T06:38:59-08:00] INFO: script[chkconfig_tomcat] ran successfully
    - execute "bash"  "/tmp/chef-script20141224-30200-pmgsye"
  * yum_package[jdk7] action install[2014-12-24T06:38:59-08:00] INFO: Processing yum_package[jdk7] action install (myopenam::server line 36)
    - install version 1.7.0_71-fcs of package jdk7
  * script[alternatives_java] action run[2014-12-24T06:39:25-08:00] INFO: Processing script[alternatives_java] action run (myopenam::server line 41)
/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java has not been configured as an alternative for java
[2014-12-24T06:39:25-08:00] INFO: script[alternatives_java] ran successfully
    - execute "bash"  "/tmp/chef-script20141224-30200-1n7nyn1"
  * script[cp_openam] action run[2014-12-24T06:39:25-08:00] INFO: Processing script[cp_openam] action run (myopenam::server line 50)
[2014-12-24T06:39:28-08:00] INFO: script[cp_openam] ran successfully
    - execute "bash"  "/tmp/chef-script20141224-30200-rycz4i"
  * service[tomcat7] action enable[2014-12-24T06:39:29-08:00] INFO: Processing service[tomcat7] action enable (myopenam::server line 69)
 (up to date)
  * service[tomcat7] action start[2014-12-24T06:39:29-08:00] INFO: Processing service[tomcat7] action start (myopenam::server line 69)
[2014-12-24T06:39:29-08:00] INFO: service[tomcat7] started
    - start service service[tomcat7]
[2014-12-24T06:39:29-08:00] WARN: Skipping final node save because override_runlist was given
[2014-12-24T06:39:29-08:00] INFO: Chef Run complete in 84.109134665 seconds
[2014-12-24T06:39:29-08:00] INFO: Skipping removal of unused files from the cache
Running handlers:
[2014-12-24T06:39:29-08:00] INFO: Running report handlers
Running handlers complete
[2014-12-24T06:39:29-08:00] INFO: Report handlers complete
Chef Client finished, 9/11 resources updated in 86.142188717 seconds
[2014-12-24T06:39:29-08:00] INFO: Sending resource update report (run-id: 91c82b5e-7182-47d1-983f-e6a8b3fa7a9b)

OpenAM初期設定のためのssoConfiguratorを導入する。
# chef-client -o myopenam::prepair
[2014-12-24T06:40:28-08:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 12.0.3
[2014-12-24T06:40:28-08:00] INFO: *** Chef 12.0.3 ***
[2014-12-24T06:40:28-08:00] INFO: Chef-client pid: 30891
[2014-12-24T06:40:30-08:00] WARN: Run List override has been provided.
[2014-12-24T06:40:30-08:00] WARN: Original Run List: []
[2014-12-24T06:40:30-08:00] WARN: Overridden Run List: [recipe[myopenam::prepair]]
[2014-12-24T06:40:30-08:00] INFO: Run List is [recipe[myopenam::prepair]]
[2014-12-24T06:40:30-08:00] INFO: Run List expands to [myopenam::prepair]
[2014-12-24T06:40:30-08:00] INFO: Starting Chef Run for goodjob
[2014-12-24T06:40:30-08:00] INFO: Running start handlers
[2014-12-24T06:40:30-08:00] INFO: Start handlers complete.
resolving cookbooks for run list: ["myopenam::prepair"]
[2014-12-24T06:40:30-08:00] INFO: Loading cookbooks [myopenam@0.1.0]
[2014-12-24T06:40:30-08:00] INFO: Skipping removal of obsoleted cookbooks from the cache
Synchronizing Cookbooks:
  - myopenam
Compiling Cookbooks...
Converging 1 resources
Recipe: myopenam::prepair
  * script[install_ssoconfig] action run[2014-12-24T06:40:30-08:00] INFO: Processing script[install_ssoconfig] action run (myopenam::prepair line 1)
Archive:  SSOConfiguratorTools-12.0.0-SNAPSHOT.zip
 extracting: openam-configurator-tool-12.0.0-SNAPSHOT.jar 
 extracting: openam-upgrade-tool-12.0.0-SNAPSHOT.jar 
  inflating: README                 
  inflating: sampleupgrade          
  inflating: sampleconfiguration    
  inflating: license.txt            
[2014-12-24T06:40:30-08:00] INFO: script[install_ssoconfig] ran successfully
    - execute "bash"  "/tmp/chef-script20141224-30891-1modcym"
[2014-12-24T06:40:30-08:00] WARN: Skipping final node save because override_runlist was given
[2014-12-24T06:40:30-08:00] INFO: Chef Run complete in 0.20823958 seconds
[2014-12-24T06:40:30-08:00] INFO: Skipping removal of unused files from the cache
Running handlers:
[2014-12-24T06:40:30-08:00] INFO: Running report handlers
Running handlers complete
[2014-12-24T06:40:30-08:00] INFO: Report handlers complete
Chef Client finished, 1/1 resources updated in 1.767032909 seconds
[2014-12-24T06:40:30-08:00] INFO: Sending resource update report (run-id: 1b0000c7-99be-406e-8050-982879776184)

OpenAM初期設定を行う。
# chef-client -o myopenam::init
[2014-12-24T08:06:15-08:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 12.0.3
[2014-12-24T08:06:15-08:00] INFO: *** Chef 12.0.3 ***
[2014-12-24T08:06:15-08:00] INFO: Chef-client pid: 36032
[2014-12-24T08:06:17-08:00] WARN: Run List override has been provided.
[2014-12-24T08:06:17-08:00] WARN: Original Run List: []
[2014-12-24T08:06:17-08:00] WARN: Overridden Run List: [recipe[myopenam::init]]
[2014-12-24T08:06:17-08:00] INFO: Run List is [recipe[myopenam::init]]
[2014-12-24T08:06:17-08:00] INFO: Run List expands to [myopenam::init]
[2014-12-24T08:06:17-08:00] INFO: Starting Chef Run for goodjob
[2014-12-24T08:06:17-08:00] INFO: Running start handlers
[2014-12-24T08:06:17-08:00] INFO: Start handlers complete.
resolving cookbooks for run list: ["myopenam::init"]
[2014-12-24T08:06:17-08:00] INFO: Loading cookbooks [myopenam@0.1.0]
[2014-12-24T08:06:17-08:00] INFO: Skipping removal of obsoleted cookbooks from the cache
Synchronizing Cookbooks:
  - myopenam
Compiling Cookbooks...
Converging 2 resources
Recipe: myopenam::init
  * template[/usr/share/tomcat7/work/ssoConfiguratorTools/sampleconfiguration] action create[2014-12-24T08:06:17-08:00] INFO: Processing template[/usr/share/tomcat7/work/ssoConfiguratorTools/sampleconfiguration] action create (myopenam::init line 1)
 (up to date)
  * script[initialize_openam] action run[2014-12-24T08:06:17-08:00] INFO: Processing script[initialize_openam] action run (myopenam::init line 9)
設定ディレクトリ /usr/share/tomcat7/openam をチェックしています。...成功しました。
OpenAM 設定ストアのインストール...成功しました RSA/ECB/OAEPWithSHA1AndMGF1Padding。
OpenDJ から情報を収集しています、しばらくお待ちください...完了
OpenDJ セットアップ実行中セットアップコマンド: --cli --adminConnectorPort 4444 --baseDN dc=openam,dc=net --rootUserDN cn=Directory Manager --ldapPort 50389 --skipPortCheck --rootUserPassword xxxxxxx --jmxPort 1689 --no-prompt --doNotStart --hostname chef-client.openam.net %0ASee+%2Fvar%2Fcache%2Ftomcat7%2Ftemp%2Fopendj-setup-7510440650733165332.log+for+a+detailed+log+of+this+operation.%0A%0AConfiguring+Directory+Server+.....+Done.%0A%0ATo+see+basic+server+configuration+status+and+configuration+you+can+launch+%2Fusr%2Fshare%2Ftomcat7%2Fopenam%2Fopends%2Fbin%2Fstatus%0A...成功しました。
...成功
/usr/share/tomcat7/openam/opends での OpenAM 設定ストアのインストール...成功しました。
OpenAM サフィックスを作成中Import+task+20141224080643791+scheduled+to+start+immediately%0A%5B24%2F12%2F2014%3A08%3A06%3A43+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D0+msgID%3D9896349+message%3D%22Import+task+20141224080643791+started+execution%22%0A%5B24%2F12%2F2014%3A08%3A06%3A43+-0800%5D+severity%3D%22INFORMATION%22+msgCount%3D1+msgID%3D9437595+message%3D%22Local+DB+backend+userRoot+does+not+specify+the+number+of+lock+tables%3A+defaulting+to+97%22%0A%5B24%2F12%2F2014%3A08%3A06%3A43+-0800%5D+severity%3D%22INFORMATION%22+msgCount%3D2+msgID%3D9437594+message%3D%22Local+DB+backend+userRoot+does+not+specify+the+number+of+cleaner+threads%3A+defaulting+to+24+threads%22%0A%5B24%2F12%2F2014%3A08%3A06%3A43+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D3+msgID%3D9896306+message%3D%22The+backend+userRoot+is+now+taken+offline%22%0A%5B24%2F12%2F2014%3A08%3A06%3A43+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D4+msgID%3D20381717+message%3D%22Installation+Directory%3A++%2Fusr%2Fshare%2Ftomcat7%2Fopenam%2Fopends%22%0A%5B24%2F12%2F2014%3A08%3A06%3A43+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D5+msgID%3D20381719+message%3D%22Instance+Directory%3A++++++%2Fusr%2Fshare%2Ftomcat7%2Fopenam%2Fopends%22%0A%5B24%2F12%2F2014%3A08%3A06%3A43+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D6+msgID%3D20381713+message%3D%22JVM+Information%3A+1.7.0_71-b14+by+Oracle+Corporation%2C+64-bit+architecture%2C+474415104+bytes+heap+size%22%0A%5B24%2F12%2F2014%3A08%3A06%3A43+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D7+msgID%3D20381714+message%3D%22JVM+Host%3A+chef-client.openam.net%2C+running+Linux+2.6.32-431.el6.x86_64+amd64%2C+1960439808+bytes+physical+memory+size%2C+number+of+processors+available+1%22%0A%5B24%2F12%2F2014%3A08%3A06%3A44+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D8+msgID%3D20381715+message%3D%22JVM+Arguments%3A+%22-Dcatalina.base%3D%2Fusr%2Fshare%2Ftomcat7%22%2C+%22-Dcatalina.home%3D%2Fusr%2Fshare%2Ftomcat7%22%2C+%22-Djava.endorsed.dirs%3D%22%2C+%22-Djava.io.tmpdir%3D%2Fvar%2Fcache%2Ftomcat7%2Ftemp%22%2C+%22-Djava.util.logging.config.file%3D%2Fusr%2Fshare%2Ftomcat7%2Fconf%2Flogging.properties%22%2C+%22-Djava.util.logging.manager%3Dorg.apache.juli.ClassLoaderLogManager%22%22%0A%5B24%2F12%2F2014%3A08%3A06%3A44+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D9+msgID%3D8847546+message%3D%22The+amount+of+free+memory+available+to+the+import+task+is+73222981+bytes.+The+number+of+phase+one+buffers+required+is+80+buffers%22%0A%5B24%2F12%2F2014%3A08%3A06%3A44+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D10+msgID%3D8847568+message%3D%22The+amount+memory+available+to+the+temporary+DN+cache+environment+is+48219033+bytes%22%0A%5B24%2F12%2F2014%3A08%3A06%3A44+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D11+msgID%3D8847545+message%3D%22Setting+DB+cache+size+to+8388608+bytes+and+phase+one+buffer+size+to+to+102821+bytes%22%0A%5B24%2F12%2F2014%3A08%3A06%3A44+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D12+msgID%3D8847533+message%3D%22OpenDJ+2.6.0+starting+import+%28build+20130626200626Z%2C+R9086%29%22%0A%5B24%2F12%2F2014%3A08%3A06%3A44+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D13+msgID%3D8847449+message%3D%22Import+Thread+Count%3A+2+threads%22%0A%5B24%2F12%2F2014%3A08%3A06%3A45+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D14+msgID%3D8847556+message%3D%22The+available+memory+for+phase+two+processing+is+73222981+bytes.+The+read+ahead+cache+size+is+102821+bytes+calculated+using+5+buffers%22%0A%5B24%2F12%2F2014%3A08%3A06%3A45+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D15+msgID%3D8847569+message%3D%22Total+import+time+was+0+seconds.+Phase+one+processing+completed+in+0+seconds%2C+phase+two+processing+completed+in+0+seconds%22%0A%5B24%2F12%2F2014%3A08%3A06%3A45+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D16+msgID%3D8847454+message%3D%22Processed+3+entries%2C+imported+3%2C+skipped+0%2C+rejected+0+and+migrated+0+in+0+seconds+%28average+rate+46.2%2Fsec%29%22%0A%5B24%2F12%2F2014%3A08%3A06%3A45+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D17+msgID%3D8847536+message%3D%22Import+LDIF+environment+close+took+0+seconds%22%0A%5B24%2F12%2F2014%3A08%3A06%3A45+-0800%5D+severity%3D%22INFORMATION%22+msgCount%3D18+msgID%3D9437595+message%3D%22Local+DB+backend+userRoot+does+not+specify+the+number+of+lock+tables%3A+defaulting+to+97%22%0A%5B24%2F12%2F2014%3A08%3A06%3A45+-0800%5D+severity%3D%22INFORMATION%22+msgCount%3D19+msgID%3D9437594+message%3D%22Local+DB+backend+userRoot+does+not+specify+the+number+of+cleaner+threads%3A+defaulting+to+24+threads%22%0A%5B24%2F12%2F2014%3A08%3A06%3A45+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D20+msgID%3D8847402+message%3D%22The+database+backend+userRoot+containing+3+entries+has+started%22%0A%5B24%2F12%2F2014%3A08%3A06%3A45+-0800%5D+severity%3D%22INFORMATION%22+msgCount%3D21+msgID%3D12582962+message%3D%22Added+1+Access+Control+Instruction+%28ACI%29+attribute+types+found+in+context+%22dc%3Dopenam%2Cdc%3Dnet%22+to+the+access+control+evaluation+engine%22%0A%5B24%2F12%2F2014%3A08%3A06%3A45+-0800%5D+severity%3D%22NOTICE%22+msgCount%3D22+msgID%3D9896350+message%3D%22Import+task+20141224080643791+finished+execution%22%0AImport+task+20141224080643791+has+been+successfully+completed%0A...成功
スキーマファイルのタグをスワップしています。...成功しました。
スキーマ opendj_config_schema.ldif をロードしています...成功しました。
スキーマ opendj_user_schema.ldif をロードしています...成功しました。
スキーマ opendj_embinit.ldif をロードしています...成功しました。
スキーマ opendj_user_index.ldif をロードしています...成功しました。
スキーマ opendj_plugin.ldif をロードしています...成功しました。
スキーマ cts-container.ldif をロードしています...成功しました。
スキーマ cts-add-schema.ldif をロードしています...成功しました。
スキーマ cts-indices.ldif をロードしています...成功しました。
スキーマ opendj_dashboard.ldif をロードしています...成功しました。
スキーマ opendj_deviceprint.ldif をロードしています...成功しました。
...成功しました。
システムのプロパティーを再初期化しています。...完了
サービス dashboardService.xml を登録しています...成功しました。
サービス amEntrySpecific.xml を登録しています...成功しました。
サービス amAuthConfig.xml を登録しています...成功しました。
サービス amAuthHTTPBasic.xml を登録しています...成功しました。
サービス amAdminConsole.xml を登録しています...成功しました。
サービス idRepoService.xml を登録しています...成功しました。
サービス amAuth.xml を登録しています...成功しました。
サービス amAuthAD.xml を登録しています...成功しました。
サービス amAuthAdaptive.xml を登録しています...成功しました。
サービス amAuthAnonymous.xml を登録しています...成功しました。
サービス amAuthCert.xml を登録しています...成功しました。
サービス amAuthDataStore.xml を登録しています...成功しました。
サービス amAuthPersistentCookie.xml を登録しています...成功しました。
サービス amAuthDevicePrintModule.xml を登録しています...成功しました。
サービス amAuthJDBC.xml を登録しています...成功しました。
サービス amAuthLDAP.xml を登録しています...成功しました。
サービス amAuthMSISDN.xml を登録しています...成功しました。
サービス amAuthMembership.xml を登録しています...成功しました。
サービス amAuthNT.xml を登録しています...成功しました。
サービス amAuthOAuth.xml を登録しています...成功しました。
サービス amAuthWindowsDesktopSSO.xml を登録しています...成功しました。
サービス amClientData.xml を登録しています...成功しました。
サービス amClientDetection.xml を登録しています...成功しました。
サービス amDelegation.xml を登録しています...成功しました。
サービス amFilteredRole.xml を登録しています...成功しました。
サービス amG11NSettings.xml を登録しています...成功しました。
サービス amLogging.xml を登録しています...成功しました。
サービス amNaming.xml を登録しています...成功しました。
サービス amPlatform.xml を登録しています...成功しました。
サービス amPolicy.xml を登録しています...成功しました。
サービス amPolicyConfig.xml を登録しています...成功しました。
サービス amRealmService.xml を登録しています...成功しました。
サービス amSession.xml を登録しています...成功しました。
サービス amWebAgent.xml を登録しています...成功しました。
サービス amUser.xml を登録しています...成功しました。
サービス identityLocaleService.xml を登録しています...成功しました。
サービス amAgent70.xml を登録しています...成功しました。
サービス amPasswordReset.xml を登録しています...成功しました。
サービス amAuthRadius.xml を登録しています...成功しました。
サービス amAuthHOTP.xml を登録しています...成功しました。
サービス amAuthSecurID.xml を登録しています...成功しました。
サービス amMonitoring.xml を登録しています...成功しました。
サービス AgentService.xml を登録しています...成功しました。
サービス policyIndex.xml を登録しています...成功しました。
サービス entitlement.xml を登録しています...成功しました。
サービス openProvisioning.xml を登録しています...成功しました。
サービス banking.xml を登録しています...成功しました。
サービス CoreTokenConfig.xml を登録しています...成功しました。
サービス CoreTokenStore.xml を登録しています...成功しました。
サービス amAuthOATH.xml を登録しています...成功しました。
サービス fmAuthFederation.xml を登録しています...成功しました。
サービス fmAuthSAE.xml を登録しています...成功しました。
サービス fmAuthnSvc.xml を登録しています...成功しました。
サービス fmDisco.xml を登録しています...成功しました。
サービス fmIDFF.xml を登録しています...成功しました。
サービス fmLibertyPersonalProfile.xml を登録しています...成功しました。
サービス fmCOTConfig.xml を登録しています...成功しました。
サービス fmSAML2.xml を登録しています...成功しました。
サービス fmSAML.xml を登録しています...成功しました。
サービス fmSOAPBinding.xml を登録しています...成功しました。
サービス fmSAML2SOAPBinding.xml を登録しています...成功しました。
サービス fmWSFederation.xml を登録しています...成功しました。
サービス fmMultiProtocol.xml を登録しています...成功しました。
サービス famSTS.xml を登録しています...成功しました。
サービス famFederationCommon.xml を登録しています...成功しました。
サービス famIDFFConfig.xml を登録しています...成功しました。
サービス famSAML2Config.xml を登録しています...成功しました。
サービス famWSSAuthService.xml を登録しています...成功しました。
サービス OAuth2Provider.xml を登録しています...成功しました。
サービス MailServer.xml を登録しています...成功しました。
サービス RestSecurity.xml を登録しています...成功しました。
システムを設定しています。...完了
サーバーインスタンスを設定しています。...完了
スキーマ /usr/share/tomcat7/openam/opendj_user_schema.ldif をロードしています...成功しました。
スキーマ /usr/share/tomcat7/openam/opendj_userinit.ldif をロードしています...成功しました。
スキーマ /usr/share/tomcat7/openam/opendj_user_index.ldif をロードしています...成功しました。
スキーマ /usr/share/tomcat7/openam/opendj_plugin.ldif をロードしています...成功しました。
スキーマ /usr/share/tomcat7/openam/opendj_dashboard.ldif をロードしています...成功しました。
スキーマ /usr/share/tomcat7/openam/opendj_deviceprint.ldif をロードしています...成功しました。
Web サービスセキュリティーエージェントを作成しています。...完了
認証ファイルの監視を設定します。
Configuration complete!
[2014-12-24T08:07:16-08:00] INFO: script[initialize_openam] ran successfully
    - execute "bash"  "/tmp/chef-script20141224-36032-cc3qrm"
[2014-12-24T08:07:16-08:00] WARN: Skipping final node save because override_runlist was given
[2014-12-24T08:07:16-08:00] INFO: Chef Run complete in 59.22848883 seconds
[2014-12-24T08:07:16-08:00] INFO: Skipping removal of unused files from the cache
Running handlers:
[2014-12-24T08:07:16-08:00] INFO: Running report handlers
Running handlers complete
[2014-12-24T08:07:16-08:00] INFO: Report handlers complete
Chef Client finished, 1/2 resources updated in 60.720933619 seconds
[2014-12-24T08:07:16-08:00] INFO: Sending resource update report (run-id: 329c7e87-8244-47e2-9ba2-704126a8bf23)

http://chef-client.openam.net:8080/openam/UI/Login にアクセスする。


amadmin/ampasswordで認証できることを確認する。



ssoAdminToolsをインストールする。
# chef-client -o myopenam::client
[2014-12-26T23:06:09-08:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 12.0.3
[2014-12-26T23:06:09-08:00] INFO: *** Chef 12.0.3 ***
[2014-12-26T23:06:09-08:00] INFO: Chef-client pid: 11200
[2014-12-26T23:06:11-08:00] WARN: Run List override has been provided.
[2014-12-26T23:06:11-08:00] WARN: Original Run List: []
[2014-12-26T23:06:11-08:00] WARN: Overridden Run List: [recipe[myopenam::client]]
[2014-12-26T23:06:11-08:00] INFO: Run List is [recipe[myopenam::client]]
[2014-12-26T23:06:11-08:00] INFO: Run List expands to [myopenam::client]
[2014-12-26T23:06:11-08:00] INFO: Starting Chef Run for goodjob
[2014-12-26T23:06:11-08:00] INFO: Running start handlers
[2014-12-26T23:06:11-08:00] INFO: Start handlers complete.
resolving cookbooks for run list: ["myopenam::client"]
[2014-12-26T23:06:11-08:00] INFO: Loading cookbooks [myopenam@0.1.0]
[2014-12-26T23:06:11-08:00] INFO: Skipping removal of obsoleted cookbooks from the cache
Synchronizing Cookbooks:
[2014-12-26T23:06:11-08:00] INFO: Storing updated cookbooks/myopenam/recipes/client.rb in the cache.
  - myopenam
Compiling Cookbooks...
Converging 1 resources
Recipe: myopenam::client
  * script[install_ssoadmin] action run[2014-12-26T23:06:11-08:00] INFO: Processing script[install_ssoadmin] action run (myopenam::client line 1)
Archive:  SSOAdminTools-12.0.0-SNAPSHOT.zip
   creating: lib/
 extracting: lib/openam-entitlements-12.0.0-SNAPSHOT.jar 
 extracting: lib/openam-shared-12.0.0-SNAPSHOT.jar 
 extracting: lib/json-20090211.jar  
 extracting: lib/forgerock-util-1.1.0.jar 
 extracting: lib/openam-core-12.0.0-SNAPSHOT.jar 
 extracting: lib/openam-idsvcs-schema-12.0.0-SNAPSHOT.jar 
 extracting: lib/xsdlib-20060615.jar 
 extracting: lib/relaxngDatatype-20020414.jar 
 extracting: lib/jaxrpc-api-1.1.jar 
 extracting: lib/jaxrpc-spi-1.1.3_01.jar 
 extracting: lib/jaxrpc-impl-1.1.3_01-041406.jar 
 extracting: lib/webservices-api-2009-14-01.jar 
 extracting: lib/mail-1.4.5.jar     
 extracting: lib/openam-xacml3-schema-12.0.0-SNAPSHOT.jar 
 extracting: lib/opendj-server-2.6.0.jar 
 extracting: lib/xalan-2.7.1.jar    
 extracting: lib/xercesImpl-2.11.0.jar 
 extracting: lib/xml-serializer-2.11.0.jar 
 extracting: lib/webservices-rt-2009-29-07.jar 
 extracting: lib/openam-cli-definitions-12.0.0-SNAPSHOT.jar 
 extracting: lib/openam-cli-impl-12.0.0-SNAPSHOT.jar 
 extracting: lib/OpenFM-12.0.0-SNAPSHOT.jar 
 extracting: lib/openam-federation-library-12.0.0-SNAPSHOT.jar 
 extracting: lib/openam-saml2-schema-12.0.0-SNAPSHOT.jar 
 extracting: lib/openam-wsfederation-schema-12.0.0-SNAPSHOT.jar 
 extracting: lib/openam-liberty-schema-12.0.0-SNAPSHOT.jar 
 extracting: lib/openam-dtd-schema-12.0.0-SNAPSHOT.jar 
 extracting: lib/openam-jaxrpc-schema-12.0.0-SNAPSHOT.jar 
 extracting: lib/servlet-api-2.5.jar 
  inflating: LICENSE.DOM-software.html 
  inflating: NOTICE.resolver.txt    
  inflating: LICENSE.DOM-documentation.html 
  inflating: commons-collections-license.txt 
  inflating: license.txt            
  inflating: LICENSE.serializer.txt 
  inflating: commons-beanutils-license.txt 
  inflating: NOTICE.serializer.txt  
  inflating: icefaces-license.txt   
  inflating: commons-logging-license.txt 
  inflating: jdom-license.txt       
  inflating: jtsl-license.txt       
  inflating: commons-fileupload-license.txt 
  inflating: jsf-license.txt        
  inflating: asm-core-license.txt   
  inflating: LICENSE.resolver.txt   
  inflating: LICENSE-SAX.html       
  inflating: json-license.txt       
  inflating: commons-digester-license.txt 
  inflating: rome-license.txt       
  inflating: setup.bat              
  inflating: setup                  
  inflating: README.setup           
   creating: resources/
  inflating: resources/serviceDefaultValues.properties 
  inflating: resources/fmServiceNames.properties 
  inflating: resources/webServiceProviderUI.properties 
  inflating: resources/fmServiceDefaultValues.properties 
  inflating: resources/webServiceUI.properties 
  inflating: resources/click-page.properties 
  inflating: resources/webServiceSTSUI.properties 
  inflating: resources/fedletBits.properties 
  inflating: resources/fmConfiguratorTagSwap.properties 
  inflating: resources/webServiceClientUI.properties 
  inflating: resources/fedletJarExtract.properties 
  inflating: resources/AGBits.properties 
  inflating: resources/fmConfiguratorPlugins.properties 
  inflating: resources/bootstrapConfig.properties 
  inflating: resources/famServiceNames.properties 
  inflating: resources/hiddenserverconfig.properties 
  inflating: resources/validserverconfig.properties 
  inflating: resources/rsa_api.properties 
  inflating: resources/ssoUpgrade.properties 
  inflating: resources/configuratorPlugins.properties 
  inflating: resources/schemaNames.properties 
  inflating: resources/bootstrap.properties 
  inflating: resources/log4j.properties 
  inflating: resources/debugconfig.properties 
  inflating: resources/serviceNames.properties 
  inflating: resources/configuratorTagSwap.properties 
  inflating: resources/amadm.properties 
  inflating: resources/agentlocaleprop.properties 
   creating: template/
   creating: template/unix/
   creating: template/unix/bin/
   creating: template/windows/
   creating: template/windows/bin/
  inflating: template/unix/bin/ssoadm.template 
  inflating: template/windows/bin/ssoadm.bat.template 
  inflating: template/unix/bin/ampassword.template 
  inflating: template/windows/bin/ampassword.bat.template 
  inflating: template/unix/bin/amverifyarchive.template 
  inflating: template/windows/bin/amverifyarchive.bat.template 
spawn ./setup
Path to config files of OpenAM server [/root/openam]:/usr/share/tomcat7/openam
Debug Directory [/usr/share/tomcat7/openam/ssoAdminTools/debug]:
Log Directory [/usr/share/tomcat7/openam/ssoAdminTools/log]:
The scripts are properly setup under directory: /usr/share/tomcat7/openam/ssoAdminTools/openam
Debug directory is /usr/share/tomcat7/openam/ssoAdminTools/debug.
Log directory is /usr/share/tomcat7/openam/ssoAdminTools/log.
The version of this tools.zip is: OpenAM 12.0.0-SNAPSHOT
The version of your server instance is: OpenAM 12.0.0-SNAPSHOT (2013-October-31 00:28)
[2014-12-26T23:06:29-08:00] INFO: script[install_ssoadmin] ran successfully
    - execute "bash"  "/tmp/chef-script20141226-11200-8pj21n"
[2014-12-26T23:06:29-08:00] WARN: Skipping final node save because override_runlist was given
[2014-12-26T23:06:29-08:00] INFO: Chef Run complete in 17.993319668 seconds
[2014-12-26T23:06:29-08:00] INFO: Skipping removal of unused files from the cache
Running handlers:
[2014-12-26T23:06:29-08:00] INFO: Running report handlers
Running handlers complete
[2014-12-26T23:06:29-08:00] INFO: Report handlers complete
Chef Client finished, 1/1 resources updated in 19.780438763 seconds
[2014-12-26T23:06:29-08:00] INFO: Sending resource update report (run-id: ad55bb75-a47b-448a-81bb-3d071dbc6928)


2014年12月21日日曜日

OpenLDAPのレシピを手動作成

GitにあるOpenLDAPのレシピはCentOSで未サポートのパッケージ(ldap-utils)を前提にしていたため、自分でレシピを作成する。

# knife cookbook create -o /root/cookbooks myopenldap
** Creating cookbook myopenldap in /root/cookbooks
** Creating README for cookbook: myopenldap
** Creating CHANGELOG for cookbook: myopenldap
** Creating metadata for cookbook: myopenldap

# cd myopenldap
# cat << EOF >> metadata.rb
>
> recipe "myopenldap::client", "installs and configures openldap-clients"
> recipe "myopenldap::server", "installs and configures openldap-servers"
> EOF

# cat << EOF >> recipes/client.rb
>
> package "openldap-clients" do
>   action :install
> end
> EOF

# cat << EOF >> recipes/server.rb
>
> package "openldap-servers" do
>   action :install
> end
>
> template "/etc/openldap/slapd.conf" do
>   source "slapd.conf.erb"
>   action :create
> end
>
> service "slapd" do
>   service_name "ldap"
>   action [:enable, :start]
> end
> EOF

# cp /etc/openldap/slapd.conf templates/default/slapd.conf.erb
# cd /root/cookbooks
# knife cookbook upload -o . myopenldap
Uploading myopenldap   [0.1.0]
Uploaded 1 cookbook.

# cd /root
# chef-client -o myopenldap::client,myopenldap::server
[2014-12-24T08:04:05-08:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 12.0.3
[2014-12-24T08:04:05-08:00] INFO: *** Chef 12.0.3 ***
[2014-12-24T08:04:05-08:00] INFO: Chef-client pid: 35530
[2014-12-24T08:04:07-08:00] WARN: Run List override has been provided.
[2014-12-24T08:04:07-08:00] WARN: Original Run List: []
[2014-12-24T08:04:07-08:00] WARN: Overridden Run List: [recipe[myopenldap::server]]
[2014-12-24T08:04:07-08:00] INFO: Run List is [recipe[myopenldap::server]]
[2014-12-24T08:04:07-08:00] INFO: Run List expands to [myopenldap::server]
[2014-12-24T08:04:07-08:00] INFO: Starting Chef Run for goodjob
[2014-12-24T08:04:07-08:00] INFO: Running start handlers
[2014-12-24T08:04:07-08:00] INFO: Start handlers complete.
resolving cookbooks for run list: ["myopenldap::server"]
[2014-12-24T08:04:07-08:00] INFO: Loading cookbooks [myopenldap@0.1.0]
[2014-12-24T08:04:07-08:00] INFO: Skipping removal of obsoleted cookbooks from the cache
Synchronizing Cookbooks:
[2014-12-24T08:04:07-08:00] INFO: Storing updated cookbooks/myopenldap/recipes/server.rb in the cache.
  - myopenldap
Compiling Cookbooks...
Converging 5 resources
Recipe: myopenldap::server
  * yum_package[openldap-servers] action install[2014-12-24T08:04:07-08:00] INFO: Processing yum_package[openldap-servers] action install (myopenldap::server line 1)
 (up to date)
  * script[clear_bdb] action run[2014-12-24T08:04:12-08:00] INFO: Processing script[clear_bdb] action run (myopenldap::server line 5)
[2014-12-24T08:04:12-08:00] INFO: script[clear_bdb] ran successfully
    - execute "bash"  "/tmp/chef-script20141224-35530-1439doi"
  * execute[slapd-config-convert] action nothing[2014-12-24T08:04:12-08:00] INFO: Processing execute[slapd-config-convert] action nothing (myopenldap::server line 15)
 (skipped due to action :nothing)
  * template[/etc/openldap/slapd.conf] action create[2014-12-24T08:04:12-08:00] INFO: Processing template[/etc/openldap/slapd.conf] action create (myopenldap::server line 22)
 (up to date)
  * service[slapd] action enable[2014-12-24T08:04:12-08:00] INFO: Processing service[slapd] action enable (myopenldap::server line 32)
 (up to date)
  * service[slapd] action start[2014-12-24T08:04:12-08:00] INFO: Processing service[slapd] action start (myopenldap::server line 32)
[2014-12-24T08:04:12-08:00] INFO: service[slapd] started
    - start service service[slapd]
[2014-12-24T08:04:12-08:00] WARN: Skipping final node save because override_runlist was given
[2014-12-24T08:04:12-08:00] INFO: Chef Run complete in 5.431650406 seconds
[2014-12-24T08:04:12-08:00] INFO: Skipping removal of unused files from the cache
Running handlers:
[2014-12-24T08:04:12-08:00] INFO: Running report handlers
Running handlers complete
[2014-12-24T08:04:12-08:00] INFO: Report handlers complete
Chef Client finished, 2/5 resources updated in 6.938933079 seconds
[2014-12-24T08:04:12-08:00] INFO: Sending resource update report (run-id: dfde635e-7a7d-46dc-890c-c48462250c61)

# service slapd status
slapd (pid  9406) を実行中...

<補足>
# chef-client -o myopenldap::client,myopenldap::server

・myopenldap/recipes配下のclient.rb、server.rbを実行する。
・client.rbでは以下だけなので、yum install -y openldap-clientsと同義。
 package "openldap-clients" do
   action :install
 end
・server.rbでは以下を実行。
①yum install -y openldap-serversと同義。
package "openldap-servers" do
  action :install
end

②slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/を行い、service slapd startを実行。
execute "slapd-config-convert" do
  command "slaptest -f #{node['openldap']['dir']}/slapd.conf -F #{node['openldap']['dir']}/slapd.d/"
  user "ldap"
  action :nothing
  notifies :start, "service[slapd]", :immediately
end

③/etc/openldap/slapd.confについて、template/default/slapd.conf.erbを元に作成。オーナはldap;ldap、0640の権限で、service slapd stopしてslapd-config-convertを実行。
template "#{node['openldap']['dir']}/slapd.conf" do
  source "slapd.conf.erb"
  action :create
  mode 00640
  owner "ldap"
  group "ldap"
  notifies :stop, "service[slapd]", :immediately
  notifies :run, "execute[slapd-config-convert]"
end

④service slapdではenable、startを定義。
service "slapd" do
  action [:enable, :start]
end

 
 

2014年12月20日土曜日

GitにあるOpenLDAPレシピ活用

Chef-Serverの/etc/chef-server配下のgoodjob.pem  kk-openam-validator.pemをChef-Clientの/root/.chef配下に置いておく。
また、Chef Manage(Webブラウザ)で取り出したknife.rbを/root/.chef配下に置いておく。

●Chef Client
クライアントのリストを確認する。
# knife client list
kk-openam-validator

クライアントを作成する。
# export EDITOR=vi
# knife client create test-user1
{
  "name": "test-user1",
  "public_key": null,
  "validator": false,
  "admin": false,
  "json_class": "Chef::ApiClient",
  "chef_type": "client"
}
 ※:wq で保存。

Created client[test-user1]
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA0U6qfY1zTy0qpnKBKtOaq0UYzrMzLa2azZ8VcUBq6sqGyRUK
...
gCx4hsZ83I4hbzEdyYiokla2ug/jG2T8o3I8qanNQiYXshB7snKD
-----END RSA PRIVATE KEY-----

# vi testuser1.pem
 ※上記を保存

# yum -y install git

# knife configure client -s https://chef-server.openam.net /etc/chef
Creating client configuration
Writing client.rb
Writing validation.pem
# cp /root/.chef/knife.rb /etc/chef/client.rb
# cp /root/.chef/kk-openam-validator.pem /etc/chef
# cp /root/.chef/goodjob.pem /etc/chef
# knife ssl fetch -c /etc/chef/client.rb
WARNING: Certificates from chef-server.openam.net will be fetched and placed in your trusted_cert
directory (/etc/chef/trusted_certs).
Knife has no means to verify these are the correct certificates. You should
verify the authenticity of these certificates after downloading.
Adding certificate for chef-server.openam.net in /etc/chef/trusted_certs/chef-server_openam_net.crt

 ●準備
# mkdir -p /root/cookbooks
# cd /root/cookbooks

・openldap
# knife cookbook site download openldap
Downloading openldap from the cookbooks site at version 1.12.10 to /root/cookbooks/openldap-1.12.10.tar.gz
Cookbook saved: /root/cookbooks/openldap-1.12.10.tar.gz
# tar zxf openldap-1.12.10.tar.gz
# rm -f openldap-1.12.10.tar.gz

・openssh
# knife cookbook site download openssh
Downloading openssh from the cookbooks site at version 1.3.4 to /root/cookbooks/openssh-1.3.4.tar.gz
Cookbook saved: /root/cookbooks/openssh-1.3.4.tar.gz
# tar zxf openssh-1.3.4.tar.gz
# rm -f openssh-1.3.4.tar.gz

・nscd
# knife cookbook site download nscd
Downloading nscd from the cookbooks site at version 0.12.0 to /root/cookbooks/nscd-0.12.0.tar.gz
Cookbook saved: /root/cookbooks/nscd-0.12.0.tar.gz
# tar zxf nscd-0.12.0.tar.gz
# rm -f nscd-0.12.0.tar.gz

・openssl
# knife cookbook site download openssl
Downloading openssl from the cookbooks site at version 2.0.0 to /root/cookbooks/openssl-2.0.0.tar.gz
Cookbook saved: /root/cookbooks/openssl-2.0.0.tar.gz
# tar zxf openssl-2.0.0.tar.gz
# rm -f openssl-2.0.0.tar.gz

・iptables
# knife cookbook site download iptables
Downloading iptables from the cookbooks site at version 0.14.0 to /root/cookbooks/iptables-0.14.0.tar.gz
Cookbook saved: /root/cookbooks/iptables-0.14.0.tar.gz
# tar zxf iptables-0.14.0.tar.gz
# rm -f iptables-0.14.0.tar.gz

・chef-sugar
# knife cookbook site download chef-sugar
Downloading chef-sugar from the cookbooks site at version 2.4.1 to /root/cookbooks/chef-sugar-2.4.1.tar.gz
Cookbook saved: /root/cookbooks/chef-sugar-2.4.1.tar.gz
# tar zxf chef-sugar-2.4.1.tar.gz
# rm -f chef-sugar-2.4.1.tar.gz

以下のとおり、cookbookを登録する。
# knife cookbook upload -o . iptables
Uploading iptables       [0.14.0]
Uploaded 1 cookbook.

# knife cookbook upload -o . openssh
Uploading openssh        [1.3.4]
Uploaded 1 cookbook.

# knife cookbook upload -o . chef-sugar
Uploading chef-sugar     [2.4.1]
Uploaded 1 cookbook.

# knife cookbook upload -o . openssl
Uploading openssl        [2.0.0]
Uploaded 1 cookbook.

# knife cookbook upload -o . nscd
Uploading nscd           [0.12.0]
Uploaded 1 cookbook.

# knife cookbook upload -o . openldap
Uploading openldap       [1.12.10]
Uploaded 1 cookbook.

# cd /root
# chef-client -o iptables,openssh,chef-sugar,openssl,nscd,openldap::client

https://tickets.opscode.com/browse/COOK-4085?page=com.googlecode.jira-suite-utilities:transitions-summary-tabpanel
 
 
  ※OpenLDAPはインストール不可(GitにあるOpenLDAPのcookbookは、2014/12時点でCentOSは未サポート)

Chefのインストール

Chef(http://www.getchef.com/)はApache Licenseのインフラストラクチャ構成自動化OSSである。
2013/2にVersion 11、2014/9にVersion 12がリリースされた。

<Version 12のポイント>
・従来のWeb-UIは廃止になり、アドオンパッケージのインストールになる。
・高可用性についてDRBD⇒物理、仮想、クラウドベースのブロックデバイスをサポート。
・複数リージョンにまたがったChefサーバーの単一ビューを得られ、データセンターや
 クラウドにあるChefサーバー間のポリシーを非同期に複製。
・Amazon Web Services(AWS)をサポート。
・「Chef Analytics Platform」をマージし、コンテナリソースの管理が可能。
・Windows PowerShell DSCとの統合により、クロスプラットフォームのIT自動化を実装。
・OSS版(「Chef Essentials」)と商用版(「Chef Enterprise」)を単一のコードベースに統一。
 新たに導入された無料の「Chef Essentials」プランでは、25ノードまでの設定管理が可能。

以下に、CentOS 6.5にChef Server/Client 12を構築する。
 ※CentOS 日本語化は以下を参照。
  http://kwski.net/linux/208/

●Chef-Server
https://downloads.chef.io/chef-server/redhat/#/より姓・名・メールアドレスを登録してダウンロード。ファイルサイズは443 MBとでかい。
# rpm -ivh chef-server-core-12.0.1-1.x86_64.rpm
 ※Thank you for installing Chef Server!となっていることを確認する。

・Chef Manage
# chef-server-ctl install opscode-manage
# opscode-manage-ctl reconfigure

・Chef Push Jobs
# chef-server-ctl install opscode-push-jobs-server
# opscode-push-jobs-server-ctl reconfigure

・Chef Replication
# chef-server-ctl install chef-sync
# chef-sync-ctl reconfigure

・Reporting
# chef-server-ctl install opscode-reporting
# opscode-reporting-ctl reconfigure

・再構成
# chef-server-ctl reconfigure
..
opscode Reconfigured!
 ※「opscode Reconfigured!」となっていることを確認する。

・テスト
# chef-server-ctl test
..
Finished in 34.82 seconds
130 examples, 0 failures, 2 pending
 ※「0 failures」となっていることを確認する。
 ※名前解決できないと、nginxの起動に失敗する。

# cd /etc/chef-server

# chef-server-ctl user-create goodjob Good Job goodjob@openam.net goodjob --filename goodjob.pem
the ffi-yajl and yajl-ruby gems have incompatible C libyajl libs and should not be loaded in the same Ruby VM
falling back to ffi which might work (or might not, no promises)
ffi-yajl/json_gem is deprecated, these monkeypatches will be dropped shortly

# chef-server-ctl org-create kk-openam "Learning Chef" --association goodjob --filename kk-openam-validator.pem
the ffi-yajl and yajl-ruby gems have incompatible C libyajl libs and should not be loaded in the same Ruby VM
falling back to ffi which might work (or might not, no promises)
ffi-yajl/json_gem is deprecated, these monkeypatches will be dropped shortly

https://chef-server.openam.net/loginにアクセスし、goodjob/goodjobでログイン。

ログインを確認する。



[Administration] - [kk-openam] よりGenerate Knife Configを選択し、knife.rbをダウンロードする。



●Chef-Client
# curl -L https://www.opscode.com/chef/install.sh | bash
..
Thank you for installing Chef!
 ※「Thank you for installing Chef!」となっていることを確認する。

# chef-client -v
Chef: 12.0.3


2014年11月30日日曜日

distAuth冗長化

事前にLB(apache2.2のhttpd.conf)に以下の設定をしておく。(apache再起動要)

~~ ここから ~~

ProxyRequests off
ProxyPreserveHost on
<Proxy *>
    order deny,allow
    Allow from all
</Proxy>
<Proxy balancer://distauth>
    BalancerMember http://sol10-distauth1.openam.net:8080 retry=300 route=server1
    BalancerMember http://sol10-distauth2.openam.net:8080 retry=300 route=server2
    ProxySet lbmethod=byrequests
    ProxySet stickysession=APLBCOOKIE
</Proxy>
Header add Set-Cookie "APLBCOOKIE=APACHE.%{BALANCER_WORKER_ROUTE}e; path=/;" env=BALANCER_ROUTE_CHANGED
ProxyPass /       balancer://distauth/
ProxyPassReverse / http://sol10-distauth1.openam.net:80/
ProxyPassReverse / http://sol10-distauth2.openam.net:80/
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 1
HostnameLookups Off
~~ ここまで ~~

distauth.warをdistauth1号機、2号機のTomcatのwebapps配下に配備して、Tomcat再起動する。
※ここではdistauth.warをTomcatで動作させることを前提。

次にdistauthのセットアップを行う。 ※1号機、2号機の違いはDistauth Server HostとAncryption Keyのみ。

<例:2号機>

OpenAM管理コンソールの [アクセス制御] - [/(root)レルム] - [一般] タブのDNSエイリアスにdistauth2台と仮想distauth(sol10-lb)のFQDNを登録する。

 
Webブラウザより
http://sol10-lb.openam.net:80/distauth/UI/Login?goto=http://sol10-openam-core.openam.net:8080/openam にアクセスする。 ※gotoパラメタでOpenAM管理コンソールのアドレスを指定。


 

OpenAM管理コンソールにログインできることを確認する。


次に、OpenAM管理コンソールの [設定] - [サーバーおよびサイト] - [サーバー名(http://sol10-openam-core.openam.net:8080/openam)] - [高度] タブに以下を追加。

プロパティ名:com.sun.identity.authentication.client.ipAddressHeader
プロパティ値:X-Forwarded-For


OpenAM管理コンソールの [設定] - [サーバーおよびサイト] - [デフォルトのサーバー設定値] - [高度] タブで以下を変更。

プロパティ名:openam.retained.http.request.headers
プロパティ値:X-DSAMEVersion ⇒ X-DSAMEVersion,X-Forwarded-For


[高度] タブを編集する場合はTomcat再起動する。
 ※ここではopenam.warをTomcatで動作させることを前提。

次に、distauth1号機、2号機の{Tomcat実行ユーザ}/FAMDistAuth/_usr_local_apache-tomcat-6.0.35_webapps_distauth_AMDistAuthConfig.propertiesファイルを開いて、以下を編集して、Tomcat再起動する。

<1号機>
・変更
#openam.retained.http.request.headers=X-DSAMEVersion
openam.retained.http.request.headers=X-DSAMEVersion,X-Forwarded-For

・追記
com.sun.identity.authentication.client.ipAddressHeader=X-Forwarded-For
com.sun.identity.distauth.cluster=http://sol-distauth1.openam.net:8080/distauth/UI/Login,http://sol-distauth2.openam.net:8080/distauth/UI/Login

<2号機>
・変更
#openam.retained.http.request.headers=X-DSAMEVersion
openam.retained.http.request.headers=X-DSAMEVersion,X-Forwarded-For
・追記
com.sun.identity.authentication.client.ipAddressHeader=X-Forwarded-For
com.sun.identity.distauth.cluster=http://sol-distauth2.openam.net:8080/distauth/UI/Login,http://sol-distauth1.openam.net:8080/distauth/UI/Login


snoopを仕掛ける。
bash-3.00# snoop -o /tmp/out1.txt port 8080 host sol10-distauth1.openam.net
bash-3.00# snoop -o /tmp/out2.txt port 8080 host sol10-distauth2.openam.net

DistAuth経由でdemo/changeitでログイン。





キャプチャを取ると、X-Forwarded-ForにクライアントのIPアドレスが含まれている。

bash-3.00# snoop -i /tmp/out1.txt -x 50 > /tmp/distauth1.txt
bash-3.00# snoop -i /tmp/out2.txt -x 50 > /tmp/distauth2.txt

~~ キャプチャ(ここから) ~~
<例:2号機>
         320           0: 19f5 0000 504f 5354 202f 6469 7374 6175    ....POST /distau
          16: 7468 2f55 492f 4c6f 6769 6e20 4854 5450    th/UI/Login HTTP
          32: 2f31 2e31 0d0a 486f 7374 3a20 736f 6c31    /1.1..Host: sol1
          48: 302d 6c62 2e6f 7065 6e61 6d2e 6e65 740d    0-lb.openam.net.
          64: 0a55 7365 722d 4167 656e 743a 204d 6f7a    .User-Agent: Moz
          80: 696c 6c61 2f35 2e30 2028 5769 6e64 6f77    illa/5.0 (Window
          96: 7320 4e54 2036 2e31 3b20 574f 5736 343b    s NT 6.1; WOW64;
         112: 2072 763a 3237 2e30 2920 4765 636b 6f2f     rv:27.0) Gecko/
         128: 3230 3130 3031 3031 2046 6972 6566 6f78    20100101 Firefox
         144: 2f32 372e 300d 0a41 6363 6570 743a 2074    /27.0..Accept: t
         160: 6578 742f 6874 6d6c 2c61 7070 6c69 6361    ext/html,applica
         176: 7469 6f6e 2f78 6874 6d6c 2b78 6d6c 2c61    tion/xhtml+xml,a
         192: 7070 6c69 6361 7469 6f6e 2f78 6d6c 3b71    pplication/xml;q
         208: 3d30 2e39 2c2a 2f2a 3b71 3d30 2e38 0d0a    =0.9,*/*;q=0.8..
         224: 4163 6365 7074 2d4c 616e 6775 6167 653a    Accept-Language:
         240: 206a 612c 656e 2d75 733b 713d 302e 372c     ja,en-us;q=0.7,
         256: 656e 3b71 3d30 2e33 0d0a 4163 6365 7074    en;q=0.3..Accept
         272: 2d45 6e63 6f64 696e 673a 2067 7a69 702c    -Encoding: gzip,
         288: 2064 6566 6c61 7465 0d0a 5265 6665 7265     deflate..Refere
         304: 723a 2068 7474 703a 2f2f 736f 6c31 302d    r: http://sol10-
         320: 6c62 2e6f 7065 6e61 6d2e 6e65 742f 6469    lb.openam.net/di
         336: 7374 6175 7468 2f55 492f 4c6f 6769 6e3f    stauth/UI/Login?
         352: 676f 746f 3d68 7474 703a 2f2f 736f 6c31    goto=http://sol1
         368: 302d 6f70 656e 616d 2d63 6f72 652e 6f70    0-openam-core.op
         384: 656e 616d 2e6e 6574 3a38 3038 302f 6f70    enam.net:8080/op
         400: 656e 616d 0d0a 436f 6f6b 6965 3a20 4a53    enam..Cookie: JS
         416: 4553 5349 4f4e 4944 3d37 3133 4230 3538    ESSIONID=713B058
         432: 3633 3539 4244 3645 4438 3841 3630 3342    6359BD6ED88A603B
         448: 4342 3335 3838 3937 463b 2061 6d6c 6263    CB358897F; amlbc
         464: 6f6f 6b69 653d 3031 3b20 414d 4469 7374    ookie=01; AMDist
         480: 4175 7468 436f 6f6b 6965 3d22 6874 7470    AuthCookie="http
         496: 3a2f 2f73 6f6c 3130 2d64 6973 7461 7574    ://sol10-distaut
         512: 6832 2e6f 7065 6e61 6d2e 6e65 743a 3830    h2.openam.net:80
         528: 3830 2f64 6973 7461 7574 682f 5549 2f4c    80/distauth/UI/L
         544: 6f67 696e 223b 2044 6973 7441 7574 684c    ogin"; DistAuthL
         560: 4243 6f6f 6b69 654e 616d 653d 4469 7374    BCookieName=Dist
         576: 4175 7468 4c42 436f 6f6b 6965 5661 6c75    AuthLBCookieValu
         592: 653b 2041 504c 4243 4f4f 4b49 453d 4150    e; APLBCOOKIE=AP
         608: 4143 4845 2e73 6572 7665 7232 0d0a 436f    ACHE.server2..Co
         624: 6e74 656e 742d 5479 7065 3a20 6170 706c    ntent-Type: appl
         640: 6963 6174 696f 6e2f 782d 7777 772d 666f    ication/x-www-fo
         656: 726d 2d75 726c 656e 636f 6465 640d 0a58    rm-urlencoded..X
         672: 2d46 6f72 7761 7264 6564 2d46 6f72 3a20    -Forwarded-For:
         688: 3139 322e 3136 382e 3131 2e34 0d0a 582d    192.168.11.4..X-
         704: 466f 7277 6172 6465 642d 486f 7374 3a20    Forwarded-Host:
         720: 736f 6c31 302d 6c62 2e6f 7065 6e61 6d2e    sol10-lb.openam.
         736: 6e65 740d 0a58 2d46 6f72 7761 7264 6564    net..X-Forwarded
         752: 2d53 6572 7665 723a 206c 622e 6f70 656e    -Server: lb.open
         768: 616d 2e6e 6574 0d0a 436f 6e6e 6563 7469    am.net..Connecti
         784: 6f6e 3a20 4b65 6570 2d41 6c69 7665 0d0a    on: Keep-Alive..
         800: 436f 6e74 656e 742d 4c65 6e67 7468 3a20    Content-Length:
         816: 3231 330d 0a0d 0a49 4454 6f6b 656e 313d    213....IDToken1=
         832: 6465 6d6f 2649 4454 6f6b 656e 323d 6368    demo&IDToken2=ch
         848: 616e 6765 6974 2649 4442 7574 746f 6e3d    angeit&IDButton=
         864: 2545 3325 3833 2541 4425 4533 2538 3225    %E3%83%AD%E3%82%
         880: 4230 2545 3325 3832 2541 3425 4533 2538    B0%E3%82%A4%E3%8
         896: 3325 4233 2667 6f74 6f3d 6148 5230 6344    3%B3&goto=aHR0cD
         912: 6f76 4c33 4e76 6244 4577 4c57 3977 5a57    ovL3NvbDEwLW9wZW
         928: 3568 6253 316a 6233 4a6c 4c6d 3977 5a57    5hbS1jb3JlLm9wZW
         944: 3568 6253 3575 5a58 5136 4f44 4134 4d43    5hbS5uZXQ6ODA4MC
         960: 3976 6347 5675 5957 3025 3344 2667 6f74    9vcGVuYW0%3D&got
         976: 6f4f 6e46 6169 6c3d 2653 756e 5175 6572    oOnFail=&SunQuer
         992: 7950 6172 616d 7353 7472 696e 673d 2665    yParamsString=&e
        1008: 6e63 6f64 6564 3d74 7275 6526 6778 5f63    ncoded=true&gx_c
        1024: 6861 7273 6574 3d55 5446 2d38              harset=UTF-8
~~ キャプチャ(ここまで) ~~

OpenAM 11のマニュアルにないが、sunRemoteAuthSecurityEnabledのパラメタが必要。
# ./ssoadm set-attr-defs -u amadmin -f /tmp/pwd.txt -s iPlanetAMAuthService -t Global -a "sunRemoteAuthSecurityEnabled=true"
スキーマのデフォルト属性値が設定されました。

ここで試したところ、DistAuthの定義ファイルの設定値と"sunRemoteAuthSecurityEnabled"の値によって、ログに記録されるIPアドレスに変化があった。

●LBのIPアドレスが出る場合
openam.retained.http.request.headers=X-DSAMEVersion,X-Forwarded-For
#com.sun.identity.authentication.client.ipAddressHeader=X-Forwarded-For
"sunRemoteAuthSecurityEnabled=true"

<例:192.168.11.5はLB>
"2014-11-30 14:45:25"   ログインに成功しました|isNoSession=false        id=demo,ou=user,dc=openam,dc=forgerock,dc=org   5237d414e4b8b7101       192.168.11.5   INFO     dc=openam,dc=forgerock,dc=org   "cn=dsameuser,ou=DSAME Users,dc=openam,dc=forgerock,dc=org"     AUTHENTICATION-100      DataStore       "Not Available"192.168.11.5
"2014-11-30 14:45:27"   ログアウト      id=demo,ou=user,dc=openam,dc=forgerock,dc=org   5237d414e4b8b7101       192.168.11.5    INFO    dc=openam,dc=forgerock,dc=org   "cn=dsameuser,ou=DSAME Users,dc=openam,dc=forgerock,dc=org"     AUTHENTICATION-300      DataStore       "Not Available" 192.168.11.5

●クライアントのIPアドレスが出る場合
openam.retained.http.request.headers=X-DSAMEVersion,X-Forwarded-For
com.sun.identity.authentication.client.ipAddressHeader=X-Forwarded-For
"sunRemoteAuthSecurityEnabled=true"

<例:192.168.11.4はクライアント>
"2014-11-30 14:51:19"   ログインに成功しました|isNoSession=false        id=demo,ou=user,dc=openam,dc=forgerock,dc=org   561402e350fe9ae801      192.168.11.4   INFO     dc=openam,dc=forgerock,dc=org   "cn=dsameuser,ou=DSAME Users,dc=openam,dc=forgerock,dc=org"     AUTHENTICATION-100      DataStore       "Not Available"192.168.11.4
"2014-11-30 14:51:22"   ログアウト      id=demo,ou=user,dc=openam,dc=forgerock,dc=org   561402e350fe9ae801      192.168.11.4    INFO    dc=openam,dc=forgerock,dc=org   "cn=dsameuser,ou=DSAME Users,dc=openam,dc=forgerock,dc=org"     AUTHENTICATION-300      DataStore       "Not Available" 192.168.11.4

●DistAuthのIPアドレスが出る場合
openam.retained.http.request.headers=X-DSAMEVersion,X-Forwarded-For
com.sun.identity.authentication.client.ipAddressHeader=X-Forwarded-For
"sunRemoteAuthSecurityEnabled=false"

<例:192.168.11.15はDistAuth1号機>
"2014-11-30 15:18:25"   ログインに成功しました|isNoSession=false        id=demo,ou=user,dc=openam,dc=forgerock,dc=org   ee680ef4404d6f0301      192.168.11.15  INFO     dc=openam,dc=forgerock,dc=org   "cn=dsameuser,ou=DSAME Users,dc=openam,dc=forgerock,dc=org"     AUTHENTICATION-100      DataStore       "Not Available"192.168.11.15
"2014-11-30 15:18:30"   ログアウト      id=demo,ou=user,dc=openam,dc=forgerock,dc=org   ee680ef4404d6f0301      192.168.11.15   INFO    dc=openam,dc=forgerock,dc=org   "cn=dsameuser,ou=DSAME Users,dc=openam,dc=forgerock,dc=org"     AUTHENTICATION-300      DataStore       "Not Available" 192.168.11.15

結論として、ロードバランサをとおしてクライアントのIPアドレスをログ(audit log)に出すには以下が必要。

・DistAuthの定義ファイルに以下を設定
openam.retained.http.request.headers=X-DSAMEVersion,X-Forwarded-For
com.sun.identity.distauth.cluster=http://sol-distauth1.openam.net:8080/distauth/UI/Login,http://sol-distauth2.openam.net:8080/distauth/UI/Login
com.sun.identity.authentication.client.ipAddressHeader=X-Forwarded-For
・DistAuthの定義とOpenAM管理コンソールの[高度]タブの設定を合わせる
・ssoadmコマンドで"sunRemoteAuthSecurityEnabled=true"を設定
・Tomcat再起動(distAuth、OpenAMとも)