SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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


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

 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分間のクロック誤差を許容していますが、できるだけ正確に時刻を合わせておいた方が良いです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
事前準備

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
OpenAMで始めるシングルサインオン連載記事一覧

もっと読む

この記事の著者

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

OpenAMコミッタ。1978年長野県生まれ。OSS(特にOpenAM)の研究開発、テクニカルサポートに従事。E-Mail  : ktamura.biz.80@gmail.comTwitter : @tamura__246GitHub : https://github.com/k-tamuraブロ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6321 2016/06/05 22:11

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング