Грунт основные элементы безопасности SharePoint / Избежать распространенных ошибок

ОБНОВЛЕНИЕ 12/18/07: Пол Liebrand в статье некоторые технические последствия удаления или изменения параметров по умолчанию имена групп (а увидеть его комментарий ниже).

Обзор:

SharePoint безопасность легко настраивать и управлять. Однако, Он оказался трудным для некоторых администраторов впервые реально обернуть свои руки вокруг его. Не только это, Я видел некоторые администраторы прийти к пониманию идеальным в понедельник только потеряли его в пятницу, потому что они не должны делать любые конфигурации в время. (Я признаю, я с этой проблемой). Эта запись в блоге, надеюсь, обеспечивает полезные Азы безопасности SharePoint и указывает на некоторые конфигурации рекомендации по безопасности.

Важное примечание:

Это описание на основе из коробки безопасности SharePoint. Мой личный опыт ориентировано вокруг Мосс, так что там могут быть некоторые Мосс конкретные вещи здесь, но я считаю, что это точно для WSS. Я надеюсь, что кто-нибудь увидеть любые ошибки или упущения укажет это в комментариях или Напишите мне. Я буду делать исправления после спешки.

Основы:

Для целей настоящего обзора, Существует четыре основных аспекта безопасности: пользователи/группы, защищаемые объекты, уровни разрешений и наследование.

Пользователи и группы перерыв вплоть до:

  • Индивидуальные пользователи: Извлечено из активного каталога или созданные непосредственно в SharePoint.
  • Группы: Непосредственно подключенные из active directory или созданный в SharePoint. Группы представляют собой коллекцию пользователей. Группы являются глобальными в семействе сайтов. Они никогда не «привязаны" для конкретного защищаемого объекта.

Защищаемые объекты перерыв вплоть до по крайней мере:

  • Сайты
  • Библиотеки документов
  • Отдельные элементы в списках и библиотеках документов
  • Папки
  • Различные параметры резервного контроллера домена.

Там другие защищаемые объекты, но вы получаете изображение.

Уровни разрешений: Комплект гранулированном / низкий уровень доступа права, которые включают такие вещи, как создание, чтение и удаление записей в списках.

Наследование: По умолчанию сущности наследуют параметры безопасности от их содержащего объекта. Дочерние сайты наследуют разрешения от их родительского. Библиотеки документов наследуют от своего сайта. И так далее.

Пользователи и группы связаны с защищаемыми объектами через уровни разрешений и наследование.

Наиболее важные правила безопасности для понимания, Всегда 🙂 :

  1. Группы — это просто наборы пользователей.
  2. Группы являются глобальными семейства узлов (т.е.. нет такого понятия, как группы, определенные на уровне узла).
  3. Имя группы не выдержать, группы не, в и себе, у любой конкретный уровень безопасности.
  4. Группы имеют безопасности в контексте конкретного защищаемого объекта.
  5. Может назначить различные уровни разрешений для той же группы для каждого защищаемого объекта.
  6. Политики веб-приложений перекрывают все это (Смотрите ниже).

Потерян в море списки пользователей и групп администраторов безопасности могут всегда полагаться на эти аксиомы управлять и понять их конфигурации безопасности.

Наиболее распространенные ошибки:

  • Имена групп ошибочно подразумевают разрешение: Из коробки, SharePoint определяет набор групп, имена которых подразумевает присущие уровень безопасности. Рассмотрим группу «Участник». Знакомы с SharePoint безопасности можно также взглянуть на это имя и предположить, что любой член этой группы может «содействовать" для любого сайта/списка/библиотеки на портале. Это может быть правдой, но не потому, что имя группы бывает «участник». Это только справедливо из коробки, потому что группа предоставила уровень разрешений, который позволяет добавлять/редактировать/удалять содержимое на корневом сайте. Через наследование, Авторы"" Группа может также добавлять/редактировать/удалять содержимое в каждый раздел сайта. Один можно «перерыв" цепи наследования и изменить уровень разрешений разделом такие что члены так называемой "Contributor" Группа не может вносить на всех, но только читать (Например). Это не будет хорошей идеей, Очевидно, что, Поскольку было бы весьма запутанной.
  • Группы не определены на уровне узла. Это легко спутать с помощью пользовательского интерфейса. Корпорация Майкрософт предоставляет удобную ссылку на пользователя/группы управления через каждый сайт «люди и группы" ссылка. Это легко поверить, что когда я на сайте «xyzzy" и создать группу через xyzzy людей и групп связи, которые я только что создал группу, которая существует только в xyzzy. Это не так. Я на самом деле создал группу для всего семейства сайтов.
  • Членство в группах не отличалась сайт (т.е.. Это тот же везде, где используется группа): Учитывать группу "владелец" и два, "HR" и «Логистика». Было бы нормальным, чтобы думать, что два отдельных лиц будет собственный эти сайты — HR-владелец и логистика. Пользовательский интерфейс делает его легким для администратору безопасности ни этот сценарий. Если я не знаю лучше, Я могут получить доступ к людям и группам ссылки через сайт HR, Выберите владельцев"" группы и добавить мой HR владельца в этой группе. Спустя месяц, Логистика приходит на линии. Получить доступ к людям и группам с сайта логистики, Добавьте вырывать владельцев"" Группа. Я вижу владелец HR и удалите ее, думая, что я удалить ее от владельцев на сайте логистики. На самом деле, Я удаление ее из глобальной группы владельцев. Веселье вытекает.
  • Не имя группы на основе конкретной роли: «Утверждающих" Группа является прекрасным примером. Что можно членов этой группы утвердить? Где они могут утвердить его? Я действительно хочу отдел логистики людей, чтобы иметь возможность утверждать документы HR? Конечно, не. Всегда имя группы на основе их роли в рамках Организации. Это позволит снизить риск, что группе назначается уровень неуместным разрешений для определенного защищаемого объекта. Имя группы на основании их предполагаемой роли. В предыдущем сценарии HR/логистика, Я должен создал две новые группы: «HR владельцы" и "Логистика" и назначать уровни разумно разрешений для каждого и минимальная сумма, необходимая для тех пользователей, выполнять свою работу.

Другие полезные ссылки:

Если вы сделали это далеко:

Пожалуйста, дайте мне знать ваши мысли через комментарии или по электронной почте мне. Если вы знаете другие хорошие ссылки, Пожалуйста, сделайте то же самое!

Бирки Technorati:

Быстро и легко: Создайте веб-часть представления данных (DVWP)

Существует множество полезной информации о WSS 3.0 Веб-часть представления данных (DVWP) в Интернете от нескольких источников. Однако, Я нашел это будет удивительно трудно найти информацию на этот первый шаг очень основные. Вот еще одна статья в «быстро и легко" Серия для решения этой проблемы.

Выполните указанные ниже действия для создания веб-части представления данных (DVWP). Они основаны на «объявления" веб-часть, но применяются для большинства списков.

  1. Создание веб-части извещения и добавить его на сайт.
  2. Откройте сайт в SharePoint Designer.
  3. Откройте узел default.aspx.
  4. Выберите веб-части объявлений и щелкните правой кнопкой мыши.
  5. Из контекстного меню, Выберите "преобразовать в XSLT представление данных".

SharePoint Designer уведомляет вас, что этот сайт теперь настраивается от его определения сайта. Это не обязательно плохо, Однако есть важные последствия (производительность, Обновление, другие) которые являются выходит за рамки этого мало "быстро и легко" вход. Чтобы получить больше информации по этой теме, Я рекомендую обе книги Здесь как ваш любимый поиска в Интернете.

Подтвердите, что вы сделали это правильно:

  1. Закройте и снова откройте веб-браузер (чтобы избежать случайного повторного размещения оригинальные «добавить новую веб-часть»).
  2. Выберите веб-часть со стрелкой вниз и выберите команду "изменить общую веб-часть" из меню.
  3. Справа откроется панель инструментов.
  4. В это группа отличается от обычных параметров set:
изображение

“Не удается получить свойства столбца схемы списка из списка SharePoint” — Описание/work-arounds

На этой неделе, Мы наконец воспроизведены проблема, было зарегистрировано удаленным пользователем: Когда она попыталась экспортировать содержимое списка в excel, кажется, что вещи будут начать работать, но затем Excel будет всплывающее сообщение об ошибке: «Не удается получить свойство столбца схемы списка из списка SharePoint». Она работает отделение 2003, Windows XP и подключение к Мосс.

Я искал Интернет и увидел предположение, но ничего не 100% окончательное. Поэтому, Этот пост.

Проблема: Экспорт представления в excel, содержащая дату (Дата = тип данных столбца).

То, что работает для нас: Преобразование даты в «однострочный текст». Затем, преобразовать его обратно в дату.

Что она решена. Это было приятно видеть, что преобразование работал, на самом деле. Это было довольно нервной, что преобразование вещи таким образом, не будет, но это не.

Эта ошибка бросил огромная тень над тип данных date в виду клиента, Поэтому мы собираемся быть поиск окончательного ответа от корпорации Майкрософт и надеюсь я буду размещать и обновлять здесь в следующем короткий промежуток времени с их официального ответа и исправление информации.

Другие ссылки:

http://www.kevincornwell.com/blog/index.php/cannot-get-the-list-schema-column-property-from-the-sharepoint-list/

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2383611&SiteID=1

<конец>

Подписаться на мой блог.

Бирки Technorati: ,

Быстрый и простой: Отправить письмо с встроенных гиперссылок из рабочего процесса SharePoint Designer

Один или два раза в месяц, кто-то должности на форуме вопрос: «Как включить гиперссылки для URL-адреса, которые являются интерактивными с SharePoint Designer электронной почты?"

Представлен без дальнейших комментариев: (хорошо, на самом деле есть дальнейшие комментарии после изображения):

изображение

Бекки Isserman следит за полезные разъяснения о том, как вставлять ссылку на элемент в электронной почте: http://www.sharepointblogs.com/mosslover/archive/2007/11/20/addition-to-paul-galvin-s-post-about-sending-an-e-mail-with-hyperlinks-in-spd.aspx

Новый релиз: Расширения рабочих процессов SharePoint Designer (функции обработки строк)

ОБНОВЛЕНИЕ: Смотрите здесь для мои мысли о коммерциализации этого проекта: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

Я был занят работает на моем проекте Codeplex, который в настоящее время сосредоточена на предоставлении строка манипуляции расширений для рабочих процессов, созданных через SharePoint Designer.

Смотрите здесь для деталей:

Главная страница проекта: http://www.codeplex.com/spdwfextensions

Релиз: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Версия 1.0 включает следующие новые возможности:

Функция Описание (Если это не то же, что.Чистая функция)
Num записей() Возвращает номер записи"" в строке в соответствии с заданным разделителем.

Например: Num записи в строке ",b,c" с разделителем"," = 3.

Вход() Возвращает токен n-в строке в соответствии с заданным разделителем.
Длина String.Length
Заменить() String.Replace()
Содержит() String.Contains()
Возвращает слово "истина" или слово «ЛОЖЬ».
Подстрока(начало) String.Substring(начало)
Подстрока(начало,Длина) String.Substring(начало,Длина)
ToUpper() String.ToUpper()
Метод ToLower() String.ToLower()
StartsWith() String.startsWith()
Возвращает слово "истина" или слово «ЛОЖЬ».
EndsWith() String.endsWith()
Возвращает слово "истина" или слово «ЛОЖЬ».

Ошибка выполнения BDC пояснил

Я вызвал BDC ошибку на этой неделе, которая проявилась на интерфейсе пользователя и в 12 Журнал куст во время выполнения.

Первый, Это появилась в пользовательском интерфейсе:

Не удалось найти поля для вставки всех значений идентификаторов, необходимых для правильного выполнения SpecificFinder MethodInstance с именем … Убедиться, что входные параметры у TypeDescriptors, связанный с каждой идентификатором, определенный для этой сущности.

Вот снимок экрана:

clip_image001

Я также могла бы вызвать появление этого сообщения в 12 Журнал куст у будет (используя мой запатентованной high-tech-don't-try-this-at-home "таинственный ошибки" метод):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C бизнес-данных SharePoint Portal Server 6q4x высокой исключение в BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Значение идентификатора ”, типа ”, Недопустимый. Ожидаемое значение идентификатора типа «System.String». на Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Объект[] subIdentifierValues, LobSystemInstance lobSystemInstance) на Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Сущность сущности, Объект[] userValues, LobSystemInstance lobSystemInstance) на Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Просмотр desiredView) на Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() на Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Я искал вокруг и нашел несколько версий в Форум MSDN, но они не были достаточно для меня понять, что я делаю неправильно. Я смотрел трансляции Тед Пэттисон Это моя Компания от squirreled на сервере и пришел реализовать мою проблему.

В моем ADF, Я подключение к базе данных SQL, как показано:

            <Свойства Имя="RdbCommandText" Тип="System.String">
              <![CDATA[
                ВЫБОР МЕТОДА SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      СТРАНА, АДРЕС1, АДРЕС2, ADDRESS3, ADDRESS4, ГОРОД, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      УЕЗД, ГОСУДАРСТВО, ПОЧТОВЫЕ, GEO_CODE, IN_CITY_LIMIT, КАРТОЧКЕ, ТЕЛЕФОН, РАСШИРЕНИЕ, ФАКС, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG от dbo.PS_CARRIER_ID_VW с (NOLOCK)
                ГДЕ
                  (МЕТОДА SETID <> «ДОЛЯ») и
                  (Нижняя(CARRIER_ID) >= Нижняя(@MinId)) и
                  (Нижняя(CARRIER_ID) <= Нижняя(@ MaxId)) и
                  (Нижняя(DESCR) КАК ниже(@InputDescr))
                ]]>
            </Свойства>

Я была предоставлена что SQL DBA лица и я дал понять, что это специальные вид, что они созданы только для меня. Уникальный ключ есть — CARRIER_ID.

Вот ошибка, которую я представил:

      <Идентификаторы>
        <Идентификатор Имя="CARRIER_ID" TypeName="System.String" />
        <Идентификатор Имя="DESCR" TypeName="System.String" /> 
</Идентификаторы>

Где-то вдоль линии, Мне удалось запутать себя за смысл <Идентификаторы> и добавил DESCR, хотя это не на самом деле идентификатор. Я взял DESCR из набора идентификаторов и presto! Он работал.

Я надеюсь, что это спасает кого-то какое-то горе 🙂

Бирки Technorati: , , ,

Вы не можете бить SharePoint в досягаемости

В течение последних двух дней, Я участвовал в двух совещаниях, в ходе которых мы представили результаты проекта SharePoint. CIO и его команде присоединился к первое заседание. Это стандартная и не особенно заметен. ИТ-отдел очевидно участвует в свитке предприятия любого проекта, технологии. Второе совещание расширена за счет включения определенное. от маркетинга, несколько представляющих HR директоров, Логистика, Производство, Столица проекты, Качество, Покупка, Корпоративное развитие и другие департаменты (Некоторые из них даже непосредственно не участвуют в текущей фазе). Это могущественный широкой аудитории.

В моей ранее жизни, Работал главным образом на проекты ERP и CRM. Они оба имеют довольно широкий решение домен, но не так велик, как SharePoint. Для полной реализации, Проекты SharePoint законно и обязательно прийти в каждый закоулок Организации. Как многие другие решения имеют вид достичь? Не многие.

SharePoint явно представляет собой огромную возможность для тех из нас посчастливилось быть в этом пространстве. Она предоставляет большие технические возможности (что-то ног на голову Здесь под «Технологии вы должны владеть»). Но еще лучше, SharePoint предоставляет нам обширную и широкий спектр бизнес-процессов через эти захваты. Сколько CRM специалисты работают с стороне производства компании? Как многие консультанты ERP работы с людскими ресурсами на талант приобретение? SharePoint превышает их обоих.

Как и все, Это не идеально, но это чертовски хорошее место, чтобы быть.

За любовь к [Заполните ваши наиболее любил человек/выше время], не измените ' титул’ столбец сайта.

На SharePoint форумы, Иногда кто-то просит об "изменении метки названия" или около "удаление заголовка из списков".

Нижняя линия: Не делают это!

К сожалению, интерфейс пользователя позволяет одностороннее изменение этой метки столбца, как показано:

изображение

Заголовок — это столбец, связанный с элементом"" Тип содержимого. Многие, Многие, Многие CT использовать этот столбец и если вы изменить его здесь, это рябь повсюду. Существует хороший шанс, что вы не намерены для того чтобы случиться. Вы, вероятно, были мышления для себя, «У меня есть список пользовательских подстановок и ' название’ просто не имеет смысла как имя столбца, так что я собираюсь изменить его в «код состояния’ и добавить столбец описания." Но если вы последовать за до конца на этой мысли и переименовать ' название’ «Код состояния», название каждого списка (включая библиотек документов) изменения в код состояния"" и вы вероятно не предназначен для того чтобы это произошло.

Реальная проблема заключается в том, что это одностороннее изменение. Пользовательский интерфейс «знает" Это название"" Это зарезервированное слово. Таким образом, Если вы попробуете и изменить код состояния"" назад к «Титул», Она будет препятствовать вам и теперь вы нарисовал себя в угол using paint that never dries 🙂

Так что же происходит, если вы уже изменили? Я не видел ответ, который мы все хотим, Это простой и легкий метод, чтобы изменить метку обратно в «Название». Прямо сейчас, Лучший совет заключается в изменить его к что-то вроде «Doc/пункт название». Это достаточно общий лейбл, который не может быть слишком резкий для ваших пользователей.

У меня есть несколько идей, которые находятся на мой список вещей для исследования:

  • Обратитесь в корпорацию Майкрософт.
  • Сделать что-то с объектной моделью, возможно, в сочетании с функцией.
  • Выяснить, схемы базы данных и вручную обновить SQL. (Вам следует обратиться в корпорацию Майкрософт прежде чем делать это, хотя; скорее всего, он аннулирует Вашу поддержку Договора).

Если кто знает как решить эту проблему, Просьба оставить комментарий.

Обновление вечером, 11/15: Я нашел эту ссылку, которая описывает метод для создания типа списка, который не содержит заголовок столбца: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC ADF и вашего друга, CDATA

Я заметил, некоторые неудобные и ненужных рука кодирование RdbCommandText в некоторых примерах (включая документации MSDN).

Я хотел бы указать на новичков в BDC, что команды могут быть использованы внутри тега CDATA в их естественном"" форма. Таким образом, это неудобно строительство:

<Свойства Имя="RdbCommandText" Тип="System.String">
Выберите dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement от dbo.MCRS_SETTLEMENT
ГДЕ (ID &gt;= @ MinId) И (ID &lt;= @ MaxId)
</Свойства>

может быть лучше представлены таким образом:

<Свойства Имя="RdbCommandText" Тип="System.String">
<![CDATA[
Выберите dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement от dbo.MCRS_SETTLEMENT
ГДЕ (ID >= @ MinId) И (ID <= @ MaxId)
]]>
</Свойства>

</конец>

Грунтовка BDC

Введение в BDC

Функциональные пример: BDC ADF, который подключается к базе данных SQL с встроенный пользовательский id и пароль

Мне нужно, чтобы подключить Мосс в SQL базу данных через BDC. Для целей тестирования/ТОЦ, Я хотел вставлять SQL учетной записи id пользователя и пароль в файле ADF. Начиная с Этот шаблон (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Я создал устройство автоматической подачи, который подключается к конкретному экземпляру SQL server и записывает в с id пользователя и пароль и показаны в этом фрагменте:

  <LobSystemInstances>
    <LobSystemInstance Имя="ClaimsInstance">
      <Свойства>
        <Свойства Имя="AuthenticationMode" Тип="System.String">PassThrough</Свойства>
        <Свойства Имя="DatabaseAccessProvider" Тип="System.String">SqlServer</Свойства>
        <Свойства Имя="Источник данных RdbConnection" Тип="System.String">фактическое serveractual экземпляр</Свойства>
        <Свойства Имя="RdbConnection первоначальный каталог" Тип="System.String">фактический исходный каталог</Свойства>
        <Свойства Имя="RdbConnection встроенной безопасности" Тип="System.String">SSPI</Свойства>
        <Свойства Имя="RdbConnection объединение" Тип="System.String">ложь</Свойства>

        <!-- Это ключевые значения: -->
        <Свойства Имя="ID пользователя RdbConnection" Тип="System.String">вctual ID пользователя</Свойства>
        <Свойства Имя="RdbConnection пароль" Тип="System.String">текущий пароль</Свойства>
        <Свойства Имя="RdbConnection Trusted_Connection" Тип="System.String">ложь</Свойства>

      </Свойства>
    </LobSystemInstance>
  </LobSystemInstances>

Это не рекомендуется, но она полезна для быстрой и простой настройки для тестирования. Это было удивительно трудно выяснить. Я никогда не нашли пример функциональной с ключевые слова поиска:

  • ADF встроенный идентификатор пользователя и пароль
  • встраивать идентификатор пользователя и пароль в файл adf
  • внедрение id пользователя и пароль в adf bdc
  • Грунтовка bdc SharePoint
  • SharePoint встраивать идентификатор пользователя и пароль в файл adf

</конец>

Подписаться на мой блог.