1

"Microsoft.AspNetCore.Authentication。*"パッケージのサービスを使用して、asp.netコアプロジェクトのAzure AD認証を設定しました。このプロジェクトはAzure App ServiceにWeb Appとして配備される予定です。Asp.NetコアのAzure AD認証

私はAzure AD認証を有効にしていましたが、Azure Portalのアプリケーション設定からWebアプリケーションレベルで同じものを有効にするオプションもあります。

enter image description here

私はオプションが推奨され、その周りに疑問を持っています。 nuGetパッケージで設定されたAzure AD認証を利用していないときには、StartUp.csファイルにOpenId接続サービスをプラグインしていないことがわかります。これらのサービスは、User.Identity.Nameのような認証プロパティを実装する上で重要な役割を果たしていると思います。一方、ポータル対応の認証だけでは、この情報が入力されることはありません。だから、私は、現在のクレーム情報を認可のために活用するなど、ログインしたユーザーの身元を確認してさらに作業をしたいと思っても、ポータルのみの認証ではこれを達成できません。

+0

「ポータルのみ」はOAuthだと思います。 OAuthはサードパーティのログインプロバイダのように扱われるため、アプリケーションに実際のユーザオブジェクトが必要になり、そのログインを関連付けることになります。 OAuthのユーザー情報は、クレームを通じて提供されます。あなたは本質的にユーザーのクレームを使って適切なユーザーオブジェクトを作成/検索し、Twitter、Facebookなどと同様にそのユーザーにサインインします。 –

+0

Chrisに感謝します!受け取ったクレームに基づいてUserオブジェクトを作成できるように思えます。私は、両方のケースでフィドラーを通してレスポンスをチェックし、同じ結果セットを見ることができました。これは、私がnuGetパッケージを介して追加したフレームワークサービスが私にとってそのタスクを単純化し、ユーザーオブジェクトの生成を担当していることを示唆しています。ポータル対応の認証で同じことをしたいのであれば、必要なオブジェクトを設定する必要があります。 –

+0

私は'がAzure ADで働いていましたが、私がOpenIDについて知っていることに基づいて、違いは、ユーザーオブジェクトが完全にOpenIDで外部にあるということです。 'はSSOと機能的に似ていますが、Webサイトは単に認証元のデータを信頼します。 OAuthは違う獣です。それは多くの認証要因の'です。 –

答えて

1

あなたの評価は基本的には正しいです。ポータル対応の認証はアプリケーションの外部で完全に実行され、.NETコアを使用する場合はUser.Identity.Nameを設定できません(その統合レベルはASP.NET 4.xのみで動作します)。

ASP.NET Core NuGetパッケージを使用して、完全な統合を実現することをお勧めします。セットアップがもっと必要ですが、一度作業すれば良い形になり、必要な完全なエンドツーエンドの経験を得ることができます。

ポータル対応のAzure AD認証サポートをご利用になる場合はthis StackOverflow questionをご覧になり、User.Identity.Nameと連携させる方法をご覧ください。

+0

クリスおかげさま!私は既に統合されたコードを持っていますが、私はその2つの違いを理解したいと思っていました。 –