SaaS

GoogleのセキュアLDAPを使ってPingFederateによる認証をする

セキュアLDAPとは、つい先日リリースされたばかりの、GoogleのCloud Identityまたは、G Suiteに対して、LDAPプロトコルを使って接続できるサービスのこと。

Ping IdentityのIdP製品である、PingFederateから、セキュアLDAPが使えるか試してみる。

Cloud Identity

Cloud Identityとは、GoogleのIDaaSで、企業向けモバイル管理(EMM)サービスのこと。 FreeとPremiumがあり、セキュアLDAPを使うには、Premiumが必要となる。

Freeは、G Suiteを使わないユーザーを管理するのに使うことができる。 GCPを使う開発者向けに、IDを発行し、ID統制できるようになる。

また、G Suite Enterpriseを使っている場合も、セキュアLDAPを使うことができる。 セキュアLDAPを使いたい場合、Cloud Identityを使った方がコスト面では有利なので、このためだけにG Suite Enterpriseにする必要はない。

Cloud Identity Premiumを有効にする

今回は、すでにG Suiteを使っているドメインでPremiumを有効にする。まだFree版も利用していない。

G Suiteの管理コンソールの「お支払い」から、Cloud Identity Premiumの有効化を実施する。 14日間の無料試用ができるので、そちらを選ぶ。

有効化が完了したらライセンスの割り当てをする。割り当て方法については、下記のドキュメントを参照のこと。

LDAPクライアントを追加する

セキュアLDAPに接続するためのLDAPクライアントを、Googleに追加するする必要がある。

アクセス権限を設定する

LDAPクライアントが、どんな情報にアクセスできるのかの権限を設定する。 今回は、PingFederateが認証に使うData Storeとして利用する想定なので、全て許可する。

  • ユーザー認証情報の確認
  • ユーザー情報の読み取り
  • グループ情報の読み取り

証明書をダウンロードする

自動的に証明書が生成されるので、ダウンロードする。

LDAPクライアントをオンにする

Googleの管理コンソールで、サービスをオンにする。

LDAPクライアントを設定する

PingFederateを使う場合は、証明書を使った認証が利用できない。そのため、stunnelを使う。

stunnelのインストールと設定

今回の環境は、CentOS 7を利用している。yumでインストールする。

# yum install stunnel psmisc

Googleから取得した証明書をサーバーの/etc/stunnelに配置する。 それぞれ、google-ldap.crtgoogle-ldap.keyとする。/etc/stunnel/stunnel.confとして、下記の内容の設定ファイルを作成する。

[ldap]
client = yes
accept = 127.0.0.1:1636
connect = ldap.google.com:636
cert = /etc/stunnel/google-ldap.crt
key = /etc/stunnel/google-ldap.key

stunnelをサービスとして、systemdに登録する。 /etc/stunnel/stunnel.confとして、下記の内容のファイルを作成する。

[Unit]
Description=SSL tunnel for network daemons
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
Alias=stunnel.target

[Service]
Type=forking
ExecStart=/usr/bin/stunnel /etc/stunnel/stunnel.conf
ExecStop=/usr/bin/killall -TERM stunnel

# Give up if ping don't get an answer
TimeoutSec=600

Restart=always
PrivateTmp=false

systemdに登録する。

# systemctl start stunnel.service
# systemctl enable stunnel.service
PingFederateを設定する

PingFederateからstunnelを経由してセキュアLDAPに接続する設定をする。

Data Storeを作成する

Data Storeを作成して設定する。

  • Hostname(s):localhost:1636
  • LDAP Type:general
  • Bind Anonymously: チェックする

設定を保存する。

LDAP PCVを作成する

LDAP Username Password Credential Validatorを作成し設定する。 設定値は、Googleのドキュメントを参考にする。

  • LDAP Datastore: 作成したData Store
  • Search Base: DC=example,DC=com
  • Search Filter: mail=${username}

あとは、IdP AdapterでこのPCVを使うように設定すれば良い。

まとめ

テストしたところ、認証する際に気持ち時間がかかるか?という感じだが、特に問題なく利用できた。

今更LDAP?と思う向きは少なくないと思う。しかし、統合認証を実現しようとすると、LDAPが不要になる世界は、まだ来そうにないのが実情だ。

統合認証と言えば、ほとんどのケースでActive Directoryがデファクトスタンダードになっている。そして、昨今のスタートアップ企業は、今さらActive Directoryを管理・運用したくないという話はよく聞く(自分もそう思う)。そして、そういう企業は大抵の場合、G Suiteを契約してメールはGmailを使っているのだ。

そんな場合に、セキュアLDAPは有力な選択肢になる。

 


元記事はこちら

GoogleのセキュアLDAPを使ってPingFederateによる認証をする

従業員個人ブログより転載記事

従業員の個人ブログから許可を得られた記事を厳選して転載しています