SharePoint сигурност основи грунд / Се избегне обща клопки

АКТУАЛИЗИРАНЕ 12/18/07: Вижте статията на Пол Liebrand за някои технически последици на премахване или промяна на имена на групи по подразбиране (Виж си коментар по-долу, както и).

Общ преглед:

SharePoint сигурност е лесно да конфигурирате и управлявате. Въпреки това, тя доказа, че е трудно за някои първи път администраторите да наистина увийте ръцете си около нея. Не само, че, Аз съм виждал някои администратори идват до перфектно разбиране в понеделник само да са го загубили от петък, защото те не трябва да правя кой да е очертание в междинния време. (Признавам, да има този проблем себе си). Този блог влизане Надяваме се предоставя полезна SharePoint сигурност грунд и точки към някои конфигурация най-добрите практики за сигурност на.

Важна бележка:

Това описание се базира на кутията SharePoint сигурност. Моят личен опит е ориентирани около Мос, така може да има някои Мос специфични неща тук, но аз вярвам, че е точно за ВиК. Надявам се, че всеки, който вижда грешки или пропуски ще която посочи в коментарите или пишете ми. Ще направя корекции побърза пост.

Основи:

За целите на този преглед, има четири основни аспекти на сигурността: потребители/групи, защитими обекти, нива на разрешение и наследяване.

Потребители и групи прекъсване до:

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

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

  • Сайтове
  • Библиотеки с документи
  • Отделни елементи от списъци и библиотеки с документи
  • Папки
  • Различни BDC настройки.

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

Нива на разрешение: Пакет от гранулиран / ниско ниво на достъп права, които включват неща като създаване/четене/изтриване на записи в списъци.

Наследяване: По подразбиране лица наследяват настройките за защита от техните съдържащи обекти. Подсайтове наследяват разрешения от родителя. Наследяване на библиотеки с документи от сайта им. Така на и така напред.

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

Най-важните правила за сигурност да разберат, Ever 🙂 :

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

Администратори на защита, изгубени в морето от група и потребителски списъци винаги могат да разчитат на тези аксиоми да управляват и разбират тяхната сигурност конфигурация.

Общите клопки:

  • Имената на групите лъжливо предполага разрешение: На кутията, SharePoint дефинира набор от групи, чиито имена означава, присъщи ниво на сигурност. Помислете за групата "Сътрудник". Един непознат с SharePoint сигурност добре може да погледнете това име и предположи, че всеки член на тази група може да "допринесе" към всеки сайт/списък/библиотека в портала. Това може да е вярно, но не защото името на групата се случва да бъде "сътрудник". Това е вярно само на кутията, защото групата е била предоставена на ниво на разрешение, което им дава възможност за добавяне/редактиране/изтриване на съдържанието на главния сайт. Чрез наследяване, "сътрудници" група може също добавяне/редактиране/изтриване на съдържанието на всеки под-сайт. Една може да "счупи" по наследство верига и промените нивото на разрешение на един под-сайт такива че членовете на така наречените "сътрудник" групата не може да съдейства на всички, но само четат (за пример). Това не би било добра идея, очевидно, тъй като това би било много объркващо.
  • Групите не са определени на ниво сайт. Това е лесно да бъдат объркани от потребителския интерфейс. Microsoft снабдявам удобен звено към потребител/група за управление през всеки сайт "хора и групи" връзка. Това е лесно да вярват, че когато съм в сайта "xyzzy" създам група чрез xyzzy на хора и групи връзка, че току-що създадохте група, която съществува само в xyzzy. Това не е така. Всъщност аз създадох група за цялата колекция.
  • Членство в групи не се различава от сайт (т.е.. същото е навсякъде се използва група): Помислете за групата "собственик" и двата обекта, "HR" и "Логистика". Би било нормално да се мисли, че две отделни индивиди ще притежава тези сайтове — HR собственик и собственик на логистиката. Потребителски интерфейс го прави лесен за администратор по сигурността да mishandle този сценарий. Ако не знаете по-добре, Аз може да достъп на хора и групи връзки чрез сайта на HR, изберете "собственици" Група и да добавите ми ВП собственик към тази група. Един месец по-късно, Логистика идва на линия. Аз достъп хора и групи от сайта на логистиката, Добави издърпайте нагоре "собственици" Група. Вижте собственика на HR там и я премахнете, Мисля, че съм я премахване от собствениците на сайта на логистиката. Всъщност, Аз съм я премахване от групата на собствениците на глобалната. Веселие произтича.
  • При липса на име групи въз основа на специфична роля: "Одобряващите" Група е перфектен пример. Какво може членовете на тази група одобрение? Къде може да го одобри? Наистина искам хората Логистичен отдел, за да може да одобрява документи за HR? Не, разбира се. Винаги името групи въз основа на тяхната роля в рамките на организацията. Това ще намали риска, че групата е присвоен на неподходящо разрешение ниво за определен защитим обект. Името групи въз основа на ролята им предназначение. В предходния сценарий HR/логистика, Трябваше да се създаде две нови групи: "HR собственици" и "Логистика собственици" и да присвоите нива на разумното разрешение за всяка и минималната сума, необходима за тези потребители, за да вършат работата си.

Други полезни препратки:

Ако сте го направили това далеч:

Моля да ме мислите си чрез коментари или ми пишете. Ако знаете други добри препратки, Моля, направете същото!

Technorati тагове:

Бърз и лесен: Създаване на уеб компонента за изглед на данни (DVWP)

Има множество от голяма информация за ВиК 3.0 Уеб компонент за изглед на данни (DVWP) в интернет от няколко източника. Въпреки това, Намерих го да бъде изненадващо трудно да намерите информация за тази първа основна стъпка. Ето още една статия в "бързо и лесно" серия за справяне с него.

Следвайте тези стъпки, за да създадете уеб компонент за изглед на данни (DVWP). Те се основават на "съобщения" уеб част, но се отнася за повечето списъци.

  1. Създаване на уеб компонент за съобщения и да го добавите към сайт.
  2. Отворете сайта в SharePoint Designer.
  3. Отваряне на сайта default.aspx.
  4. Изберете уеб частта на съобщения и щракнете с десния бутон.
  5. От контекстното меню, изберете "Конвертиране на XSLТ изгледа с данни".

SharePoint Designer ви уведомява, че този сайт е сега персонализиран от нейната дефиниция на сайт. Това не е непременно лошо, но има важно значение (производителност, надстройка, други) които са извън обхвата на този малък "бърз и лесен" влизане. За да получите повече информация по този въпрос, Аз препоръчвам и двете книги Тук както и вашите любими интернет търсене.

Потвърдете, че сте го направих правилно:

  1. Затворете и отворете отново браузъра (за да се избегне случайно повторно публикуване първоначалното "Добави нов уеб компонент").
  2. Изберете уеб частта на стрелката падащото меню и изберете "промяна на споделен уеб компонент" от менюто.
  3. Инструмент панел се отваря надясно.
  4. Групата на съдебните заседатели е променено от обичайните си Задаване на опции на това:
Изображение

“Не може да получи свойството на схемата колона от списъка на SharePoint” — описание/решения

Тази седмица, ние накрая възпроизвеждат един проблем, който бяха съобщени от отдалечен потребител: Когато тя се опита да експортирате съдържанието на списък в excel, нещата изглежда да започне работа, но тогава Excel ще се появи грешка: "Не може да получи свойството на схемата колона от списъка на SharePoint". Тя тичаше офис 2003, Windows XP и свързване към Мос.

Аз търсили Internets и видях някои спекулации, но нищо 100% окончателни. Следователно, този пост.

Проблемът: Експортиране на изглед в excel, съдържа дата (дата = типа на данните на колоната).

Какво работи за нас: Преобразуване на дата за "един ред на текст". След това, да го конвертирате обратно към дата.

Това го решават. Това е хубаво да се види, че преобразуването работи, Всъщност. Беше доста нервна, че конвертиране нещата по този начин ще се провали, но това не.

Този бъг е хвърлил една огромна сянка върху типа дата данни в съзнанието на клиента, така че ние ще бъде търсенето на окончателен отговор от Microsoft и се надяваме, че ще пост и актуализация тук в следващия кратък период от време си Официален отговор и актуална корекция информация.

Други препратки:

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-записи в низ "_FITTED,б,c" с разделител"," = 3.

Влизане() Връща n-тия знак в низ по указания разделител.
Дължина String.Length
Замени() String.Replace()
Съдържа() String.Contains()
Думата "true се връща" или думата "false".
Подниз(Старт) String.Substring(Старт)
Подниз(Старт,дължина) String.Substring(Старт,дължина)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Думата "true се връща" или думата "false".
EndsWith() String.EndsWith()
Думата "true се връща" или думата "false".

BDC runtime грешка обяснено

Аз предизвиква грешка на BDC тази седмица, който се проявява в потребителския интерфейс и в 12 кошер регистър по време на изпълнение.

Първо, Това се появява в потребителския интерфейс:

Не можа да намери полета за вмъкване на всички стойности на идентификатора, за да се изпълни правилно MethodInstance на 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 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 форум, но те не са достатъчно за мен да се разбере какво правя грешно. Гледах webcast от Тед Pattison че ми компанията има squirreled на сървър и дойде да осъзнават проблема ми.

В моя ADF, Аз съм свързване към SQL база данни, както е показано:

            <Имоти Име="RdbCommandText" Тип="System.String">
              <![НЕЗАТВОРЕН[
                ИЗБЕРЕТЕ 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, COUNTRY_CODE, ТЕЛЕФОН, РАЗШИРЕНИЕ, ФАКС, 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 на идентификатори набор и престо! Всичко работи.

I hope this saves someone some grief 🙂

Technorati тагове: , , ,

Не може да победи на SharePoint в Reach

През последните два дни, Са участвали в две заседания, през които ние представи резултатите от проект на SharePoint. ИТ и неговият екип се присъединява към първата среща. Това е стандарт и не особено забележителен. ИТ отдела е очевидно, участващи в предприятие внедряването на всеки проект, технология. Втората среща се разширява да включва V.P. от маркетинг, няколко директори, представляващи HR, Логистика, Производство, Инвестиционни проекти, Качество, Закупуване, Корпоративно развитие и други ведомства (някои от които не са били дори пряко ангажирани в текущата фаза). Това е Могъщият широка аудитория.

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

SharePoint ясно представлява една огромна възможност за тези от нас, достатъчно късмет да бъде в това пространство. Тя осигурява голяма техническа възможност (което някак е обърна с главата Тук под "Технологии трябва да овладеят"). Но още по-добре, SharePoint ни излага на обширна и широка гама от бизнес процеси чрез тези ангажименти. Колко CRM специалисти работят с производствената част на фирмата? Колко ERP консултанти работят с човешки ресурси на талант придобиване? SharePoint надвишава ги и двете.

Като нищо, Това не е съвършен, но това е ужасно добро място да бъде.

За любовта на [Попълнете вашето най-обичаните лице или висше същество], не променяйте "заглавие’ колона на сайт.

На SharePoint форуми, понякога някой пита за "промяна на етикета на заглавие" или около "премахване заглавие от списъци".

Долната линия: Не го правя!

За съжаление, Потребителският интерфейс позволява еднопосочна промяна на този етикет на колона, както е показано:

Изображение

Заглавието е свързан с елемента,"колона" тип съдържание. Много, много, много CT на използват тази колона и ако променяте го тук, Тя ripples вън навсякъде. Налице е добър шанс, че не сте искали това да се случи. Вие вероятно са били мислене за себе си, "Имам потребителски справочния списък and" заглавие’ просто няма смисъл като име на колона, така че аз отивам да го смените с "код на състоянието’ и добавите колона за описание." Но ако се следват чрез на мисълта, че и преименуване "заглавие’ за "Статус код", Заглавие на всеки списък (включително библиотеки с документи) промени в "код на състоянието" и вие вероятно не е имал намерение за това да се случи.

Истинският проблем е, че това е еднопосочна промяна. UI "знае" това "заглавие" е запазена дума. Така, Ако се опитате и да промените "код на състоянието" обратно към "Заглавие", Той ще ви предпази и сега вие сте рисува себе си в ъгъла using paint that never dries 🙂

Така че какво се случва, ако вече го променили? Аз не съм виждал отговор всички искаме, който е прост и лесен метод за промяна на етикета обратно към "Заглавие". Точно сега, най-добрият съвет е да го смените с нещо като "Doc/артикул заглавие". Това е достатъчно общ етикет, който не може да бъде твърде шокиращ за вашите потребители.

Имам няколко други идеи, които са в моя списък със задачи с неща за изследвания:

  • Свържете се с Microsoft.
  • Направи нещо с обектния модел на, може би във връзка с функция.
  • Измисли схемата на базата данни и ръчно актуализиране на SQL. (Трябва да се обърнете към Microsoft преди това обаче; Това най-вероятно ще бъдат анулирани си договор за поддръжка).

Ако някой знае как да реши този, Моля публикувате коментар.

Update късен следобед, 11/15: Намерих тази връзка, която описва метод за създаване на тип на списъка, който все още няма заглавие на колона: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC ADF и вашият приятел, НЕЗАТВОРЕН

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

Исках да подчертая, на новодошлите в КБД, че команди може да бъде обвит във вътрешността на CDATA етикет в естествените им"" формуляр. Така, тази неудобна конструкция:

<Имоти Име="RdbCommandText" Тип="System.String">
Изберете dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.Settlement от dbo.MCRS_SETTLEMENT
КЪДЕТО (ИД &gt;= @MinId) И (ИД &lt;= @MaxId)
</Имоти>

могат да се представят по-добре по този начин:

<Имоти Име="RdbCommandText" Тип="System.String">
<![НЕЗАТВОРЕН[
Изберете dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.Settlement от dbo.MCRS_SETTLEMENT
КЪДЕТО (ИД >= @MinId) И (ИД <= @MaxId)
]]>
</Имоти>

</край>

BDC грунд

Интрото на BDC

Функционални пример: BDC ADF, който се свързва към SQL база данни с вградени потребителски ИД и парола

Трябваше да завивайте Мос в SQL база данни чрез BDC. За целите на изпитване/POC, Исках да вградите на SQL сметка потребител id и парола в ADF. Започвайки с този шаблон (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Съм създал ADF, който се свързва към конкретен екземпляр на SQL сървър и логове с конкретен потребител id и парола и показва в този фрагмент:

  <Екземпляри LobSystemInstance>
    <LobSystemInstance Име="ClaimsInstance">
      <Имоти>
        <Имоти Име="AuthenticationMode" Тип="System.String">Еднократно прокарване</Имоти>
        <Имоти Име="DatabaseAccessProvider" Тип="System.String">SqlServer</Имоти>
        <Имоти Име="RdbConnection данни източник" Тип="System.String">действителните serveractual екземпляр</Имоти>
        <Имоти Име="RdbConnection първоначален каталог" Тип="System.String">Действителен начален каталог</Имоти>
        <Имоти Име="RdbConnection интегрирана сигурност" Тип="System.String">SSPI</Имоти>
        <Имоти Име="RdbConnection обединяване" Тип="System.String">фалшиви</Имоти>

        <!-- Това са основните ценности: -->
        <Имоти Име="RdbConnection потребителски Идентификатор" Тип="System.String">аъведете потребителски Идентификатор</Имоти>
        <Имоти Име="RdbConnection парола" Тип="System.String">действителен парола</Имоти>
        <Имоти Име="RdbConnection Trusted_Connection" Тип="System.String">фалшиви</Имоти>

      </Имоти>
    </LobSystemInstance>
  </Екземпляри LobSystemInstance>

Това не е най-добрата практика, но това е полезно за бърза и проста конфигурация за изпитване. Това беше изненадващо трудно да разбера. Аз никога основавам функционална например с ключови думи за търсене:

  • ADF вградени потребителско име и парола
  • вграждане на потребителски ИД и парола в adf
  • вграждане на потребителски ИД и парола в adf bdc
  • SharePoint bdc грунд
  • SharePoint вградите потребителски ИД и парола в adf

</край>

Абонирайте се за моя блог.