2008年3月31日 (月)

MOSS 上でシングルサインオンを利用できるように、大まかに次のような設定を行います。

  1. Microsoft Single Sign-On Service の起動
  2. シングル サインオン データベースの作成
  3. マッピングするアカウントの定義

3.は、次の部分で設定します。

  • 「SharePoint 3.0 サーバーの全体管理」の「サーバー構成の管理」- 「シングル サインオン の管理」- 「企業アプリケーション定義の設定の管理」

この企業アプリケーション定義の設定の管理で新しくアイテムを作成する際に、アカウントの種類として「グループ」もしくは「個人」などが選択できます。前者が多対一マッピングであり、後者が一対一マッピングです。今回は、一対一マッピングを設定するため「個人」を選択します(なお、バックエンドシステムは SQL Server を使用しているため忘れずに "Windows 認証" も有効にしておきます)。

[図.企業アプリケーション定義の設定の管理]

Sso1

この設定ができあがれば、あとは個人のアカウント情報がそのままバックエンドに渡せるようになるはずだと考えがちです。実は、そうではなく、SSO のデータベースは自動的にマッピングされるアカウントが登録されることはないのです。つまり、一対一であるログオンユーザーアカウントをそのままバックエンドに渡すためにも、なんらかの方法で SSO のデータベースに個人のアカウント情報を登録しなければなりません。個人と設定した場合は、シングルサインオンといいつつ、最低1回はユーザー名とパスワードを聞かれることになります。

では、それはどのように行うのでしょうか。

SharePoint 3.0 サーバーのヒントは SharePoint Designer 2007 にありました。ためしにSharePoint Designer 2007 のデータビューでバックエンドのデータベースのデータを取得するようにしてみたときに、一対一マッピング(個人) 設定のされている SSO認証を指定しました。すると、次のようなページにリダイレクトされます。

Sso2

このときに利用される URL は次の通りです。

つまり、一対一マッピングの SSO認証を使う場合は、このアドレスになんらかの運用ルールを決めて一度アクセスさせてユーザーに自分のアカウントを登録させる必要があります。

SharePoint Designer 2007 データビューの場合は、ユーザーに対して上記 URL へのリンクが自動的に生成されますが、Excel Services などではこうしたリンクは自動生成されることはないようです。

*************************************************************

[図. SharePoint Designer 2007 データビューの場合]

Sso5

※ 最初にデータビューではなく "認証するには、ここをクリックしてください"というリンクが表示される

Sso6

Sso7

※認証が終わるとデータが表示されるようになる

*************************************************************

ちなみに登録されたアカウントはSQL Server 上の SSO データベース内の "dbo.SSO_Credential"テーブルに格納されるようです。
Sso3

一旦登録されたアカウントを削除するには

ユーザーが個々に登録したアカウントを管理者が削除する必要がある場合は、「SharePoint 3.0 サーバーの全体管理」の「サーバー構成の管理」- 「シングル サインオン の管理」- 「企業アプリケーション定義のアカウント情報の管理」で削除したいアカウントを指定し、次の「企業アプリケーション定義」から適切な項目を選択します。

  • このアカウントの資格情報を、この企業アプリケーション定義から削除する
  • このアカウントの資格情報を、すべての企業アプリケーション定義から削除する

最後に [設定]ボタンをクリックします。

以上が、いろいろと試行錯誤の末にわかったことのまとめです。参考になれば幸いです。

一対一のマッピング

続きを読む »