#前提
.Net Core3.1でWebAPIを開発しており、Windows認証を利用したSSOを実現しようとしています。
フロントエンドはvue.jsでUIを作成しており、ajaxで上記のAPIを利用するという構成になっています。
対象のブラウザはIE11, Microsoft Edge, Google Chromeとしております。
#問題
Microsoft Edgeでは、ブラウザでUIを表示した際にユーザ情報入力のプロンプトが表示されるものの、入力が成功すれば、次回からプロンプトが表示されず、WebAPI側でユーザ情報が正しく取得できます。
Google Chromeに関しては、ユーザ情報入力のプロンプトが表示され、正しい情報を入力してもWebAPI側のAuthorizeが失敗しているようで、ユーザ情報の取得まで確認できていません。
IE11では特にプロンプトは表示されず、Windowsにログインしているユーザの情報がWebAPI側で取得できております。
#やりたいこと
Microsoft EdgeおよびGoogle Chromeでプロンプトを表示させず、Windows認証によるユーザ情報の取得を行いたいです。
ユーザ情報の取得にはstring userName = HttpContext.User.Identity.Name;を利用しています。
.Net CoreのStartup.cs内はWindows認証を使用するために、以下のように記述しています。
C#
1public void ConfigureServices(IServiceCollection services) 2 { 3 4 services.Configure<AppSettings>(Configuration); 5 6 services.AddHttpContextAccessor(); 7 8 services.AddControllers(); 9 10 services.AddAuthentication(IISDefaults.AuthenticationScheme); 11 }
#環境情報
Google Chromeのバージョン
バージョン: 86.0.4240.193(Official Build) (64 ビット)
Microsoft Edgeのバージョン
バージョン 86.0.622.63 (公式ビルド) (64 ビット)
IISの設定
IIS version 10
匿名認証 --- Off
Windows認証 --- On
![
Windows認証のProvider
Negotiate --- 削除
NTLM --- 有効
インターネットオプション
セキュリティ設定 → ローカルイントラネットの設定
ユーザ認証 --- 現在のユーザ名とパスワードで自動的にログオンする
ゾーンへの追加 --- http://localhost
詳細設定 --- 統合Windows認証を使用する*
どのようにしても以下のプロンプトが表示されます。
Chrome
Microsoft Edge
参考にした記事抜粋
1.How to enable Auto Logon User Authentication for Google Chrome
2.Chromium EdgeでWindows認証に失敗する場合の対処方法
どなたかご存知でしたらご教授お願いいたします。
あなたの回答
tips
プレビュー