問題タブ [spn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kerberos - asp.net core 3 SSL、Active Directory + Kerberos を使用した HTTP.SYS - SPN に苦労していますか?
Active Directory でアカウントを認証する Http.Sys を使用して、Net Core 3 API を Windows サービス (つまり、IIS を使用しない) として実行しようとしています。基本認証を有効にしたい (開発者が基本認証を要求した .NET 以外の言語をサポートする必要がある) が、利用可能な場合は Windows/Kerberos を許可します。
私はほとんどそこにいます。実際、私は基本的に私が望むすべてを行うサービスを持っています.1つのことを除いて-ケルベロスの代わりにNTLMが使用されているだけです。そのまま本番環境に移行できる可能性がありますが、kerberos を機能させられない理由を理解したいと思います。最後のピースは SPN だと思います。
作成:
スタートアップ クラス:
コントローラ:
ps1スクリプトでnetshを使用してポート20010にセットアップした適切な証明書の代金を支払いました。
ウェブサーバー:
- ドメインに正しく参加している
- netbios 名: mywebserver
- フルネーム: mywebserver.ad.mydomain.com
サービス:
- .net コア 3.1
- ドメイン アカウント「myserviceaccount」で実行
現在、サービス アカウント 'myserviceaccount' には Web サーバーの管理者特権があります。このアカウントに証明書へのアクセス許可を直接付与すれば、それを削除できると思います。それとも、これをすべて機能させるには、システム アカウントとして実行する必要がありますか? ただし、これを行わないことをお勧めします。
アクティブ ディレクトリ:
- ad.mydomain.com
- サーバーの netbios 名: domainserver
- サーバーのフルネーム: domainserver.ad.mydomain.com
そのままで、これはすべてのブラウザー/OS で、サービスを使用するように設定されているすべての言語で正常に機能します。正しくチャレンジし、ドメイン ユーザーに許可し、適切な証明書を表示します。しかし、上記のように、さまざまな認証テスター/フィドラーなどを使用すると、Windows クライアントからアクセスするときに NTLM のみが表示されます。
Web サーバーに次の SPN を設定しようとしました。
setspn -S HTTP/mywebserver.ad.mydomain.com:20010 MYDOMAIN\mywebserver
setspn -S HTTPS/mywebserver.ad.mydomain.com:20010 MYDOMAIN\mywebserver
setspn -S HTTP/mywebserver.ad.mydomain.com:20010 MYDOMAIN\myserviceaccount
setspn -S HTTPS/mywebserver.ad.mydomain.com:20010 MYDOMAIN\myserviceaccount
新しい SPN を試すたびにサービスを再起動し、すべてのブラウザーを完全に終了するようにしました。
これらが正しいかどうかはわかりません (NTLM にフォールバックするため、正しくないと思います!)。これらを mywebserver または domainserver で設定する必要があるかどうかはわかりません。
テストとしてのみスキームを AuthenticationSchemes.Kerberos に設定しようとしましたが、これを行うと、サーバーからまったく応答がありません。
誰かが私が一線を越えるのを手伝ってくれますか? 前もって感謝します!
active-directory - userPrincipalName が上書きされる
サーバーで Kerberos 認証を行うために使用されるサービス アカウントがあります。アカウントが正しく設定され、アカウント用にすべての SPN が正しく作成され、KTAB が作成されました。すべてが期待どおりに機能し、ユーザーは問題なく SSO を使用してこのサーバーにログインできました。数日間正常に動作した後、サーバーはユーザーの認証を停止しました。確認したところ、アカウントの userPrincipalName は、keytab の作成中に通常作成される SPN から変更され、通常のサービス アカウントに戻されていました。アカウントが何らかの方法で SPN をロールバックする方法はありますか? Active Directory の管理者権限がなくても、システムがこの userPrincipalName を変更する方法はありますか?