Windows認証を使用するように構成されたSQLServerがあります。データベース管理者は、ADユーザーとグループを使用して、特定のテーブルとプロシージャに対するアクセス許可を付与/拒否します。
ASP.NET Core WebAPIと通信するWebアプリもあります。これらのアプリは認証にADFSを使用するため、基本的にすべてのユーザーがADに登録されます。
これらのAPIのいくつかでは、認証されたADユーザーに代わってSQL Serverからデータにアクセスしたいので、SQLServer認証を使用できません。また、統合セキュリティモードは、ASP.NETCoreサービスを実行するアカウントのIDを想定するため使用できません。
次の考えは、ユーザーに時間通りになりすましてみる必要があるということでしたが、ADFSトークンをWindowsIdentity
オブジェクトに変換する実用的な例は1つも見つかりませんでした。
それで、私はこれをどのように使うべきですか?誰かが私を正しい方向に向けることができますか?
ADFSの考え方の一部は、意図的にWindows資格情報ではないトークンを提供することです。ドメインを別のサービスと統合してユーザーがログインできるようにしたが、接続を許可したサービスがWindowsの資格情報になりすますことができると想像してみてください。彼らはそれを使ってあなたのネットワークに戻ることができます。
これで、Web APIが十分な権限を持つアカウントで実行されている場合は、ユーザー名に基づいてユーザーになりすますことができます。
そうは言っても、それがデータベースアクセスを保護するための推奨される方法であるとは言えません。実際には、Web APIがそのデータベースにアクセスしてエンドユーザーに情報を提供するためのSQLアカウントを持っている必要があります。
Webアプリがエンドユーザーに代わってADFSに別の偽装トークンを要求するID委任と呼ばれるものを設定できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加