2016年12月19日月曜日

[Internet Weekフォローアップ]デモ環境の作り方③

こんにちは、富士榮です。

前回に引き続きInternet Weekのフォローアップです。

今回はいよいよG Suite(Google Apps)とID連携を行い、SSO出来るようにしてみます。

◆G Suite(旧Google Apps)とのID連携を設定する

いよいよ佳境です。
利用部門で勝手に契約したG Suiteを、勝手に立てたOpenAMと接続していきます。

OpenAMでは初めからG Suiteとの接続が組み込まれているため非常に簡単です。
 手順としては、
 <OpenAM側>
  ・OpenAMをSAML IdPとして構成する
  ・トラストサークルを作成する
  ・G SuiteをSAML SPとして登録しトラストサークルへ組み込む
 <G Suite側>
  ・OpenAM側のSSOサービスのエンドポイントとアサーション署名用の証明書を登録する
という非常にシンプルなものです。
順番に実施していきます。

・OpenAMをSAML IdPとして構成する

作成したレルムのトップ画面から[Create SAMLv2 Providers]をクリックしてSAML関連の設定画面を開きます。



OpenAM自体をSAML IdPにしたいので[Create Hosted Identity Providers]をクリックして開きます。



メタデータ設定のレルムに先ほど作成したレルムを選択し、名前にはhttpdでリバースプロキシしたURL(実際は任意なのでなんでもよい)、署名鍵は[test]を選択します。
※実際は署名用の証明書をちゃんと作って設定してください。

また、トラストサークルには「新しいトラストサークル」の欄に任意の名前を設定し、トラストサークルを作成します。



SAML IdPの設定が完了するとGoogle Appsの設定が出来ますので、ここで[Google Appsを設定する]をクリックしてGoogle Apps用の設定を行います。

Google Apps側のドメイン名を指定する箇所がありますので、「google.com/a/ドメイン名」という形で契約したドメイン名を指定します。


するとGoogle Apps側に指定すべきURLと署名検証に利用する証明書のダウンロードが出来る画面へ遷移しますので、それぞれの項目をメモ、ダウンロードしておきます。



・G SuiteへOpenAMの情報を登録する

ここまで来たらもう一息です。
先ほどメモしたOpenAMの情報をG Suite側のSSO設定画面へ登録していきます。

セキュリティの設定ページを開き、「サードパーティのIDプロバイダでSSOを設定する」にチェックを入れ、ログインページのURL、ログアウトページURL、パスワード変更URLのそれぞれに先にOpenAM上で取得したURLを設定していきます。

この際に注意なのですが、OpenAMはhttpdでSSL化およびリバースプロキシされているのでOpenAMのURLを読みかえてG Suite側へ設定する必要があります。

変更すべき点はhttp⇒https、およびポートが:8080⇒なしです。

例えば、
  http://openam.adfs20.net:8080/openam
  https://openam.adfs20.net/openam
となります。

また、[ドメイン固有の発行元を使用]にはチェックを入れておいてください。



・OpenAMで発行されるSAMLアサーションのNameIDをGoogle向けにカスタマイズする

ここまででID連携の設定は完了しているのですが、シングルサインオンを実現するには、社内ADから取得したID情報と、Google上のID情報のマッチング(紐づけ)が出来る必要があります。

Googleは識別子としてメールアドレスを要求していますので、社内AD上の属性よりメールアドレスを取得してGoogle向けの識別子(NameID)としてSAMLアサーションを構成してあげる必要があります。


OpenAMの管理画面の上部より[FEDERATION]メニューを開きます。



すると先に設定したSAML IdPがエンティティプロバイダとして出てきますので、クリックして設定を変更します。


具体的な変更箇所は[NameID値マップ]で初期状態では
  urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified=uid
となっている行を削除して、
  urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified=mail
を追加します。

これは、Googleからの認証要求としてNameIDのフォーマットがunspecifiedという指定が来るので、OpenAMはunspecifiedのフォーマットで値を返そうとします。その際に設定する値としてuidではなく、mail属性の値を入れてあげる、という設定です。



・G SuiteへOpenAMを使ってログインする

ここまでくるとG SuiteへのログインはOpenAMへリダイレクトされるようになっていますので、例えば「https://mail.google.com/a/カスタムドメイン名」へアクセスするとOpenAMのログイン画面が表示されます。



ここで社内ADのユーザ名とパスワードを入力すると認証が行われ、G Suiteのサービスが利用できるようになります。




ここまでで、野良認証システムと野良クラウドが情シスの全く感知しないところで構成できたわけです。

次回は後々情シスへ巻取りをしてもう、そして利用者が利便性高く使うためにはもう一工夫しておきます。テーマはDesktop SSOです。



0 件のコメント:

コメントを投稿