Facebook アプリの認証

Dynamics 365 ポータルは、Facebook ページ タブ のコンテキストで Facebook Apps をホスティングすることができます。これは、Facebook や ASP.Net MVC の表示モードのログイン機能などを採用することで実現します。

前提条件

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

IIS の構成

標準ポータルのホストに使用されたものと同じ Web サイトが Facebook アプリのポータルのホストにも使用されます。 ただし、既存のバインディングに加えて、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 の作成 ダイアログ ボックスの結果で、有効な [ディスプレイ名]、[Namespace]、そして [カテゴリーの選択] を指定します (ページのアプリなど)。これは、最終的にアプリを公開する必要があるためです。 [名前空間] は空白のままにできます。 [アプリ作成] を選択します。 同様に セキュリティ チェック (captcha) を送信します。
  3. ダッシュボードにランディング後、左列のナビゲーションの [設定] エリアへ進みます。
  4. 次の例で示されるフィールドに記入して [ベーシック] フォームを完了します:

    • 表示名: 連絡先の電子メール

      Contoso ポータル: administrator@contoso.com

    • 表示名: アプリ ドメイン

      Contoso ポータル: portal.contoso.comfacebook-portal.contoso.com

    注意

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

  5. [+ Platformの追加] にて、Select Platform ダイアログ ボックスから [Website] を選択します。 サイト URL (例: http://contoso.com) を入力

  6. もう一度 [+ Platformの追加] から、今回は [ページ タブ] を選び、次のフィールドに基づいてこの新しいセクションを完成します。

    注意

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

  7. [変更を保存] を選択します。

新しいアプリの [アプリ 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 App ポータルを表示します。

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

既定では、Internet Explorer で他のホスト ポータルの iFrame に表示されるポータル/アプリ用の サード パーティーの Cookies は作成できません。 これは、ページ タブからホストされている Facebook App ポータルの場合です。このクッキー ブロックの予想外な点は、アプリケーションが認証されたセッションを作成して維持することができないことです。 この問題はアプリ ポータルを更新して 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 プロバイダーの設定