Google Appsでできることはいくつかあります。
ADネットワークに接続されたSAMLサーバーをセットアップし、SAMLサーバーに対してGoogle Appsアクセスを認証するようにGoogleをセットアップできます。PHPを実行するサーバーが既にセットアップされており、PHPスキルを持つ開発者がいるため、simpleSAMLphpというphpアプリケーションを使用しました。SAMLソリューションを単独で使用する場合の欠点は、Webを介してのみアカウントにログインできることです。これは、imap / popを介してメールボックスにアクセスできず、古いXMPPクライアントを使用してGoogleトークにログインできないことを意味します。
SAMLを使用しても、Google Appsドメインにアカウントは自動的に作成されません。また、おそらくGoogle Apps Directory同期ツールを使用できるように、アカウントを同期するツールが必要になります。これにより、アカウントを作成できるようになりますが、Windowsパスワードハッシュは元に戻せず、Googleはアカウントで何もできないため、デフォルトではパスワードを同期しません。
PasswdHkのようなものを使用してADのパスワード変更をインターセプトし、Googleディレクトリ同期ユーティリティがGoogle Appsパスワードの設定に使用できる形式(無塩sha1)でパスワードを保存することができます。ただし、GoogleはProvisioning APIを介して無塩のmd5またはsha1パスワードハッシュのみを受け入れ、Googleと同期するには基本的にこれらのハッシュを保存する必要があるため、これは少しのセキュリティリスクを追加します。これを使用する場合、これらのハッシュを安全に保つことが非常に重要です。
ふむ imap / popについて少し話をするまで、SAMLに興奮していた。これは、Windows MobileとBlackberryクライアントを使用しているすべての人を殺すでしょう。巧妙な選択肢はありますか?
パスワードハッシュを保存するリスクを受け入れる場合は、SSOとディレクトリ同期を組み合わせて、稼働中のシステムを取得できます。
別の方法として、ドメイン内のユーザーがGoogleアカウントを初期化し、Googleアカウントのパスワードを設定するイントラネットポータルを開発できます。私はこのようなものを開発することを検討していましたが、それが進むべき道であることに私の同僚に同意させることができませんでした。
基本的な考え方はこれです、ウェブアプリを構築します
- イントラネット上に存在し、アクティブディレクトリに対して認証します
- ユーザーがイントラネットサイトへのログインに使用したユーザー名とパスワードを取得し、ADから必要な他の情報を取得し、Google Provisioning APIを使用してユーザーアカウントを追加/更新する機能を備えています。
このツールの構築はそれほど難しくないはずです。12〜16時間の開発時間しかかからない基本的なものをハックするつもりでした。このソリューションの利点は、Google Appsの機能を100%提供できることです。欠点は、エンドユーザーに多少不便をかけることです。