2016-05-16 14 views
4

私は、認証と承認を設定しようとしているASP.NET 5(RC1)アプリケーションを持っています。しかし、私は混乱しており、さまざまな認証情報と認可情報がこのプラットフォームに関連してオンラインで圧倒されています。その多くは絶望的に時代遅れになっているか、この特定の使用シナリオには適用されないようです。今は、私が尋ねようとしている質問に正しい用語が使われているかどうかは分かりませんが、私は逃げ出します。Azure AD(b2c)カスタムClaimsIdentityを組み合わせる

私が達成しようとしているのは、ユーザーがAzure AD(B2C?)を使って認証され/許可され、追加のユーザープロファイル情報がデータベースに格納されているシステムです。しかし、コントローラ内のユーザコンテキストには、カスタムClaimsPrincipal/ClaimsIdentityと推定されるものを使用して一貫した方法でアクセスされますか?私はこれが、「認可」属性または同様のものを追加し、ClaimsPrinciple.Current.Claimsにアクセスするのと同じくらい簡単でなければならないと思います。

私は過去にASP.NETアイデンティティを使用しましたが、私が見つけた例の多くはそれを使用していません。ほとんどの場合、単にUseOpenIdConnectAuthenticationミドルウェアを使用しています。私はASP.NETアイデンティティはまだ利用可能だが、私はこのシナリオでは適用されていないと思うことがわかります。私はまた、これを達成するためにカスタムのClaimsIdentityを使用することを提案しているここにいくつかの投稿があることを知っていましたが、最新の有用な例を見つけるのが難しいです。ところで、この「プロファイル」情報の大半は、紺碧の広告にカスタム属性として保存することができますが、一部の情報がアプリケーション内で使用される方法では、すべてが紺色(つまり、EF linq結合など)になることは禁止されています。

私がこのうちのいくつかに近いかどうか教えてください。私はこれがかなり新しいプラットフォームであり、その情報はまばらですが、確かに私はこれらの質問をしている唯一の人ではありません。

答えて

3

優れた記事Identity management for multitenant applications in Microsoft Azureを呼び出すだけです。

多くのご質問が回答されています。

OWINミドルウェアのAuthenticationValidatedイベントでクレームを補強することができます。

ASP.NET IDはクレームベースであり、属性はクレームとして配信されますが、認証はDBにあり、Azure ADのような外部IDPではなく、クレームベースで行われます。

B2CはAzure ADの特別なケースです。自己登録や自己管理が可能な多くの(何百万人もの)外部ユーザーに使用されています。 SSPR。

B2Cでは、通常のAzure ADとは別のテナントを使用しており、ユーザーはO365やSaaSアプリケーションなどにアクセスすることはできません。

+0

ありがとうございます。それを読んだ後、これを見て:https://github.com/aspnet/Identity/blob/ab43154577fe126ef531bb7a11b5eaa03add7bbf/src/Microsoft.AspNet.Identity/PrincipalExtensions.cs#L35-42これは、ClaimTypeと私がしようとしているものに対して、拡張メソッドが適切かもしれません。それについての考えは? – Brandon

+0

はい - おそらくAADと情報からのクレームを組み合わせます。あなたはDBを形成する必要がありますか? – nzpcmad

関連する問題