Грунтовка основи безпеки SharePoint / Уникнути поширених помилок

ОНОВЛЕННЯ 12/18/07: Paul Liebrand у статті деякі технічні наслідки про видалення або модифікації імена груп за промовчанням (Переглянути свій коментар нижче, а також).

Огляд:

Безпеки SharePoint є легко налаштувати і керувати. Однак, Вона виявилася важким для деяких вперше адміністратори дійсно обернути руки навколо нього. Не тільки це, Я бачив деякі адміністратори прийти досконалим розуміння на понеділок тільки до втратив його п'ятницю, тому що вони не мають виконувати ніяких додаткових налаштувань в проміжний час. (Я визнаю себе з цією проблемою). Цей запис у блозі, сподіваюся, забезпечує корисну грунтовка безпеки SharePoint і вказує на деякі конфігурації кращі методи додержання безпеки.

Важливе зауваження:

Такий Опис базується на з коробки SharePoint безпеки. Мій особистий досвід орієнтованих навколо МОСС, так що там можуть бути деякі МОХ конкретні речі тут, але я вважаю, що це точні для WSS. Я сподіваюся, що хто-небудь бачачи, будь-які помилки або упущення відзначають, що в коментарях або Напишіть мені. Я зроблю корекції пост haste.

Основи:

Для цілей цього огляд, є чотири основних аспектів безпеки: користувачів і групи, захищені об'єкти, рівні дозволів і спадкування.

Користувачі та групи розбити вниз, щоб:

  • Окремі користувачі: Витяг з активним Довідник "або" створено безпосередньо в SharePoint.
  • Групи: Підключеного безпосередньо з active directory або створеним у SharePoint. Групи є колекція користувачів. Групи мають глобальний характер в колекції сайтів. Вони ніколи не "зв'язали" до конкретних захищеного об'єкта.

Захищені об'єкти розбити вниз, щоб принаймні:

  • Сайти
  • Бібліотеки документів
  • Окремих елементів у списках і бібліотеках документів
  • Папки
  • Різні параметри служби ПБД.

Є інші захищені об'єкти, але ви отримаєте картинку.

Рівні дозволів: Пучок гранульований / низький рівень доступу прав, які включають такі речі, як створити/читання/видалення записів у списках.

Успадкування: За замовчуванням осіб успадковують параметри безпеки їх містять об'єкт. Дочірніх сайтів успадковують дозволи від своїх батьківських. Успадковувати бібліотек документів з їх сайту. Так далі і тому подібне.

Користувачі та групи ставляться до захищеного об'єктів через рівні дозволів і спадкування.

Найбільш важливі правила безпеки зрозуміти, Ever 🙂 :

  1. Групи є просто колекції користувачів.
  2. Групи є глобальний в межах колекції сайтів (тобто. Існує немає такого поняття, як група, визначені на рівні сайту).
  3. Ім'я групи не витримати, групи не роблять, у та себе, мати будь-якої конкретної рівень безпеки.
  4. Групи мають безпеки у контексті конкретних захищеного об'єкта.
  5. Можна призначити рівні різних дозволів в ту ж групу для кожного захищеного об'єкта.
  6. Web застосування політики Трамп все це (див нижче).

Безпеки адміністратори втратила в море Група і користувач списки завжди можете покластися на ці аксіом, управляти і розуміти їх конфігурація безпеки.

Поширених помилок:

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

Інші корисні посилання:

Якщо ви вже зробили це набагато:

Будь ласка, дайте мені знати ваші думки через коментарі або напишіть мені. Якщо ви знаєте інші хороші посилання, будь ласка, зробити те ж саме!

Бірки Technorati:

Швидкий і простий: Створити веб-частині подання даних (DVWP)

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

Виконайте такі дії, щоб створити веб-частині подання даних (DVWP). Вони ґрунтуються на оголошення"" веб-частини, але застосовувати до більшості списки.

  1. Створення на веб-частини оголошення і додати його до сайту.
  2. Відкрити сайт у SharePoint Designer.
  3. Відкриття сайту default. aspx.
  4. Виберіть веб-частини оголошення і клацніть правою кнопкою миші.
  5. З контекстного меню, Виберіть "перетворити на XSLПодання "дані" T".

SharePoint Designer сповіщає, що цей сайт тепер налаштовується від його визначення сайту. Це не обов'язково погано, але є й важливі наслідки (продуктивність, оновлення, Інші) які є виходить за рамки цього мало "швидко і легко" запис. Щоб отримати більше інформації на цю тему, Я рекомендую обидві книги Тут а також улюблені інтернет-пошуку.

Підтвердіть, що ви це зробили правильно:

  1. Закрийте та знову відкрийте веб-браузер (щоб уникнути випадкового повторно проводки, оригінальні "Додати нову веб-частину").
  2. Виберіть веб-частину стрілку розкривного меню і виберіть "Змінити спільну веб-частину" у меню.
  3. На панелі інструментів відкриває праворуч.
  4. Панелі змінюється від своєї звичайної Вибирання параметрів до цієї:
зображення

“Не вдалося отримати список схеми властивості стовпець зі списку SharePoint” — Опис/робота обхідні

На цьому тижні, Ми, нарешті, відтворена проблема, що було повідомлено, віддалений користувач: Коли вона спробувала експортування вмісту списку в excel, речі здавалося б почати працювати, але потім Excel б спливав помилка: "Не вдалося отримати властивості стовпець списку схема зі списку SharePoint". Вона Бігала office 2003, Windows XP та підключення для ЛИШАЙНИКА.

Я шукав в Інтернеті і побачив деяка спекуляція, але нічого 100% остаточного. Отже, Цей пост.

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

Те, що працював для нас: Перетворення дати на "один рядок тексту". Потім, перетворити його назад до побачення.

Що вирішити її. Було дуже приємно бачити, що перетворення працював, насправді. Це був дуже нервує, що перетворення речей таким чином не дадуть, Але цього не сталося.

Ця помилка має накинутий величезною тіньовою в дата тип даних у розуму клієнт, тому ми будемо прагнути остаточної відповіді від корпорації Майкрософт і сподіваюся я пост і оновити тут, в наступний короткий період часу з їх офіційний інформаційний відповідь і виправлення.

Інші посилання:

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 включає в себе наступні нові можливості:

Функція Опис (Якщо це не те ж саме, як функцію .net)
NUM записи() Повертає число «записи" в рядку відповідно до вказаного розділювача.

Наприклад: NUM записи в рядок,b,c" з роздільник"," = 3.

Запис() Повертає n-ний маркер у рядку відповідно до вказаного розділювача.
Довжина String.Length
Замінити() String.Replace()
Містить() String.Contains()
Повертає слово «ІСТИНА" або слово "false".
Підрядок(почати) String.Substring(почати)
Підрядок(почати,Довжина) String.Substring(почати,Довжина)
ToUpper() String.ToUpper()
String.tolower() String.ToLower()
StartsWith() String.StartsWith()
Повертає слово «ІСТИНА" або слово "false".
EndsWith() String.EndsWith()
Повертає слово «ІСТИНА" або слово "false".

Помилка виконання ПБД пояснив

Я заподіяв BDC помилка на цьому тижні, що проявились на інтерфейс користувача, так і в на 12 вулик вхід під час виконання.

Перший, воно з'являється в інтерфейсі користувача:

Не вдалося знайти поля для вставлення всіх значень ідентифікаторів для правильного виконання методу екземпляра SpecificFinder з іменем … Переконайтеся, що параметри вводу мають дескриптори TypeDescriptor, пов'язані з кожним ідентифікатором визначеним для цієї сутності.

Ось знімок екрану:

clip_image001

Я також може викликати це повідомлення, з'явиться в на 12 вулик вхід в буде (використання мій запатентований high-tech-don't-try-this-at-home "таємничий помилки" метод):

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

Я шукав навколо і знайшов деякі приводить в на MSDN форум, але вони не були достатньо для мене зрозуміти, що я роблю неправильно. Я спостерігав веб-трансляцію по Тед Паттісон яка моя Компанія squirreled на сервері і прийшов, щоб розуміти, моя проблема.

У моєму ADF, Я підключення до SQL бази даних, як показано:

            <Майно Ім’я="RdbCommandText" Тип="Належить">
              <![CDATA[
                ВИБРАТИ SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      КРАЇНА, ADDRESS1, ADDRESS2, 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="Належить" />
        <Ідентифікатор Ім’я="DESCR" Параметр TypeName="Належить" /> 
</Ідентифікатори>

Десь уздовж лінії, Я зумів заплутати себе над сенсом <Ідентифікатори> і додав DESCR, незважаючи на те, що це не реально ідентифікатор. Я взяв DESCR з ідентифікаторами набір і presto! Він працював.

I hope this saves someone some grief 🙂

Ви не можете бити SharePoint в досяжності

Протягом останніх двох днів, Я брав участь у двох зустрічей, під час якого ми представили результати роботи проекту SharePoint. CIO і його команда приєднався до першої зустрічі. Це стандартна і не особливо помітним. ІТ-відділ займається очевидно підприємство свиті будь-якого проекту технології. Друге засідання розширена за рахунок включення в в. п.. від маркетингу, декількох режисерів, які представляють HR, Логістика, Для виробництва, Капітальні проекти, Якість, Придбання, Корпоративного розвитку та іншими відомствами (Деякі з яких були навіть безпосередньо не залучені до поточного етапу). Що це могутній широкої аудиторії.

У моїй попереднього життя, Я працював в першу чергу на ERP та CRM проекти. Вони обидва мають досить широкий рішення домен, але не так великий, як SharePoint. Щоб бути повністю зрозумів, SharePoint проектів законно і обов'язково досягти в кожен закуток організації. Як багато інших рішень на підприємстві є, що родом з досягти? Не багато.

SharePoint чітко являє собою величезні можливості для тих з нас, досить щасливі, щоб бути в цьому просторі. Він надає великі технічні можливості (який якось ніг на голову Тут у розділі "Технології ви повинні опанувати"). Але навіть краще, SharePoint піддає нас великий і широкий спектр бізнес процесів за допомогою цих зобов'язань. Скільки спеціалістів CRM працювати з боку виробництва компанії? Скільки ERP консультанти працюють з людських ресурсів на талант на придбання? SharePoint перевищує їх обох.

Як-небудь, Це не ідеально, але це кляті гарне місце, щоб бути.

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

На в SharePoint форуми, Інколи хтось запитує про "змінити етикетку заголовок" або про "Видалення заголовка зі списків".

Нижній рядок: Не робити!

На жаль, інтерфейс користувача дозволяє односторонній зміна що стовпець етикетка, як показано:

зображення

Назва — це стовпець, який пов'язаний з пунктом"" тип вмісту. Багато, багато, багато CT використання цього стовпця, і якщо ви зміните його тут, Це брижі на скрізь. Існує хороший шанс, що ви не маєте намір для того щоб це відбулося. Ви були, ймовірно мислення до себе, "Я список користувацьких підстановки та ' заголовок’ просто не має сенсу як ім'я стовпця, тому я збираюся змінити його для ' код стану’ і додати стовпці Опис." Але якщо ви виконати на що думки і перейменувати ' заголовок’ для "Код стану", Кожен список заголовок (у тому числі бібліотеки документів) зміни, внесені до "код стану" і ви напевно не маєте намір для того щоб це відбулося.

Реальна проблема полягає в тому, що це один бік зміни. UI "знає, що" Цей титул"" – це зарезервоване слово. Так, Якщо ви спробуєте змінити код стану"" назад до "Заголовок", Це буде перешкоджати вам, та тепер ви ' ве пофарбовані себе в кут using paint that never dries 🙂

Так що ж відбувається, якщо ви вже змінені його? Я не бачив відповідь, ми всі хочемо, яка є простий і легкий метод, щоб змінити етикетку повернутися до 'Заголовок'. Прямо зараз, кращий рада, щоб змінити його на щось на зразок "Doc/назву файлу". Яка є досить загальним ярликом, який не може бути занадто струс для ваших користувачів.

У мене є кілька ідей, які знаходяться на мій список справ з речей, дослідження:

  • Звернутися до корпорації Майкрософт.
  • Щось робити з об'єктної моделі, може бути, у поєднанні з функцією.
  • З'ясувати схему бази даних та оновлення вручну SQL. (Вам слід звернутися Microsoft, перш ніж робити це хоча; Це швидше за все буде недійсним підтримки контракт).

Якщо хто-небудь знає, як вирішити цю проблему, будь ласка, пост коментар.

Оновлення кінці дня, 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" Тип="Належить">
Виберіть dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.Settlement від dbo.MCRS_SETTLEMENT
ДЕ (ID &gt;= @MinId) І (ID &lt;= @MaxId)
</Майно>

може бути краще уявляли таким чином:

<Майно Ім’я="RdbCommandText" Тип="Належить">
<![CDATA[
Виберіть dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.Settlement від dbo.MCRS_SETTLEMENT
ДЕ (ID >= @MinId) І (ID <= @MaxId)
]]>
</Майно>

</кінець>

Грунтовка каталогу бізнес-даних

Вступ до каталогу бізнес-даних

Приклад функціональної: ADF каталогу бізнес-даних, який підключається до SQL бази даних вбудованих користувача ідентифікатор та пароль

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

  <Екземпляри>
    <Екземпляр бізнес-системи Ім’я="ClaimsInstance">
      <Властивості>
        <Майно Ім’я="AuthenticationMode" Тип="Належить">До сервера</Майно>
        <Майно Ім’я="DatabaseAccessProvider" Тип="Належить">SqlServer</Майно>
        <Майно Ім’я="RdbConnection даних джерелом" Тип="Належить">екземпляр фактичні serveractual</Майно>
        <Майно Ім’я="RdbConnection вихідний каталог" Тип="Належить">Фактична початковий каталог</Майно>
        <Майно Ім’я="RdbConnection інтегровані безпеки" Тип="Належить">SSPI</Майно>
        <Майно Ім’я="RdbConnection об'єднання" Тип="Належить">ХИБНІСТЬ</Майно>

        <!-- Це значення ключа: -->
        <Майно Ім’я="Ідентифікатор користувача RdbConnection" Тип="Належить">наьно Ідентифікатор користувача</Майно>
        <Майно Ім’я="RdbConnection пароль" Тип="Належить">Фактична пароль</Майно>
        <Майно Ім’я="RdbConnection Trusted_Connection" Тип="Належить">ХИБНІСТЬ</Майно>

      </Властивості>
    </Екземпляр бізнес-системи>
  </Екземпляри>

Це не найкраща практика, але це зручно для швидкого та простого конфігурації для тестування. Це було дивно важко зрозуміти. Я ніколи не знайшов функціональних прикладів з ключовими словами пошуку:

  • Автоматичний радіопеленгатор вбудовані ім'я користувача та пароль
  • вставляти код користувача і пароль в adf
  • вставляти код користувача і пароль в adf каталогу бізнес-даних
  • Грунтовка SharePoint каталогу бізнес-даних
  • SharePoint вставляти код користувача і пароль в adf

</кінець>

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