polidog lab++

Blog

CentOS6.4とmod_auth_openidとgoogle appsでアクセス制限

Oct 18, 2013 | tech | apache google apps mod_auth_openid

社外からもアクセスしたいけど、社員とか会社の人にしかアクセスさせたくない!なんてことはよくあると思います。
そこで昔から用いられていたのがベーシック認証とかダイジェスト認証とかその辺だと思います。
今も使われている会社って意外に多いのかと思います。

ただ、退職者が出たり、新しく人が入ったりでパスワードを変更しなければ行けないですよね。
非常にだるい。本当だるい。そんなことにエンジニアの労力を最低位のでしょうか?

良いわけありません。

そこでapacheを使っている場合はmod_auth_openidを使ってGoogleAppsで認証させるのはありかと思います。
まあ、前提条件として「webサーバがapacheであること」「GoogleAppsを使っている」ことが条件になってしまいますが…

今回のOSはcentos6.4のminimalを想定しています。
そしてVagrantを使っています。

本日の手順

  1. まずはBoxファイルを用意する
  2. yumのepel,remiのリポジトリを登録する
  3. mod_auth_openidを入れる
  4. mod_auth_openidの設定をする
  5. ブラウザからアクセスしてみましょう

まずはBoxファイルを用意する

Vagrantを使わない人は読み飛ばしてかまいません。

$ vagrant box add centos64_mini https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box
$ vagrant init centos64_mini
$ vagrant up

ちなみにhttpアクセスするためにVagrantファイルをいかように編集してください

$ vim Vagrantfile
-- # config.vm.network :forwarded_port, guest: 80, host: 8080
++ config.vm.network :forwarded_port, guest: 80, host: 8080

編集後は再起動しましょう。

$ vagrant reload

そして接続

$ vagrant ssh

見るだけでわかると思いますが、糞簡単にLinux環境が用意できますね。本当に素晴らしくて素敵な時代!!

yumのepel,remiのリポジトリを登録する

この辺はもう定番ですね・・・w

$ sudo rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
$ sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

$ sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
$ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

mod_auth_openidを入れる

$ sudo yum install mod_auth_openid

たったこれだけ!!

mod_auth_openidの設定をする

$ sudo vim /etc/httpd/conf.d/mod_auth_openid.conf

LoadModule authopenid_module modules/mod_auth_openid.so

<Location "/">
  AuthType OpenID
  require valid-user
  AuthOpenIDDBLocation    /var/lib/mod_auth_openid/database.db

  AuthOpenIDTrusted ^https://www.google.com/accounts/o8/ud
  AuthOpenIDAXRequire email http://openid.net/schema/contact/email @polidog\.jp #←ドメイン名はappsのもの
  AuthOpenIDSingleIdP https://www.google.com/accounts/o8/id
  AuthOpenIDAXUsername email

  AuthOpenIDCookiePath /
</Location>

ブラウザからアクセスしてみましょう

http://localhost:8080/

たぶんこんな感じの画面がでてきます。

あとは承認すればアクセスできるようになります。しかも指定したドメインのGoogleAppsからしかアクセスできないので非常に管理がしやすいのではないでしょうか。

myDNSとリバースプロキシを組み合わせれば複数代のサーバの認証をすることもできます。
気が向いたら方法をブログにでも記載します。

参考

Using Apache2′s mod_auth_openid…
Introduction : The Apache OpenID Module

comments powered by Disqus

関連記事

© 2017 polidog lab++