Skip to main content
Auth0 を使うと、SharePoint の認証プロセスを大幅に簡素化できます。このチュートリアルでは、Auth0 を使用して SharePoint に (SSO) を追加する方法を学びます。ユーザーは、ソーシャルアイデンティティプロバイダー (Facebook、X、Github など) 、エンタープライズプロバイダー (LDAP、Active Directory、ADFS など) 、またはユーザー名とパスワードを使ってログインできるようになります。
Auth0 は、SharePoint 2010 / 2013 向けの Auth0Claims Provider をサポートしていません。このパッケージは既存のテナントでは非推奨であり、新規テナントでは利用できません。

設定

ステップ 1. アカウントに連携を追加する

まず、Auth0 Dashboard の SSO Integrations セクションに移動し、アプリ一覧から SharePoint を選択します。

ステップ 2. Live Documentation の手順に従う

SharePoint サーバーがインターネットにアクセスできない場合は、インストール ファイルを手動でダウンロードしてください。(オフライン インストールの詳細はこちら).
Settings タブで、SharePoint Web Application の URL と外部 URL (通常は Alternate Access Mappings のインターネット エンドポイント) を入力する必要があります。 Live Documentation は、まず SharePoint 用 Auth0 CmdLets のインストールから始まります。
SharePoint Management Shell - cmdlets のインストール
これらをインストールすると、各 Web Application に対して Auth0 と Claims Provider を有効または無効にできるようになります。まず、Auth0 による認証を有効にする必要があります。
SharePoint Management Shell - Auth0 のインストール - 認証の有効化
次に、People Picker と権限が正しく機能するよう、Claims Provider をインストールします。
SharePoint Management Shell - Claims Provider のインストール
これらのスクリプトを実行したら、Central Administration で構成を完了します。
SharePoint central admin - 構成の完了
Enable-Auth0 の呼び出しは、次のように調整できる点に注意してください。
  • ユーザーの一意識別子を変更する (メール アドレスやユーザー ID など)
  • 追加のクレームを SharePoint に渡せるようにする
  • デフォルトの Windows Authentication を有効または無効にする
次の例では、Role claim もクレーム mapping に追加し、Windows Authentication を許可しています。

ステップ 3. SharePoint の設定が完了しました

これで、SharePoint が SSO ブローカーとして Auth0 を使用するように設定されました。ユーザーがサイトにアクセスすると、そのアプリケーションで有効になっているすべての接続が表示されたログインページが表示されます。 Claims Provider のインストール時にどのクレームをマッピングしたかによっては、次の追加情報もユーザーの個人設定ページで利用できます。
SharePoint - ユーザー情報
SharePoint central admin - 完全な設定
Enable-Auth0 の呼び出しは、次のように調整できます。
  • ユーザーの一意の識別子 (メールアドレスやユーザー ID など) を変更する
  • 追加のクレームを SharePoint に渡せるようにする
  • 既定の Windows Authentication を有効または無効にする
この例では、Role クレームもクレームのマッピングに追加し、Windows Authentication を許可しています。
SharePoint では、今後 Auth0 が SSO ブローカーとして使用されます。

ログインページのカスタマイズ

Auth0 Universal Login の手順に従って、ログインページをカスタマイズできます。 ユーザーが Auth0 を介さずに SharePoint で Windows Authentication を使って認証できるようにしたい場合もあるでしょう。その場合は、ログインページをカスタマイズし、Windows Authentication エンドポイントへのリンク (通常は https://yoursharepointserver/_windows/default.aspx?ReturnUrl=/_layouts/15/Authenticate.aspx のようなもの) を追加します。 その方法の 1 つとして、jQuery を使って Lock ウィジェットを変更し、Windows Authentication エンドポイントへのリンクを追加できます。 カスタマイズしたログインページの <body> セクションの先頭に、jQuery への参照を追加する必要があります。
lock.show() を呼び出す前に、リンクが追加されるように HTML DOM を変更するコードを追加します。

トラブルシューティング

追加のクレームや認可を扱う際は、現在のユーザーのクレームを確認できると便利です。Microsoft の専門家である Liam Clearly の記事 Claims Viewer Web Part を使えば、ユーザーのクレームに関する問題のトラブルシューティングに役立ちます:

SP2010 のログ

エラーと警告は SharePoint の統合ログ サービスに記録され、Claims Provider の使用時に発生する問題のトラブルシューティングには、ULS Viewer などのツールを使用できます。 ULS View の詳細および入手方法については、Microsoft のドキュメント ULS Viewer を参照してください。

SP2013 のログ

SharePoint 2013 では、ログに 統合ログ サービス は使用せず、代わりに Event Tracing for Windows を利用しています。これによりパフォーマンスが向上し、記録されたすべてのイベントを取得する方法も複数用意されています。 ログをリアルタイムで表示するには、GitHub から Auth0 の Logs Processor をダウンロードできます。Claims Provider に対して SharePoint が行うすべての呼び出しを確認するには、このツールを SharePoint Server で実行してください:

次のステップ

認可

Auth0 から渡されるクレームは、SharePoint での認可にも使用できます。たとえば、Fabrikam HR を含む Role クレームを持つユーザーには、特定のサイトへのアクセス権を付与したり、そのサイトの投稿者に設定したりできます。 例として Azure AD を見てみましょう。この Cloud Directory では、ユーザーはグループに所属でき、David は Fabrikam HR のメンバーです。 David が Azure AD アカウントでログインすると (その接続で Security Groups 属性が有効になっている場合) 、グループ メンバーシップはユーザーのプロファイルの groups 属性に保存されます。 これらのグループを SharePoint で Roles として利用できるようにするには、これを 設定に追加する Rule を Rule で記述する必要があります。このルールは、Fabrikam Intranet (SharePoint) という名前のアプリケーションに対してのみ実行されます。
これにより、groups を含む追加の送信クレーム http://schemas.microsoft.com/ws/2008/06/identity/claims/role が追加され、SharePoint の認可に使用されます。 Claims Provider をインストールする際は、Role クレームが SharePoint に渡されるよう、クレーム マッピング リストに追加する必要があります。
既定では、ユーザーはサイトにアクセスできません。 ここで、その特定のユーザーを SharePoint Group (例: Contributors) に追加する代わりに、Role を SharePoint Group に追加できるようになりました。以下は、“Fabrikam HR” のメンバーを Contributors グループに追加する方法を示した PowerShell スクリプトの例です。
このclaim値をContributorsグループに追加すると、Davidはそのサイトにアクセスし、内容を編集できるようになります。

ユーザープロファイルの同期

既定では、SharePoint は Active Directory 由来のユーザープロファイル情報を同期できます。しかし Auth0 では、ユーザーがさまざまな種類の接続 (ソーシャルからエンタープライズまで) から来る可能性があるため、ユーザープロファイルを同期するには別のアプローチが必要になります。 最初のアプローチとしては、数時間ごとに実行されるタイマー ジョブを作成し、Auth0 の Users Endpoint を照会して、それらのユーザーのプロファイル情報を同期する方法があります。
また、このロジックはユーザーがログインするたびに実行される HttpModule として実装することも可能です。