2017-12-04 4 views
0

現在、ユーザーがAzure AD経由でログインできるようにするASP.NETコアアプリケーションを設計して構築しようとしています。私の目標は、AzureでホストされているWebアプリケーションを使用して、内部/外部のユーザーが会社の紺碧の広告でログインして、プロファイルを使用してアプリケーションの機能にアクセスできるようにすることです。ユーザー登録とAzure AD

私は、ワークフローを実装するために探しています:

ステップ1)ユーザーは、自分の会社の電子メールでログインして、企業のOffice 365ログインして認証します。 (私はこれをASP.NETのコアサンプルプロジェクトを使用して動作させることができました)。

ステップ2)ユーザーが初めての場合は、プロファイルを設定する登録ページが表示されます。プロファイル情報は、内部のSQL Serverデータベースで追跡されます。そのプロファイルは、管理者がプロファイルの構成/有効化を完了するまでロックされます。

手順3)ユーザーが既に登録されている場合、そのユーザーのプロファイルが取得されて読み込まれ、ユーザーが許可されているすべての機能にアクセスできるように、アプリケーションのホームページが読み込まれます。

私は実装ステップ2で立ち往生しています。これは素晴らしい設計ではない可能性があり、Webアプリケーションにアクセスする認証済みユーザのワークフローを改善するためのフィードバックを歓迎します。

歴史の中には、ユーザーが内部的に追跡され登録されているASP.NET 4.5 MVCアプリケーションを作成していましたが(サンプルVisual Studioを使用して生成します)、ステップ1とステップ2を接続する方法を理解できません2 ASP.NETコアとAzure ADを使用する場合。 Azure ADの経験はありません。私はASP.NETの初心者です。

答えて

0

あなたの質問はかなり広いです。

ASP.NET Core Identityをご覧ください。これにより、認証をAzure AD(および他の多くのログインプロバイダ)に委託することができ、プロファイル情報を持つローカルユーザデータベースも使用できます。

標準のEntity Frameworkメソッドを使用してデータクラスを拡張し、データベースに移行を追加すると、ローカルデータベースにプロファイル情報を追加できます。

何らかの理由で、Azure ADとASP.NET Core Identityが統合されたサンプルがないため、 other external providersを見て何が必要かを確認する必要があります。

要するに

、あなたがStartup.csConfigureServices方法でこれらの線との同一フレームワークを追加します。

services.AddDbContext<IdentityDbContext>(options => 
    options.UseSqlServer(
     Configuration.GetConnectionString("IdentityDbConnectionString"))); 

services.AddIdentity<ApplicationUser, IdentityRole>() 
    .AddEntityFrameworkStores<IdentityDbContext>() 
    .AddDefaultTokenProviders(); 

、[開くID Connectを使用してのAzure AD認証を追加します。

services.AddAuthentication() 
    .AddOpenIdConnect(
     o => 
     { 
      o.ClientId = Configuration["AzureAd:ClientId"]; 
      o.Authority = String.Format(
         "https://login.microsoftonline.com/{0}", Configuration["AzureAd:Tenant"]); 
      o.SignedOutRedirectUri = Configuration["AzureAd:PostLogoutRedirectUri"]; 
     }); 
関連する問題