誰かがWindowsサービスプリンシパル名(SPN)を簡単に説明してもらえますか?


28

私はサービスプリンシパル名に数回取り組んでいますが、Microsoftの説明だけでは不十分です。ドメインで動作するようにIISアプリケーションを構成していますが、私の問題の一部は、サイトをホストしているアプリケーションプールを実行しているWindowsサービスアカウントhttp固有のSPNを構成する必要に関連しているようです。

これにより、サービスタイプ(MSSQL、http、host、termsrv、wsmanなど)、Kerberos認証、Active Directoryコンピューターアカウント(PCName $)、Windowsサービスアカウント、SPN間の関係が完全には得られないことに気付きました。 、およびサービスにアクセスするために使用しているユーザーアカウント。

誰かが説明を単純化しすぎずにWindowsサービスプリンシパル名(SPN)を説明してもらえますか?

経験豊富なシステム管理者/開発者と共鳴する創造的な類推に対するボーナスポイント。


4
Bill Bryantの「認証システムの設計:4つのシーンの対話」が、創造的な類推の要求を満たすかどうかを確認してください。
yrk

回答:


33

サービスプリンシパル名はからの概念ですKerberos。これは、認証ドメイン内の特定のホストによって提供される特定のサービスの識別子です。SPNの一般的な形式はservice class/ fqdn@ REALM(例IMAP/mail.example.com@EXAMPLE.COM)です。@の形式でユーザーを識別するユーザープリンシパル名もあります(または/ @ 、発言の関係を識別する)。緩くサービスのためのプロトコルとして考えることができます。Windowsに組み込まれているサービスクラスのリストは、Microsoftのこの記事に記載されていますuserREALMuser1user2REALMservice class

すべてのSPNはに登録されなければならないREALMキー配布センター(KDC)と発行サービスキーをsetspn.exeで利用可能なユーティリティ\Support\ToolsのインストールメディアをWindows上またはリソースキットのダウンロードとフォルダ、コンピュータやADで他のアカウントへのSPNの操作する割り当て。

ユーザーが認証にKerberosを使用するサービス(「Kerberos」サービス)にアクセスすると、KDC(Windows環境ではActive Directoryドメインコントローラー)から取得した暗号化されたチケットを提示します。チケットはサービスキーで暗号化されます。チケットを復号化することにより、サービスは指定されたSPNのキーを所有していることを証明します。Windowsホストで実行されているサービスはADコンピューターアカウントに関連付けられたキーを使用しますが、Kerberosプロトコルに準拠するには、ホストで実行されている各kerberizedサービスのActive Directoryに追加する必要があります。Active Directoryでは、SPNはservicePrincipalNameホストのコンピューターオブジェクトの属性に格納されます。

詳細については、Microsoft TechNetのSPNに関する記事Ken HornsteinのKerberos FAQを参照してください。


4
+1-あなたはこれを書くことに私を打ち負かし、あなたのもので素晴らしい仕事をしたので、私はあなた自身の答えを編集するのではなく、いくつかの詳細を追加することを選んだ。
エヴァンアンダーソン

@yarek最後の二つのリンクは、2019年1月29日の時点では壊れている
アンドリュー・ワトソン

10

yarekの答えは素晴らしかったので、私はそれを支持しましたが、トピックに関するWindows固有の情報をもう少し提供したかったのです。これは私にとって非常に興味のあるトピックだからです。

この男はそれを説明するのに素晴らしい仕事をしたように感じました、そして彼の記事を読むことをお勧めしますが、ここにあなたの質問にぴったりの特に簡潔な段落があります:

「サービスプリンシパル名は、アカウントのセキュリティコンテキストで実行されるサービスを定義します。たとえば、コンピューターが持つサービスの一部はファイルサーバー/ CIFS(Common Internet File System)で、ドメインコントローラーの場合はLDAPを持ちますSPN、およびActive DirectoryレプリケーションSPN、およびFRS SPN。サービスプリンシパル名は、そのユーザーのセキュリティコンテキストでサービスまたはアプリケーションが実行されている場合、ユーザーアカウントで定義できます。サービスプリンシパル名は、Active Directoryフォレスト全体で一意でなければならないことを理解してください。」

記事全体はこちらです:http : //blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.