9

私は、自分の組織のアカウント(AD、AAD、O365)で私のWebアプリケーションにログインし、Asp.Net Identityを使用してアプリケーション固有のプロファイルや役割の情報をアプリケーションにローカルに保存したい、私のディレクトリやテナントの土地を汚したくない。Can not/Asp.Net Identityを組織アカウントで使用する必要がありますか?

シナリオが現実的であるかどうかはわかりませんが、それについての情報はほとんど見つかりません。 MVC 4では実行可能でした。空のMVC4 Webアプリケーションを作成し、IDとアクセスツールを使用してフェデレーション認証を設定し、名前テーブルをSimpleMembership(Like thisのように設定)に保存します。

ただし、新しい開発のためにSimpleMembershipよりもAsp.Net Identityを好むしかし、それははるかに困難に見えます。 Visual Studio 2013 RTMでASP.NET Webテンプレートを見ると、個別アカウントテンプレートのビットと組織アカウントテンプレートのビットを組み合わせる必要があります。私はAsp.NetのIDが外部のログイン情報をAspNetUserLoginsテーブルに保存していることを見てきましたが(これは最初にEF6コードで変更できます)、私はClaimsIdentityのどの情報を格納するのか分かりませんベスト(テナントIDと名前の主張?)またはコードのどの時点でOrganizational AccountsテンプレートはMicrosoft.Aspnet.Identityを参照しますが、決してそれを呼び出すようには見えません。

私のシナリオは実行可能ですか? VS2013の最終リリースで構築できるサンプルがありますか? Asp.Net Identityの代わりに独自の実装を使用して役割とプロファイルの情報を格納する方が良いでしょうか?

答えて

0

これは有効なシナリオですが、これに似たものを実装しました。 WAADユーザーの「メタデータ」をローカルリポジトリに保存したいとします。メタデータとは、ローカルリポジトリ内のユーザーをWAADの同じユーザーのエントリに結びつけるために使用できる基本的な識別情報を意味します。ここで私は保存するだろうかだ:

IdentityProvider(この場合はWAAD、)
TenantId(このフィールドのフォーマットは、IDプロバイダーによって異なる可能性が、文字列で十分です)
ユーザーID(再びこのフィールドの形式はidPによって異なることがありますが、文字列は機能します。この例では、テナント内のユーザー間でユニークである限り、名前の主張です。

ClaimsPrincipal/ClaimsIdeから抜け出すntity。 VS 2013が登場する前に私のアプリケーションを実装したので、私は自分自身を転がしましたが、新しい「1つの」ASP.NET IDドキュメントを読んだだけで、かなり拡張可能に見えて、それと一緒に行くのが良いかもしれません。さらに、異なるストレージプロバイダ(リレーショナルデータベースだけでなく)を接続することもできます。

+0

これは私がこの質問に答えたときに考えたものです。 しかし、私は数週間それを試して、常に互換性の問題につまずいた。私はすべての試みを覚えていませんが、 "1つの" ASP.Net IDはカバーの下でOWINを使います。そして、Microsoft.IdentityModel.Clients.ActiveDirectory(WAAD用)も使用するアプリケーションで参照すると、すぐに機能が分かりません。 私は自分のプロフィール/メンバーシップストアに戻りました。あなたはもっと運があれば聞いてうれしいです。 ところで、派生したClaimsAuthenticationManagerは、開始するのに最適な場所です。 http://msdn.microsoft.com/en-us/library/windowsazure/dn385717.aspx – flip

関連する問題