简体   繁体   English

跨多个域的SharePoint(WSS)身份验证

[英]SharePoint (WSS) Authentication Across Multiple Domains

First, a little background: We have an intranet site based on WSS 3.0 that is hosted on a server in DOMAIN_A.LOCAL and set up to use Integrated Windows Authentication to authenticate users against Active Directory user accounts of DOMAIN_A.LOCAL . 首先,我们有一个基于WSS 3.0的Intranet站点,该站点位于DOMAIN_A.LOCAL中的服务器上,并设置为使用集成Windows身份验证根据DOMAIN_A.LOCAL的 Active Directory用户帐户对用户进行身份验证。

This setup works just fine for users who are logged into Windows using an AD account from DOMAIN_A.LOCAL , but when users try to access the site from a PC logged into Windows using an AD account from a different domain (ie DOMAIN_B.LOCAL ) the following problems occur: 此设置适用于使用DOMAIN_A.LOCAL中的AD帐户登录Windows的用户,但是当用户尝试使用来自其他域(即DOMAIN_B.LOCAL )的AD帐户从登录到Windows的PC访问该站点时发生以下问题:

  1. The user must manually enter their credentials as DOMAIN_A\\UserName rather than just UserName because otherwise, Internet Explorer automatically inserts DOMAIN_B and causes authentication to fail. 用户必须手动输入其凭据作为DOMAIN_A \\ UserName而不仅仅是UserName ,否则,Internet Explorer会自动插入DOMAIN_B并导致身份验证失败。

  2. Once logged in, if the user does something that requires the browser to pass their authentication through to a client app, such as clicking on a Microsoft Office document in a document library in order to open it for editing, it appears that invalid credentials (presumably DOMAIN_B ) are passed automatically, thus forcing the user to manually enter their DOMAIN_A credentials again. 登录后,如果用户执行了某些操作,要求浏览器将其身份验证传递到客户端应用程序,例如单击文档库中的Microsoft Office文档以打开它进行编辑,则会显示无效凭据(可能是DOMAIN_B )会自动传递,从而迫使用户再次手动输入其DOMAIN_A凭据。

My question, then is this: 我的问题是,这是:

Is there any way to implement a "default domain" type of behavior when using Integrated Windows Authentication (as can be done when using Basic clear text authentication) so that if a user on DOMAIN_B does not enter a domain before their user name, DOMAIN_A is inserted automatically for them? 使用集成Windows身份验证时是否有任何方法可以实现“默认域”行为(如使用基本明文身份验证时可以这样做),以便DOMAIN_B上的用户在用户名之前不输入域, DOMAIN_A是自动插入吗?

Of course, I realize this deployment may be fatally flawed, so I am also open to suggestions for a different implementation. 当然,我意识到这种部署可能存在致命缺陷,因此我也愿意接受不同实现的建议。

In summary, the main problem stems from two different kinds of users needing to access the same content on one SharePoint site. 总之,主要问题源于两个不同类型的用户需要访问一个SharePoint站点上的相同内容。 The users in DOMAIN_A all have their own full-time workstations where they log into Windows as themselves. DOMAIN_A中的用户都有自己的全职工作站,他们自己登录Windows。 The users in DOMAIN_B unfortunately have to use shared computers that are logged on using generic "kiosk" type accounts that have no permissions in SharePoint -- thus the requirement that the DOMAIN_B users must provide their credentials on demand when accessing a given page in SharePoint. 遗憾的是, DOMAIN_B中的用户必须使用使用在SharePoint中没有权限的通用“kiosk”类型帐户登录的共享计算机 - 因此要求DOMAIN_B用户在访问SharePoint中的给定页面时必须按需提供其凭据。 I would like to preserve the convenience of the Integrated Windows Authentication for the "static" users of DOMAIN_A while minimizing the amount of manual authentication that the "kiosk" users in DOMAIN_B have to endure. 我想为DOMAIN_A的“静态”用户保留集成Windows身份验证的便利性,同时最大限度地减少DOMAIN_B中 “kiosk”用户必须忍受的手动身份验证的数量。

DOMAIN_A.LOCAL must trust DOMAIN_B.LOCAL , otherwise users from DOMAIN_B.LOCAL will receivie a credential prompt since their DOMAIN_B.LOCAL account is unknown within DOMAIN_A.LOCAL . DOMAIN_A.LOCAL必须信任DOMAIN_B.LOCAL ,否则来自DOMAIN_B.LOCAL的用户将接收凭据提示,因为他们的DOMAIN_B.LOCAL帐户在DOMAIN_A.LOCAL中未知。

Given that DOMAIN_B.LOCAL is for kisok users, you probably do not want to trust this domain. 鉴于DOMAIN_B.LOCAL适用于kisok用户,您可能不希望信任此域。

You will need to extend the web application into a new zone and either implement forms based authentication, or use Windows Authentication with a reverse proxy such as ISA server. 您需要将Web应用程序扩展到新区域,并实现基于表单的身份验证,或使用Windows身份验证与反向代理(如ISA服务器)。

I was searching the internet for SharePoint user accounts with multiple domains and came across an interesting tool called Microsoft Front End Identity Manager. 我在互联网上搜索具有多个域的SharePoint用户帐户,并且遇到了一个名为Microsoft Front End Identity Manager的有趣工具。 Have you heard of it? 你听说过吗?

So… If your using a multi forest deployment where user accounts are distributed across two or more forests. 所以......如果您使用多林部署,其中用户帐户分布在两个或多个林中。 This is often seen when two organizations merge and need to access domains from both organizations. 当两个组织合并并需要从两个组织访问域时,通常会出现这种情况。 You can use the distinguished name (ms-ds-Source-Object-DN) attribute in the user object to create an association between the user accounts. 您可以使用用户对象中的可分辨名称(ms-ds-Source-Object-DN)属性在用户帐户之间创建关联。 In this association one account is considered the primary account and the others are the alternates of the primary account. 在此关联中,一个帐户被视为主帐户,其他帐户被视为主帐户的备用帐户。 There is a tool called Microsoft Front End Identity Manager to create this relationship between user account objects. 有一个名为Microsoft Front End Identity Manager的工具可在用户帐户对象之间创建此关系。 One feature of Microsoft Front End Identity Manager is that SharePoint server can maintain a list of alternate accounts by which the profile is identified. Microsoft前端Identity Manager的一个功能是SharePoint服务器可以维护用于标识配置文件的备用帐户的列表。 When you use either account to find the profile of a user, SharePoint server returns the primary account profile example (domain\\username). 当您使用任一帐户查找用户的配置文件时,SharePoint服务器将返回主帐户配置文件示例(域\\用户名)。

可能不是您想听到的内容,但您可能希望采用基于表单的身份验证。

Unfortunately if you want to retain the Microsoft Office integration (which is what it seems you want), you will have to stick with Windows Authentication. 不幸的是,如果您想保留Microsoft Office集成(这是您想要的),您将不得不坚持使用Windows身份验证。 Using Forms Authentication will remove most of the features you seem keen to preserve, there is more information here . 使用表单身份验证将删除您似乎希望保留的大多数功能, 此处有更多信息。

Ideally you want to use the suggestion that Jason mentioned, which would be some sort of reverse proxy. 理想情况下,您希望使用Jason提到的建议,这将是某种反向代理。 However there would probably be a cost implication if you don't already have something like ISA server, so in reality it's probably best for the DOMAIN_B's to learn to type DOMAIN_B\\ before their username. 但是,如果您还没有类似ISA服务器的东西,可能会有成本影响,所以实际上DOMAIN_B可能最好学会在用户名之前键入DOMAIN_B \\。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM