質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

web.config

web.configはASP.NETウェブアプリケーションの主な設定や構成ファイルを格納するXMLファイルです。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

0回答

5135閲覧

IISでの認証設定(エラー401.2)対策について

NewEntry

総合スコア0

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

web.config

web.configはASP.NETウェブアプリケーションの主な設定や構成ファイルを格納するXMLファイルです。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2020/12/07 00:44

編集2020/12/07 04:10

前提・実現したいこと

WebサービスアプリをVB.netで作成し、このアプリによってDB操作を行うことを予定しています。

OS:WindowsServer2019 Datacenter
IIS:10.0
DB:SQLServer2017

発生している問題・エラーメッセージ

IISにて認証を行う際に、エラーコード401.2が発生し認証に失敗するためDB接続ができません。

IISでは認証設定をWindows認証として、WebサービスアプリのWeb.configでも認証設定をWindows認証と
しています。
OSにおいてもサーバマネージャにて役割と機能の追加にてWindows認証を行うための追加設定を行って
いますため原因がどこにあるのかの見当がつかない状況です。

このような場合、まずここを確認すべきですとか、気を付ける点が多々あるものと思います。
ヒントをアドバイスいただきたく、よろしくお願いいたします。


その後、認証確認方法について調査を行い下記URLを参考にしてみました。

リンク内容
結果はID/パスワードの入力を求めるダイアログが表示され、OSのadministratorとパスワード
の入力を行いますと、ログイン名がブラウザに表示されました。
ただ、WEBサービスアプリを経由しての接続では依然としてエラー401.2が発生します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/12/07 02:32 編集

ASP.NET でホストしている Web サービスの話であれば、ASP.NET のタグをつけてください。そして問題を再現できるコード(サンプルで可)をアップしてください。 参考にしている記事は URL の文字列を貼り付けるだけでなく、リンクを張ってください。
退会済みユーザー

退会済みユーザー

2020/12/07 04:54 編集

参考サイトへのリンクは張ってもらえたようですが、ASP.NET のタグは付けないということは ASP.NET は関係ないということですか? では何なのでしょう? web.config のタグはあるけど・・・
NewEntry

2020/12/07 05:47

申し訳ございません。 緊急で別件対応中につき、リンクのみ更新させていただきました。
NewEntry

2020/12/07 06:30

ASP.NETのタグが具体的に分かりませんでしたので、Web.configの内容を記します。 また、問題を再現できるコードにつきましては、どの箇所で問題が発生しているのかを特定できない 状況ですので割愛いたします。 <?xml version="1.0"?> <configuration> <system.web> <!-- ダイナミック デバッグ コンパイル デバッグ シンボル (.pdb 情報) をコンパイルされたページに挿入するには、compilation debug="true" に設定します。これにより、実行速度の遅い大きなファイルが作成されるため、 デバッグするときのみこの値を true に設定して、それ以外は常に false に設定してください。詳細については、 ASP.NET ファイルに関するドキュメントを参照してください。 --> <compilation defaultLanguage="vb" debug="true" targetFramework="4.0"/> <!-- カスタム エラー メッセージの設定 カスタム エラー メッセージを有効にするには customErrors mode="On"または "RemoteOnly" にします。無効にする場合は "Off" に設定します。 処理する各エラーに <error> タグを追加してください。 "オン" 常にカスタム (理解しやすい) メッセージを表示します。 "オフ" 常に詳細な ASP.NET エラー情報を表示します。 "リモートのみ" ローカル Web サーバーで実行していないユーザーに対してのみ、 常にカスタム (理解しやすい) メッセージを表示します。この設定は、セキュリティを考慮して、アプリケーションの詳細がリモートのクライアントに 表示されないようにする推奨された設定です。 --> <customErrors mode="RemoteOnly"/> <!-- 認証の設定 このセクションは、アプリケーションの認証ポリシーを設定します。使用できるモードは、"Windows"、 "Forms"、"Passport" および "None" です。 "None" 認証が実行されません。 "Windows" IIS はアプリケーションの設定に従って認証 (基本、ダイジェスト、または統合 Windows) を実行します。匿名アクセスは IIS では無効でなければなりません。 "Forms" ユーザーが資格情報を入力するカスタム フォーム (Web ページ) を提供してください。 そして、アプリケーションで認証してください。ユーザーの資格情報のトークンは Cookie に保存されています。 "Passport" 認証は、単一のログオンおよびメンバ サイトのコア プロファイル サービスを提供する Microsoft により提供される管理認証サービスを使用して実行されます。 --> <authentication mode="Windows"/> <!-- 権限の設定 このセクションは、アプリケーションの権限のポリシーを設定します。この設定により、ユーザーまたはロールによるアプリケーション リソースへのアクセスを許可したり、 拒否したりできます。ワイルドカード : "*" は全員を、"?" は匿名 (未認証) ユーザーを表します。 --> <authorization> <allow users="*"/> <!-- 全ユーザーへの許可 --> <!-- //////////////////////////////////////////////////////////////////// // 接続メソッド設定(システム用設定) //////////////////////////////////////////////////////////////////// --> <allow verbs="POST" users="*"/> <deny verbs="GET" users="*"/> <!-- <allow users="[ユーザーのコンマ区切り一覧]" roles="[ロールのコンマ区切り一覧]"/> <deny users="[ユーザーのコンマ区切り一覧]" roles="[ロールのコンマ区切り一覧]"/> --> </authorization> <!-- アプリケーション レベルのトレース ログの設定 アプリケーション レベルのトレースは、アプリケーション内の全ページのトレース ログ出力を有効にします。 アプリケーション トレース ログを有効にするには、trace enabled="true" に設定します。pageOutput="true" に設定された場合、 トレース情報が各ページの下に表示されます。それ以外の場合は、 Web アプリケーション ルートから "trace.axd" ページを参照してアプリケーション トレースを 表示できます。 --> <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/> <!-- セッション状態の設定 既定では、ASP.NET は Cookie を使用して、要求がどのセッションに属するかを識別します。 Cookie が使用できない場合は、URL にセッション識別子を入力することで、セッションを見つけることができます。 Cookie を有効にするには、sessionState を cookieless="false" に設定してください。 --> <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="180"/> <!-- グローバリゼーション このセクションはアプリケーションのグローバリゼーション設定を行います。 --> <globalization requestEncoding="utf-8" responseEncoding="utf-8"/> <xhtmlConformance mode="Legacy"/> <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> </system.web> <!-- //////////////////////////////////////////////////////////////////// // アプリケーション動作設定(システム用設定) //////////////////////////////////////////////////////////////////// --> <appSettings> <!-- //================================================================== // web.configバージョン //================================================================== --> <add key="ConfigVersion" value="1.01"/> <!-- //================================================================== // システムログ出力設定 //================================================================== --> <!-- システムログ設定 --> <add key="SystemLogOutput" value="True"/> <!-- システム動作ログ出力 --> <add key="SystemLogLevel" value="4"/> <!-- システム動作ログ出力(現在:LOGLEVEL_MAXのみ) --> <add key="SystemLogFile" value="C:\NAS\Asp\HttpSqlServerLog.txt"/> <!-- ログ出力フォルダ --> <!-- //================================================================== // DB接続設定 //================================================================== --> <!-- 暗号化キー --> <add key="CryptKey" value="aaaa"/> <!-- 接続DBサーバ設定(0) --> <add key="DbServer0" value="xxxx.rds.amazonaws.com"/> <add key="DbName0" value="NAS_COMMON"/> <!-- 接続DB --> <add key="DbUserId0" value="NAS"/> <!-- 接続ユーザID --> <add key="DbPassword0" value="xxxxx"/> <!-- 接続ユーザパスワード --> <add key="DbTimeout0" value="120"/> <!-- 接続タイムアウト時間(秒) --> <!-- 接続DBサーバ設定(1) --> <add key="DbServer1" value=""/> <add key="DbName1" value=""/> <!-- 接続DB --> <add key="DbUserId1" value=""/> <!-- 接続ユーザID --> <add key="DbPassword1" value=""/> <!-- 接続ユーザパスワード --> <add key="DbTimeout1" value=""/> <!-- 接続タイムアウト時間(秒) --> <!-- 接続DBサーバ設定(2) --> <add key="DbServer2" value=""/> <add key="DbName2" value=""/> <!-- 接続DB --> <add key="DbUserId2" value=""/> <!-- 接続ユーザID --> <add key="DbPassword2" value=""/> <!-- 接続ユーザパスワード --> <add key="DbTimeout2" value=""/> <!-- 接続タイムアウト時間(秒) --> <!-- 接続DBサーバ(ログ出力用) --> <add key="LogDbServer" value="xxxx.rds.amazonaws.com"/> <add key="LogDbName" value="NAS_COMMON"/> <!-- 接続DB --> <add key="LogDbUserId" value="NAS"/> <!-- 接続ユーザID --> <add key="LogDbPassword" value="xxxxx"/> <!-- 接続ユーザパスワード --> <add key="LogDbTimeout" value="120"/> <!-- 接続タイムアウト時間(秒) --> <!-- //================================================================== // SQLログ出力設定 //================================================================== --> <!-- ログ出力有効設定 --> <add key="SqlDbLogOutput" value="False"/> <!-- DB型SQL確認ログ出力 --> <add key="ErrDbLogOutput" value="True"/> <!-- DB型エラーログ出力 --> <add key="SqlTextLogOutput" value="False"/> <!-- テキスト型SQL確認ログ出力 --> <add key="ErrTextLogOutput" value="True"/> <!-- テキスト型エラーログ出力 --> <!-- ログ出力フォルダ --> <add key="SqlLogDir" value="C:\NAS\Asp\SqlLog"/> <!-- SQLログ出力フォルダ --> <add key="ErrLogDir" value="C:\NAS\Asp\ErrLog"/> <!-- エラーログ出力フォルダ --> </appSettings> </configuration>
退会済みユーザー

退会済みユーザー

2020/12/07 06:56

web.config を見て自分がわかることは Windows 認証が有効になっていることぐらいです。Windows 認証が通らないことが 401.2 エラーの原因であれば IIS マネージャーで当該サイトの「匿名認証」を有効にして試してみたらどうなりますか? あとはエラーメッセージでググって調べてみることぐらいしか提案できることはないです。日本語のキーワードでヒットしなければ、英語にキーワード例えば「HTTP 401.2 Unauthorized: Logon Failed Due to Server Configuration」を使ってみるとか。 Error Message: HTTP 401.2 - Unauthorized: Logon Failed Due to Server Configuration with No Authentication https://support.microsoft.com/ja-jp/help/253667/error-message-http-401-2-unauthorized-logon-failed-due-to-server-confi 他にもいろいろヒットすると思いますので自分でも調べてください。
NewEntry

2020/12/07 07:33

ご教示ありがとうございます。 >IIS マネージャーで当該サイトの「匿名認証」を有効にして試してみたらどうなりますか? エラーコード500の表示となり接続に至りませんでした。(状況変わらず) キーワードを適宜変更して検索してはいますが解決には至っておりません。
退会済みユーザー

退会済みユーザー

2020/12/07 07:39

> エラーコード500の表示となり接続に至りませんでした。(状況変わらず) いえ、状況は変わってます。前は Web サービスでの処理が始まる前にアクセス拒否された感じですが、500 エラーになるということはアクセスは許されたが Web サービスで要求の処理を行う際に例外がスローされたということのようです。
NewEntry

2020/12/07 07:55

ご回答ありがとうございます。 エラーコード500の意味が正確には分からず、状況の進展がない認識でおりました。 元々、Webサーバ(IIS)とDBサーバが1台の環境であったものをAWS環境に移行することで WebサーバとDBサーバが独立した環境となりました。 従前は特にIISの各種設定を意識していないとのこと(前任者談)でしたので、注意が足りて おりませんでした。
NewEntry

2020/12/07 07:58

なお、エラーコード500が発生した際のログは以下の通りです。 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken 2020-12-07 07:56:21 192.168.200.11 POST /HttpSqlServer/HttpSqlServer.asmx/Execute - 80 - 192.168.0.83 - - 500 0 121 20143 2020-12-07 07:56:32 192.168.200.11 POST /HttpSqlServer/HttpSqlServer.asmx/Execute - 80 - 192.168.0.83 - - 500 0 0 66
退会済みユーザー

退会済みユーザー

2020/12/07 08:21

あまり詳しくはなさそうですね。とすると、ここのような Q&A サイトで解決できることではなさそうですので、Face-to-Face で相談できる上司・先輩・ネットワーク管理者に相談してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問