2つのフロントエンドとデータベースを備えたWSSに基づく確立されたイントラネットがあります。
現在、すべての認証はNTLMです。
ReportingServicesを統合モードでインストールしました。
RSは、RSがインストールされているWebフロントエンドがトランザクションを処理する限り機能します。
RSのないフロントエンドがリクエストを処理する場合、UNAUTHORIZEDエラーが発生します。
この問題を修正しようとすると、Web検索など(ファームが「ダブルホップ」認証を実行する必要があることによって引き起こされる問題)が暗示されますが、これはNTLMでは発生しません。
したがって、Kerberos認証を受け入れるようにイントラネットファームを構成する必要があります。
私はこれが役に立ったと思いました ガイド しかし、それは私たちが最初から農場を始めているというスタンスを取ります。
では、Kerberosを遡及的に構成することに伴うリスクがあるかどうかを知る必要がありますか? NTLMは、Kerberosを有効にする手順を実行した後も、以前と同じように続行しますか?
ダブルホップを許可するためにKerberos委任を有効にすることにはリスクがあります。基本的に、ユーザーが実際に資格情報を再度入力することなく、IISがユーザーになりすますことを許可します。Windows2000ActiveDirectory環境では、制約のない委任と呼ばれるものだけがあります。基本的には、委任を実行している場所と、委任できる場所を制限することはできません(必要に応じて)。そのような場合、MicrosoftはKerberos委任を使用しないことを強くお勧めします。Windows2003または2008 Active Directoryを使用している場合は、制約付きの委任を使用でき、使用する必要があります。これにより、委任をかなり具体的にすることができます。この場合、リスクが高まりますが、通常、ユーザーが資格情報を再入力したり、サービスアカウントやSQLServerを使用したりすることはありません。ログインはリスクを高める価値があります。
NTLMを継続するかどうかは、状況によって異なります。 Kerberos認証を確立できる場合は、それが使用されます。これには、SPNが間違っている場合など、エラーが返される場合(および、そうあるべきではないと思われる場合)が含まれます。Kerberos認証を使用できない場合にのみNTLMにドロップバックします。とはいえ、Kerberosは新しいセキュリティプロトコルであり、NTLMにはタイムスタンプ(リレー攻撃の防止)、クライアントがサーバーのIDを確認する機能(NTLMでは実行できない)、およびチケットの使用を含まないセキュリティ機能があります。これにより、DCへの認証のための全体的なトラフィックが削減されます。
通常、提案されているとおり、SharePointNTLMからKerberosへの認証の変更を遡及的に行います。 SharePointサイトを確立するとき、DNSの変更が反映されるまでに数日かかり、サービスアカウントにSPNを設定するのにも通常は時間がかかります。
したがって、SPNを設定した後、最初にSPアプリプールの下で実行されているサーバー上に小さなテストサイトを作成します。WIAをオンにして、その中に単一のテストページを配置します。
<%@ Page Language="C#" %>
<script runat="server" language="C#">
void Page_Load(object Sender,EventArgs E)
{
if (User.Identity.IsAuthenticated) {
lblIdentity.Text = User.Identity.Name;
} else {
lblIdentity.Text = "Anonymous";
}
lblImpersonation.Text =
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Test Application</TITLE>
</HEAD>
<BODY>
<FORM id="frmForm1" method="post" runat="server">
<HR width="100%" size="1">
<P>
<ASP:LABEL id="Label1" runat="server">Current Identity:
</ASP:LABEL>
<ASP:LABEL id="lblIdentity" runat="server">Label</ASP:LABEL>
</P>
<P>
<ASP:LABEL id="LABEL3" runat="server">Impersonated Identity:
</ASP:LABEL>
<ASP:LABEL id="lblImpersonation" runat="server">Label</ASP:LABEL></P>
<HR width="100%" size="1">
</FORM>
</BODY>
</HTML>
Fiddlerがアクティブなページを参照し、Kerberosが機能するかどうかを確認します(Fiddlerの[認証]タブで、NTLMとKerberosのどちらを使用しているかがわかります)。
Kerberosがサービスアカウント/サーバー/ URLで機能することがわかったら、先に進んでSharePointで変更を加えます。
両方のレスポンダーに感謝します-両方ともいくつかの素晴らしいアドバイスをしました。
Kerberos用にファームを構成しているときに、途中で発見したいくつかの追加ツールを指摘したいと思います。