Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

クラウドサービスへのシングルサインオン ~ Salesforceとの連携

OpenAMで始めるシングルサインオン(4)

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2013/02/13 14:00

 OpenAMは、シングルサインオン(以下SSO)を実現するオープンソースソフトウェア(以下OSS)です。旧Sun Microsystems社により開発された商用製品がベースとなっているため、高品質で多機能です。全世界で多くの導入実績があり、安定性と信頼性の高さが証明されています。本連載では、OpenAMとSSOに関する技術について解説します。また実際にOpenAMをインストールし、社内アプリケーションやクラウドサービスに対してSSOをしてみます。

目次

はじめに

 第4回は、OpenAMを使用してクラウドサービスにSSOする方法について解説します。クラウドサービスへのSSOには、SAMLやOpenIDなどの認証プロトコルを使用するのが一般的です。今回はSAMLを使用してSalesforceへSSOします。Salesforceでは開発や検証の目的で、無料の「Developer Edition」を提供しているので、これを利用して動作確認します。

対象読者

  • SSOとOpenAMについてより理解したい方
  • OpenAMの導入を検討している方
  • SAMLによるクラウドサービスへのSSOについて理解したい方
  • SalesforceなどのクラウドサービスへのSSOを検討している方

SAMLによるSSOの概要

 設定に入る前に、SAMLの概要とSAMLによるSSOの設定方法について簡単に説明します。

SAMLとは

 SAMLは、インターネット上に公開されているサービスへのSSOを可能にする標準プロトコル(通信規約)です。ユーザは、この規約に従って実装されたサービスに対して、ベンダやネットワークの枠を超えてSSOをすることができます。

図1:SAMLによるSSO
図1:SAMLによるSSO

 SAMLのメッセージは、XML形式でHTTPリクエストやレスポンスに付加されて、サーバ間でやりとりされます。SAML認証時のHTTPリクエストやレスポンスのボディ部にある<samlp:~>タグで囲まれている部分がSAMLのメッセージです。この中に認証の結果や、ユーザの属性(IDや所属組織)、アクセス権限などの情報が含まれており、各サーバはこれを解析して認証やアクセス制御を行います。

SAMLを利用したSSOの設定

 SAMLでは、サービスを提供するサーバを「サービスプロバイダ(SP)」、SPからの要求に対して認証を行い、ユーザの属性情報を返すサーバを「アイデンティティプロバイダ(IdP)」といいます。

 SAMLを利用してSalesforceへSSOするためには、SalesforceをSPに、OpenAMをIdPに設定し、両者の間で証明書を交換する必要があります。これはユーザ情報を共有するサーバ間で事前に信頼関係を結ぶことが、SAMLによるSSOの前提となっているためです。この信頼関係を「トラストサークル」といいます。

図2:トラストサークルの構成
図2:トラストサークルの構成

 トラストサークルの設定に加えて、SalesforceとOpenAMのユーザをマッピングをするための設定が必要になります。例えば、Salesforceユーザの「統合ID」とOpenAMユーザの「ID(uid)」が一致する場合に同一ユーザとみなす、というようにユーザ属性の対応付けを行う必要があります。

設定の概要

 設定のおおまかな流れは以下のようになります。

  • 事前準備(Salesforce Developer Editionの登録など)
    (Salesforce、OpneAMのそれぞれで以下を実施)
  • 証明書の取得
  • 連携用ユーザの作成
  • SSO設定(相手の証明書の取り込みを含む)

 すべて完了すると、トラストサークルが構成され、SSOが可能になります。

 OpenAMのインストールが完了していない方は、「OpenAMのインストール - OpenAMで始めるシングルサインオン(2)」を参照してインストールを行ってください。またOpenAMサーバのシステムクロックは、Network Time Protocol(NTP)を使用して、インターネット上の正しい時刻に同期させるようにしてください(※1)。

※1

 SAMLメッセージは、発行時のタイムスタンプから一定時間を超過した場合、無効になります。Salesforceでは3分間のクロック誤差を許容していますが、できるだけ正確に時刻を合わせておいた方が良いです。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 田村 広平(タムラ コウヘイ)

    OpenAMコミッタ。 1978年長野県生まれ。 OSS(特にOpenAM)の研究開発、テクニカルサポートに従事。 E-Mail&nbsp; : ktamura.biz.80@gmail.com Twitter : @tamura__246 GitHub : https://githu...

バックナンバー

連載:OpenAMで始めるシングルサインオン
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5