none
ASP.NET form認証 enableCrossAppRedirectsが有効にならない RRS feed

  • 質問

  • いつも参考にさせて頂いております。watotoroです。

    解消できない問題が発生しており、皆様の知恵を拝借させてください。

    アプリケーション間のフォーム認証

    https://msdn.microsoft.com/ja-jp/library/eb0zx8fc.aspx

    を参考にform認証で別ページに認証なしで利用させようとしています。

    サイト構成は

    Site1:http//[IP1]/aaa/ (vs2012)

    Site2:http//[IP2]/bbb/ (vs2015)

    となっており、どちらのwebconfigも以下で同じにしている状況です。

      <system.web>
        <compilation debug="false" strict="true" explicit="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" />

        <authentication mode="Forms">
          <forms loginUrl="login.aspx" defaultUrl="http//[IP1]/aaa/xxx/yyy.aspx" name="ASPXFORMSAUTH" slidingExpiration="true" timeout="60" enableCrossAppRedirects="true" protection="All" path="/"></forms>
        </authentication>
        <authorization>
          <deny users="?" />
        </authorization>
        <machineKey
          validationKey="KEY1"
          decryptionKey="KEY2"
          validation="SHA1" />
      </system.web>

    設定項目が不足しているのか、site1でログイン後、site2のページを開こうとした場合、

    強制的にloginUrlにリダイレクトされてしまいます。

    何か設定が不足している、又は他に設定が必要なのでしょうか。

    ご授受頂ければ幸いです。

    ※link投稿できない為http後の:は省略しています

    • 移動 星 睦美 2016年11月14日 1:19 Visual Basic から
    2016年11月14日 1:03

回答

すべての返信

  • Form認証のアプリケーション間で云々というのは、基本的に同一ホストでアプリケーションが異なる場合の話です。

    たとえば以下のような場合の話です。

    Site1:http//[IP1]/aaa/ (vs2012)

    Site2:http//[IP1]/bbb/ (vs2015)

    ホスト名自体が異なる場合、そもそもクッキーが共有できていないため、認証情報をそのまま共有することはできません。

    2016年11月14日 1:38
  • なちゃ様、早速の回答ありがとうございます。

    >ホスト名自体が異なる場合、そもそもクッキーが共有できていないため、認証情報をそのまま共有することはできません。

    ホストを分ける必要がある場合には認証サーバーを設定し、フォーム認証を使用せず

    自前で認証構築する必要がある

    ということでしょうか。

    2016年11月14日 2:15
  • ASP.NET 組み込みのフォーム認証機能を使ってのクロスドメイン認証はできません。(質問者さんが参考にされている記事「アプリケーション間のフォーム認証」は同じドメイン、即ち認証クッキーが届く範囲、が前提です)

    ただ、質問者さんと同様な課題を抱えている人は多いらしく、asp.net cross domain authentication などをキーワードにググるといくつか事例が見つかります。

    自分がググって調べて興味を引かれた記事を紹介しておきます。

    Single Sign On (SSO) for cross-domain ASP.NET applications: Part-I
    http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applic

    Single Sign On (SSO) for cross-domain ASP.NET applications: Part-II
    http://www.codeproject.com/Articles/114484/Single-Sign-On-SSO-for-cross-domain-ASP-NET-appl

    他にもいろいろ見つかると思いますので、調べてみてください。

    • 回答としてマーク watotoro 2016年11月14日 6:46
    2016年11月14日 5:29
  • SurferOnWww様 ご回答頂きありがとうございます。

    自分自身の前提条件の確認不足、検索能力の低さを痛感させられます。

    英語圏の情報も把握できるようにならないといけませんね。

    対策は別として、原因と今後の対応の糸口がつかめましたので、質問はCLOSE致します。

    なちゃ様、SurferOnWww様ご回答頂きましてありがとうございました。

    2016年11月14日 6:46