2017-05-08 7 views
0

According to documentation、マイクロソフトグラフは、AzureのADをv2.0にのみアズールADからトークンをサポートしています、ライブなどの個人のMicrosoftアカウントを持つユーザーを認証するためにマイクロソフトのパーソナルアカウントでのみMicrosoft Graphで認証する方法は?

  • マイクロソフトグラフは、2つの認証プロバイダをサポートしています.comまたはoutlook.comアカウントでは、Azure Active Directory(Azure AD)v2.0エンドポイントを使用します。

  • エンタープライズ(つまり職場または学校)のアカウントでユーザーを認証するには、Azure ADを使用します。

しかし、アズールのAD v2.0の両方のMicrosoftアカウントの種類サポートする新しいエンドポイントである:個人(旧Liveアカウント)と仕事/学校(古典AzureのADアカウントを)。そして、個人アカウントだけに許可を制限する方法は不明です。

アズールADサポートのみ仕事/学校口座。

私のアプリで個人アカウントだけを使用できるようにしたい場合は、どうすればいいですか? MicrosoftパーソナルアカウントのみでMicrosoft Graphで認証する方法(ユーザーが職場/学校のアカウントを使用できないようにする)?

P .:私のアプリで認証にMSALを使用します(重要な場合)。

+1

でありますアカウント。私の理解は正しいのですか? –

+0

@ GauravMantri、yep – 23W

答えて

2

Azure AD v2.0のドキュメントに基づいて、Microsoft Accountsのみをサポートする場合、使用するエンドポイントはhttps://login.microsoftonline.com/consumers/oauth2/v2.0/authorizeです。ここで重要なのはconsumersです。これにより、ユーザーはMicrosoftアカウントを使用して認証するオプションのみを取得できます。

私はGithub example of MSALを取るとしたら、あなたはなるだろう変更は私が正しくあなたの質問を理解していれば、あなたはAzureのAD v2.0のを使用する場合のみ、マイクロソフトへのアクセスを制限したいStartup_Auth.cs

 app.UseOpenIdConnectAuthentication(
      new OpenIdConnectAuthenticationOptions 
      { 
       // The `Authority` represents the v2.0 endpoint - https://login.microsoftonline.com/consumers/v2.0 
       // The `Scope` describes the initial permissions that your app will need. See https://azure.microsoft.com/documentation/articles/active-directory-v2-scopes/      
       ClientId = clientId, 
       Authority = String.Format(CultureInfo.InvariantCulture, aadInstance, "consumers", "/v2.0"), 
       RedirectUri = redirectUri,      
       Scope = "openid email profile offline_access Mail.Read", 
       PostLogoutRedirectUri = redirectUri, 
       TokenValidationParameters = new TokenValidationParameters 
+0

ありがとうございました。今日はこのコードと同様のコードで一日を過ごしました。そして、それは動作しなければならないが、現時点では動作しません。 Azure ADには問題があり、「彼らはそれを修正しようとしている」詳細については、MSAL git - https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/410 – 23W

+1

を参照してください。これは間違いありませんが、コンシューマユーザーのみがアプリケーションにログインできるようにするには、結果のサインイントークンの発行者も検証します。 [こちら](https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2/blob/master/UserSync/App_Start/Startup.Auth.cs#L49-L59)は、アプリに追加の検証を追加することができます。私はあなたの答えを編集することをお勧めしたいと思います。 – dstrockis

関連する問題