2012.10.16

OpenAM を使った認証

Add Authentication to a Website using OpenAM
この本家サイトを見て、だいたいできた。

これまで OpenAM に、Google Apps や Facebook のアカウントでログインできるようにしていた。
OpenAM にログインできることは、それだけじゃ全く意味がない。

その認証を使って、Webアプリにログインして、やっとシングルサインオンになる。
OpenAM の存在を気にしなければ、Facebook アカウントで Webアプリにログインしているように見えるわけだ。

重要なのは、3. OpenAM Server Configuration, 4. Web Server Configuration の章。

OpenAM Downloadのページから、Web Policy Agents をダウンロードする。
3.0.4 と 3.0.5 の両方試してみたけど、両方エラーになった。

サイトのとおりに、エージェントとポリシーを作成してから、
Apache2 を一度止めて、Web Policy Agents をインストールする。

そして Apache2 を起動すれば終わりなのだが、起動しなかったのだ。
3.0.4 のほうは、libamapc2.so: undefined symbol: ap_run_http_method
3.0.5 のほうは、libamapc2.so: undefined symbol: timer_create

ググって解決法を探してみたところ、3.0.4のほうのエラーは、
Apache2.2だと出るらしく、Apache2.0だと大丈夫らしいことがわかった。
3.0.5 のほうは全く情報がなかったので、3.0.4 のほうでトライすることにした。

Ubuntu で普通にインストールすると apache2_2.2 がインストールされてしまうので、
Apache のサイトからソースを落としてきて、コンパイルした。
./configure, make, make install ですんなりインストールできた。

$ sudo /usr/local/apache2/bin/apachectl stop

$ cd web_agents/apache_agent/bin
$ sudo ./agentadmin –install

サイトに書いてあるとおり、
・ /usr/local/apache2/conf
・ OpenAM のURL (http://openam.no.url:8080/openam_10.0.0)
・ Apacheで動かすWebサイト (http://apache.no.url)
・ /var/tmp/passwd
らへんを入力して、最後に 1 でインストールされる。

$ sudo /usr/local/apache2/bin/apachectl start

で、ApacheのWebサイトにアクセスしたら、OpenAM にリダイレクトされた!!

そして amadmin でログインしたら、Apache のデフォルト画面にリダイレクトされた!!
ここでホントは amadmin じゃなくて、Google Apps や Facebook のアカウントでログインすればいいはず。

なるほどねー。


Posted 2012.10.16, 00:23 by mera and filed in OpenAM
OpenAM を使った認証 はコメントを受け付けていません
2012.10.13

OpenAM + Facebook

OpenAM10.0 OAuth2.0を使ってみる を参考に。

まず、Facebook Developerサイトに、OpenAM のURLを登録し、APPキーとAPPシークレットを生成する。
https://developers.facebook.com/apps

その後、OpenAM の[アクセス制御]タブで[/(最上位のレルム)]リンクをクリック。
[認証]タブで[モジュールインスタンス]を新規作成する。

このとき、名前をつけて、OAuth2.0を選択する。
このモジュール名を後で使う。(ここでは「Facebook」とする)

作成したモジュールリンクをクリックし、設定する。
Facebook Developerサイトで作ったAPIキーとシークレットを、Client Id, Client Secret として入力する。
あと、Proxy URL を自分のサイトに書き換えろと書いてあるので、~/openam/ の箇所を自分のOpenAMにする。

Create account if it does not exist:
Prompt for password setting and activation code:
の2項目が有効になっているので、やりたいことにあわせて変更すべし。

Create account if it does not exist:
のほうは、FacebookアカウントがOpenAMに登録されてないとき、勝手に登録する。(私は有効にした)
これを無効にしていると、OpenAMに存在しないユーザがログインするとき、
 ユーザーにはこの組織におけるプロファイルがありません。システム管理者に連絡してください。
というエラーになる。

Prompt for password setting and activation code:
のほうは、OpenAMにリダイレクトされたときに、パスワード設定画面が出てくる。
何が起こるかわからなかったので、無効にしてしまった。

そして Facebook にログイン。
OpenAM のログイン画面のURLに、module=モジュール名をパラメータとしてくっつける。
例: http://OpenAMドメイン/openam_10.0.0/UI/Login?module=Facebook

このURLにアクセスしたとき、
 An error occurred with Test. Please try again later.
 API Error Code: 191
 API Error Description: The specified URL is not owned by the application
 Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration.
というエラーが出たときは、OpenAM側に設定した Proxy URL が間違ってる可能性があるので要確認。
(私の場合は openam_10.0.0 というパスなのだがopenamのまま修正してなかった)

うまくいけば、Facebook のログインページにリダイレクトされる。
 ○○でFacebookアカウントを利用するにはログインしてください。
というメッセージが出てる。

ログインして、Facebook 画面で Go to App ボタンをクリックする。
 ○○ would also like permission to:
というメッセージが出るので、Allow ボタンをクリック。

そしたら何故か、
 セッションがタイムアウトしました。
というOpenAM画面のエラーが出たが、Facebook にはログインできてた。

さて、これで何ができるかな?


Posted 2012.10.13, 21:40 by mera and filed in OpenAM
OpenAM + Facebook はコメントを受け付けていません
2012.09.15

OpenAM + Google Apps 続き

OpenAM で出したURL3つと証明書を、Google Apps の管理ページに登録した後の話。
Google Apps へのログインを、OpenAM でやるところ。

1. OpenAM トップページから、[アクセス制御]タブを開く。
2. レルム名のところにある「/ (最上位のレルム)」リンクを開く。
3. [対象]タブを開く。
4. ユーザーの[新規]ボタンをクリック。
5. IDに Google Apps のアカウント(メールアドレス)を入れ、パスワードも Google Apps のパスワードを入れる。
 その他必須項目を埋めて、[了解]ボタンでユーザが作成される。

これで設定は終わりなので、OpenAMからログアウトする。
Google Apps にログイン中だったら、それもログアウトする。

Google Apps のサービスにログインしようとすると、OpenAM のログイン画面に飛ばされる。
そこで、Google Apps のメールアドレスとパスワードを入れると、Googleのサービスにログインできる。


Posted 2012.09.15, 21:05 by mera and filed in OpenAM
OpenAM + Google Apps 続き はコメントを受け付けていません
2012.08.30

OpenAM に Google Apps の設定が・・・

アクセス制御 SSO資料 がとても参考になる

前に作ったアカウントでOpenAM にログインする
(amadmin と設定したパスワード)

「ホストアイデンティティープロバイダの作成」を開く
署名欄のプルダウンで「test」を選択し、新しいトラストサークルの名前をつけて、設定ボタンで完了
完了画面から「Google Apps を設定する」をクリックする

Google Apps Premier Edition を持ってないので、案内に従って作る
「Google Apps アカウントがまだない場合は、すぐに作成する必要があります。
http://www.google.com/apps/intl/en/business/index.html に移動し、Premier Edition アカウントの作成手順に従います。」

「Start Free Trial」から氏名、Email、組織名、人数、電話番号を入力する
次のページは、ドメインの入力で、なければ年間8ドルで買えというので、お名前.com で120円のを作った
OpenAMに戻って、そのドメインを追加し、作成ボタンをクリック

「Google Apps のシングルサインオンの設定」というページに飛ばされて、いろいろパラメータが入ってる
ページ内の下部に手順が書いてある
1. 「検証証明書」をファイルとして保存する
2. Google Apps の管理ページの Advanced tools にURLを貼り付ける
3. アップロードする・・・のだが、Invalid certificate or public key になってアップロードできない!!!!!

また詰まってしまった

どーすりゃいいのさ、これ。

——

どうすればいいのか、後でわかった。
最後の行にある —–END CERTIFICATE—– の部分が独立した行になるように、その前で改行を入れる。
そうしたらアップロードできた。


Posted 2012.08.30, 00:07 by mera and filed in OpenAM
2012.08.23

OpenAM インストール

オープンソースのシングルサインオンやID管理をするもの。
前に書いたCASも同じ類のもの。

OpenAMのサイトからwar形式でダウンロード
→ Latest stable の 10.0.0 をダウンロードした
apache-tomcat/webapps/ 以下に warファイルをコピーしておく

/etc/hosts の 127.0.0.1 に対してドットが2つ以上ある名前を割り当てる(Cookieの都合らしい)
(以下、watashi.no.local.domain とする)

apache-tomcat/conf/tomcat-users.xml にユーザーを追加(しなくてもいいと思う)
 <role rolename=”manager-gui”/>
 <user username=”admin” password=”admin” roles=”manager-gui”/>
→ http://localhost:8080 にアクセスして Manager App から起動中のアプリを確認したりできる

apache-tomcat/bin/startup.sh で Tomcat 起動
http://watashi.no.local.domain:8080/openam_10.0.0 にアクセスすると、OpenAM の設定オプション画面が開く

とりあえず「デフォルト設定」を作成する
デフォルトユーザー(amAdmin)と、デフォルトポリシーエージェント(UrlAccessAgent)のパスワードを設定する
設定ボタンを押すと、何やらいろいろインストールやロードをしている

OpenAM へのログイン (http://watashi.no.local.domain:8080/openam_10.0.0/UI/Login)
先ほど作ったデフォルトユーザーのアカウント名が amadmin なので、それでログインする

設定項目がたくさん出てくる

ここからが大変そうだ^^;

参考にしたサイト
https://wikis.forgerock.org/confluence/display/openam/Deploy+OpenAM
http://openam.forgerock.org/doc/install-guide/index.html

 


Posted 2012.08.23, 23:43 by mera and filed in OpenAM
OpenAM インストール はコメントを受け付けていません