Facebook アプリの認証

Dynamics 365 ポータルは、Facebook ページ タブ のコンテキストで Facebook アプリをホストする機能を備えています。 これは、「Facebook およびASP.Net MVC 表示モードでログイン」などの機能を使用することで達成されます。

前提条件

標準ポータルを設定して開始します。

IIS の構成

標準ポータルのホストに使用されたものと同じ Web サイトが Facebook アプリのポータルのホストにも使用されます。 ただし、この Web サイトは既存のバインディングに加えて Facebook 特有のサイト バインディングにも応答するよう構成されている必要があります。 具体的なサイト バインディングには、Facebook アプリのポータルとして区別するホスト名の値を含んでいる必要があります。 たとえば、contoso.com というドメインからホストされている標準ポータルは、Facebook アプリをホストするための facebook-contoso.com というドメインを指定することができます。

種類 ホスト名 ポート メモ
http contoso.com 80 標準ポータルです。
http facebook-contoso.com 80 Facebook アプリのポータルです。
https facebook-contoso.com 443 安全な Facebook アプリのポータルです。

表示モードの構成

MVC 表示モード機能により、カスタマイズされたユーザー エクスペリエンスをFacebook アプリで表示ができます。 Facebook の表示モードは、次のサイト設定を追加することで有効化されます。

サイト設定の名前 値 (例 - お使いのページ タブの URL と置き換え) メモ
DisplayModes/Facebook/HostName facebook-contoso.com、facebook-* Facebook アプリのポータルのホスト名です。 ワイルドカードを使用できます。

サイト バインディングのテスト

Web ブラウザーの各サイト バインディングによってポータルを表示して、バインディングが正しく機能していることを確認します。 Facebook サイトのバインディングが、他のバインディングとは別のカスタマイズされたビューを表示していることを確認します。

Facebook アプリの設定

  1. Facebook 開発者 サイトに移動して、Facebook アカウントでサインインします。 [マイ アプリ] のドロップダウン メニューで [新しいアプリの追加] ボタンをクリックしてから [スキップしてアプリ ID を作成] をクリックします。
  2. 表示された [新しいアプリ ID の作成] ダイアログで、有効な [表示名]、[名前空間]、および カテゴリの選択 を指定します。これらは最終的に公開時に必要です。 [名前空間] は空白のままにできます。 [アプリの作成] をクリックします。 キュリティ チェック セキュリティ チェック ダイアログも送信します。
  3. ダッシュボードが表示されたら、左側のナビゲーションの [設定] 領域に移動します。
  4. 次の例で示されるフィールドに記入して [ベーシック] フォームを完了します:
表示名 Contoso ポータル
取引先担当者の電子メール administrator@contoso.com
アプリのドメイン portal.contoso.comfacebook-portal.contoso.com

注意

ドメイン値を設定できない場合は、このフィールドをいったん空白のままとして、次のステップを実行して [サイトのURL] 指定してから、このフィールドに戻ります。

  1. [+ プラットフォームの追加] ボタンをクリックして、[プラットフォームの選択] ダイアログから [Web サイト] をクリックします。 サイト URL (例: http://contoso.com) を入力
  2. [+ プラットフォームの追加] ボタンをもう 1 度クリックして、今回は [ページ タブ].をクリックします。 次のフィールドに基づいて、この新しいセクションを入力します:

注意

[ページ タブの URL] には、アプリ ドメインの URL に続く /app/facebook パスが必要です。 ポータルは、このエンドポイントを使用してアプリのポータルを起動します。

  1. [変更の保存] をクリックします。

新しいアプリの [アプリ ID] および [アプリ シークレット] の値を覚えておいてください。 サイト設定を構成する際に、これらの値を使用します。 構成が必要な認証サイトの設定は、次の 2 つです:

Authentication/OpenAuth/Facebook/AppId
Authentication/OpenAuth/Facebook/AppSecret

各サイト設定の値と Web サイトもサイトの設定に追加する必要があります。

注意

Facebook 認証サイトの設定が機能するためには、リサイクルする Web サイトのアプリケーション プールが必要な場合があります。

アプリを公開

  1. [状態と確認] 領域 (設定領域の下) をクリックします。
  2. [状態] タブの最初のオプション、[このアプリとその実際の機能を公開しますか?] を、[はい] に変更します。

Facebook ページに Facebook ページ タブを追加

Facebook ページを持っていない場合は、この手順に従い作成してください ページを作成。 既存のページを使用する場合、現在の Facebook ユーザーには、ページにページ タブを追加する権限が必要です。 Facebook ページのページ タブ機能が有効化されていない場合は、(適切なアプリ IDと「次の」 URL の値の代わりとなる) 特定の URL を参照して有効化する必要があります。 アプリ ID とエンコードされた URL を自分の情報で代用する場合は、以下の URL を使用できます。 更なる詳細については、ページ タブの使用 および URL エンコード を参照してください。

https://www.facebook.com/dialog/pagetab?app_id=0123456789&next=http%3a%2f%2ffacebook-contoso.com%2F

この結果、[ページ タブ] とアプリが格納されている [ページ] を選択するための [ページ タブの追加] ダイアログが表示されます。 [ページ] に戻ると追加された [ページ タブ] のグリッドにアプリが表示されています。 [ページ タブ] をクリックして Facebook ページ内にフレーム化されている Facebook アプリ ポータルを表示します。

アプリ ポータルを更新して Platform for Privacy preferences (P3P) ポリシーを公開

既定では、Internet Explorer で他のホスト ポータルの iFrame に表示されるポータル/アプリ用の サード パーティーの Cookies は作成できません。 これは、ページ タブからホストされている Facebook アプリ ポータルの場合です。 この Cookie のブロックの副作用は、アプリで認証済みセッションの作成や維持ができないことです。 この問題はアプリ ポータルを更新して Platform for Privacy preferences (P3P) ポリシーを公開することで解決します。 これを達成するためのオプションには様々なものがありますが、その中の 1 つは、アプリ ポータルの web.config を更新して カスタム ヘッダー を追加することです。 たとえば、次のようになります。

<configuration>
   <system.webServer>
    <httpProtocol>
      <customHeaders>
         <add name="P3P" value='CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"'/>
      </customHeaders>
    </httpProtocol>
   </system.webServer>
</configuration>

関連項目

Dynamics 365 ポータル認証の構成
ポータル用の認証 ID の設定
ポータル用 OAuth2 プロバイダーの設定
ポータルの Open ID 接続プロバイダーの設定
ポータル用 WS-Federation プロバイダーの設定
ポータルの SAML 2.0 プロバイダーの設定