SharePoint varnostnih temeljih premaz / Bi se izognili skupnih pastem

POSODOBITEV 12/18/07: Glej člen Paul Liebrand za nekatere tehnične posledice odstranjevanje ali Spreminjanje privzetega imena skupin (glejte njegov komentar spodaj tudi).

Pregled:

SharePoint varnost je enostaven za konfiguriranje in upravljanje. Vendar, dokazano je, da je težko za nekatere prvič skrbniki res zaviti roke okrog njega. Ne samo, da, Videl sem nekaj skrbniki se poudarek dodan v ponedeljek, le da so izgubili to do petka, ker niso imeli uganjati poljuben zunanja podoba v vmesnem času. (Moram priznati, da ima ta problem sam). Ta blog vnos upajmo, da zagotavlja koristen SharePoint varnost premaz in kaže proti nekaj najboljših praks varnostne konfiguracije.

Pomembna Opomba:

Ta opis temelji na polju SharePoint varnost. Moja osebna izkušnja je usmerjena k MOSS tako lahko pride do nekaj MOSS določene stvari tukaj, vendar menim, da je natančno za WSS. Upam, da kdorkoli videl kakršne koli napake ali izpustitve bodo opozorili da v komentarjih ali email mi. Bom se popravki objava naglica.

Osnove:

Za namene te pregled, Obstajajo štiri temeljne vidike varnosti: Uporabniki/skupine, mogoče zaščititi predmetov, ravni dovoljenj in dedovanje.

Uporabniki in skupine break navzdol, da:

  • Posameznim uporabnikom: Potegnil iz active directory ali ustvarjeni neposredno v SharePoint.
  • Skupine: Preslikan neposredno iz imenika active directory ali ustvarjenih v SharePoint. Skupine so zbirka uporabnikov. Skupine so globalno v zbirki mest. So nikoli "vezani" za posebne predmete.

Mogoče zaščititi predmetov break navzdol, da vsaj:

  • Mesta
  • Knjižnice dokumentov
  • Posameznih postavk v sezname in knjižnice dokumentov
  • Map
  • Različne nastavitve BDC.

Obstajajo druge securable predmetov, šele vi zaslužiti slika.

Ravni dovoljenj: Snop granul / nizka raven pravic, ki vključujejo stvari, kot so ustvarjanje/branje/brisanje postavk v sezname.

Dedovanje: Privzeto subjekti podedujejo varnostne nastavitve iz njihovega obsegajočega objekta. Podmesta podedujejo dovoljenja od svojih nadrejenih mest. Knjižnice dokumentov podedujejo od kraja. Tako naprej in tako naprej.

Uporabniki in skupine, ki se nanašajo na securable predmetov prek ravni dovoljenj in dedovanje.

Najpomembnejša pravila varnosti razumeti, Ever 🙂 :

  1. Skupine so preprosto zbirk uporabnikov.
  2. Skupine so globalno v zbirki mest (i.e. obstaja taka stvar kot skupine, opredeljene na ravni mesta).
  3. Ime skupine, ne glede, skupine ne, v mestu in samih, so vse posebne ravni varnosti.
  4. Skupine so varnost v okviru posebne predmete.
  5. Lahko dodelite različne ravni dovoljenj v isto skupino za vsak predmet.
  6. Pravila uporabe spletnega adut, vse to (glej spodaj).

Skrbnikov varnosti, izgubljenih v morju uporabnikov in skupin uporabnikov oglasi se lahko vedno zanesete na teh aksiomi za upravljanje in razumeti njihove varnostne konfiguracije.

Skupnih pastem:

  • Imena skupin lažno pomeni dovoljenje: Iz škatle, SharePoint določa skupine, katerih imena pomeni del raven varnosti. Razmislite o skupini "Darovalec". Ena poznajo SharePoint varnost lahko tudi pogled na to ime in predpostavimo, da vsak član te skupine lahko "prispevajo" na katero koli mesto/seznam/knjižnico v portalu. To lahko res, vendar ne zato, ker ime skupine se zgodi, da "darovalec". To je samo res iz škatle, ker skupina je bila zagotovljena raven dovoljenja, ki jih omogoča dodajanje/urejanje/brisanje vsebine v korensko mesto. Prek dedovanja, plačniki"" skupino lahko dodate/uredite/izbrišete vsebino na vsaki podstrani. Se lahko "break" dediščine verige in spremenite raven dovoljenj za sub-stran tako da člani tako imenovanih "prispeva" skupina ne more prispevati sploh, vendar le glasi (na primer). To ne bi bilo dobro, očitno, ker bi bilo zelo zmedeno.
  • Skupine niso opredeljeni na ravni mesta. To je enostavno, da bi jih uporabnik vmesna ploskev. Microsoft zagotavlja priročno povezavo do uporabnika/skupine upravljanje prek vsakem mestu »ljudje in skupine" povezava. To je enostavno za domnevo, da ko sem v mestu "xyzzy" in ustvarim skupino skozi xyzzy na ljudi in skupine povezavo, ki ste pravkar ustvarili skupino, ki obstaja le v xyzzy. To ni tako. Dejansko sem ustvaril skupino za celotno mest.
  • Članstvo v skupinah ne razlikuje po spletni strani (i.e. isto je povsod skupini se uporablja): Razmislite o skupini "lastnik" in dveh mestih, "HR" in "Logistika". Bi bilo normalno, da mislim, da bi dve ločeni posamezniki lastnik te strani — lastnik HR in lastnik logistike. Uporabniški vmesnik omogoča preprosto za varnostnega skrbnika ravnajte ta scenarij. Če nisem vedel bolje, Morda dostop do ljudi in skupin povezave preko HR strani, Izberite "lastniki" skupine in dodajte svoj HR lastnik skupine. Mesec dni kasneje, Logistiko priti na spletu. Sem dostop ljudi in skupin iz strani logistične, Dodaj pull up "lastniki" skupina. Glej HR lastnik tam in ji odstraniti, misleč, da sem jo odstranite iz lastniki na mestu logistike. v bistvu, Sem jo odstranite iz skupine globalni lastniki. Zabava poznamo.
  • Če ne bo ime skupine, ki temelji na posebno vlogo: "Potrjevalce" skupina je odličen primer. Kaj lahko člani te skupine odobri? Kjer so lahko to odobri? Ali res želite ljudi logistika premoči odobritev dokumentov HR? Seveda ne. Vedno ime skupine glede na njihovo vlogo v organizaciji. To bo zmanjšalo tveganje, da je skupini dodeljeno neprimerno ravnjo za določen predmet. Ime skupine glede na njihovo predvideno vlogo. V prejšnjih HR/logistika scenarij, Jaz sem ustvaril dve novi skupini: "HR lastniki" in logistika lastniki"" in dodelite ravni dovoljenj smiselno za vsak in minimalni znesek, potreben za tiste uporabnike, da opravljajo svoje delo.

Drugih koristnih referenc:

Če ste to to daleč:

Prosim povej mi vaše misli prek pripombe ali email mi. Če poznate druge dobre reference, prosim delati isto!

Technorati Tags:

Hitro in enostavno: Ustvarite spletni gradnik podatkovnega pogleda (DVWP)

Obstaja veliko veliko informacij o na WSS 3.0 Spletni gradnik podatkovnega pogleda (DVWP) na spletu iz več virov. Vendar, Sem ugotovil, da je presenetljivo težko najti informacije o tem najprej zelo osnovne. Tukaj je še en članek v "hitro in enostavno" serija je naslov.

Sledite tem korakom, da ustvarite spletni gradnik podatkovnega pogleda (DVWP). Temeljijo na »obvestila" spletni gradnik, vendar velja za večino seznamov.

  1. Ustvarite spletni gradnik za obvestila in ga dodate na stran.
  2. Odprite mesto v programu SharePoint Designer.
  3. Odpiranje spletnega mesta default.aspx.
  4. Izberite spletni gradnik obvestila in desni klik.
  5. Iz kontekstnega menija, Izberite "pretvori v XSLT pogled podatkov".

SharePoint Designer vas obvesti, da ta stran je zdaj po meri iz njene definicije mesta. To ni nujno slabo, vendar obstajajo pomembne posledice (predstava, Nadgradnja, drugi) ki so izven področja uporabe te malo "hitro in enostavno" vnos. Za več informacij o tej temi, Priporočam obeh knjig tukaj kot tudi vaš najljubši Internet iskanja.

Potrdi, da ti je pravilno:

  1. Zaprite in ponovno odprite brskalnik (da bi se izognili pomotoma ponovno objavo izvirnega "Dodaj nov spletni gradnik").
  2. Izberite spletni gradnik puščico kaplja-niz in izberite "Spreminjaje skupnega spletnega gradnika" iz menija.
  3. Orodje ploščo odpre na desni.
  4. Plošča se je spremenila iz svoje običajno Nastavi možnosti za to:
slike

“Ne morem dobiti lastnost column sheme seznama iz SharePointovega seznama” — opis/delo-arounds

Ta teden, smo končno reproducirati problem, ki je bilo prijavljeno oddaljeni uporabnik: Ko je poskušal izvozita vsebino seznama v excel, stvari se zdi, da začnejo delovati, Ampak potem bi Excel pop up napako: "Ne morejo dobiti seznam lastnosti sheme seznama SharePoint". Je tekel urad 2003, Windows XP in povezuje MOSS.

Iskali Internets in videl nekaj špekulacij, vendar nič 100% dokončne. Zato, Ta post.

Problem: Izvažanje pogleda v excel, ki vsebuje datum (datum = podatkovni tip stolpca).

Kakšen obdelan za nas: Pretvorbo datuma »ena vrstica besedila«. Nato, Pretvori nazaj v zmenek.

Ki ga rešiti. To je lepo videti, da pretvorbo delal, dejansko. To was čisto živčen, da pretvorbo stvari na ta način ne, vendar to ni.

Ta bug je vrgel ogromne sence nad datumski podatkovni tip v mislih stranke, tako bomo mogoče iskanju dokončnega odgovora od Microsofta in upajmo, da bom post in posodobitev tukaj v naslednjem kratkem času uradni odgovor in popravek informacije.

Druge navedbe:

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

<namen>

Naročite se na moj blog.

Technorati Tags: ,

Hitro in preprosto: Pošljite email s vlagati hiperpovezava iz programa SharePoint Designer poteka dela

Enkrat ali dvakrat na mesec, nekdo objavi vprašanje forum: "Kako se vključim hiperpovezave do URL, ki ste clickable s SharePoint Designer email?"

Predstavljeno brez nadaljnjih pripomb: (No, dejansko je nadaljnji komentar po slike):

slike

Becky Isserman sledi s koristno razlago o tem, kako v vlagati povezava do elementa v email: 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

Nov izpust: SharePoint Designer potek dela razširitve (string manipulacije funkcij)

POSODOBITEV: Glej tukaj za moje misli o trženju tega projekta: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

Sem bil zaposlen delo na moj Codeplex projekt, ki je trenutno osredotočena na zagotavljanje string manipulacije razširitve poteki dela, ki so ustvarili preko SharePoint Designer.

Za podrobnosti glej tukaj:

Projekt dom: http://www.codeplex.com/spdwfextensions

Javnost: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Različica 1.0 vključuje naslednje novosti:

Funkcija Opis (Če ni isto kot .net funkcijo)
NUM-postavke() Vrne število vpisov"" v nizu glede na navedeno ločilo.

Na primer: NUM-vnosov v nizu "a,b,c" z ločilo"," = 3.

Vnos() Vrne n-žeton v nizu glede na navedeno ločilo.
Dolžina String.Length
Zamenjaj() String.Replace()
Vsebuje() String.Contains()
Vrne besedo "true" ali besedo "false".
Podniz(začetek) String.Substring(začetek)
Podniz(začetek,dolžina) String.Substring(začetek,dolžina)
ToUpper() String.ToUpper()
String.tolower() String.ToLower()
StartsWith() String.StartsWith()
Vrne besedo "true" ali besedo "false".
EndsWith() String.EndsWith()
Vrne besedo "true" ali besedo "false".

BDC runtime error je pojasnil

Sem povzročil napako BDC ta teden, da do izraza na uporabniški vmesnik in v na 12 panj dnevnik med izvajanjem.

Prvi, pokazalo se je, v uporabniškem vmesniku:

Polj za vstavljanje vseh vrednosti identifikatorjev za pravilno izvršitev primerka SpecificFinder MethodInstance z imenom ni mogoče najti … Zagotovite vhodnih parametrih opisi TypeDescriptor povezani z vse identifikatorje te entitete.

Tu je zaslon strel:

clip_image001

Tudi strjena lava vzrok to sporočilo se pojavi v na 12 panj log na bo (uporabi svoj patentiranega high-tech-don't-try-this-at-home "skrivnostna napake" metoda):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server poslovnih podatkov 6q4x visoko izjema v BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Vrednost identifikatorja ”, vrste ”, ni veljaven. Pričakovana vrednost identifikator vrste»System.string«. na Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Predmet[] subIdentifierValues, »LobSystemInstance «lobSystemInstance) na Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entiteta entiteta, Predmet[] userValues, »LobSystemInstance «lobSystemInstance) na Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Pogled desiredView) na Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() na Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Jaz preiskava okrog ter ustanavljati nekateri vodi v na MSDN forum, vendar niso bili dovolj za mene, da razumejo, kaj sem počel narobe. Sem gledal webcast z Ted Pattison da moje podjetje je squirreled na strežnik in prišel do zavedaš, da moj problem.

V mojem ADF, Sem povezavo z zbirko podatkov SQL, kot je prikazano:

            <Lastnost ime="RdbCommandText" Vrsta="System.String">
              <![CDATA[
                IZBERITE ID NABORA, CARRIER_ID, EFFDT, OPISNEGA, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      DRŽAVE, ADDRESS1, NASLOV2, ADDRESS3, ADDRESS4, MESTO, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      COUNTY, DRŽAVA, POŠTNE, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, RAZŠIRITEV, FAKS, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG iz dbo.PS_CARRIER_ID_VW s (nolock)
                KJER
                  (ID NABORA <> "DELEŽ") in
                  (nižje(CARRIER_ID) >= nižje(@MinId)) in
                  (nižje(CARRIER_ID) <= nižje(@MaxId)) in
                  (nižje(OPISNEGA) KOT spodnji(@InputDescr))
                ]]>
            </Lastnost>

Je zagotovila da SQL iz DBA oseba in sem dobil razumeti, da je a posebno pogled, ki so ustvarili samo zame. Enoličen ključ pa je CARRIER_ID.

Tukaj je bug sem predstavil:

      <Identifikatorji>
        <Identifikator ime="CARRIER_ID" TypeName="System.String" />
        <Identifikator ime="OPISNEGA" TypeName="System.String" /> 
</Identifikatorji>

Nekje vzdolž proge, Je uspelo zamenjati sam o pomenu <Identifikatorji> in doda opisnega, čeprav to ni dejansko identifikatorja. Sem vzel opisnega niz identifikatorjev in presto! Je vse delal.

I hope this saves someone some grief 🙂

Ne moreš premagati SharePointovega Reach

V zadnjih dveh dneh, Sodeloval sem tudi dve srečanji, v katerem smo predstavili rezultate projekta SharePoint. CIO in njegovi ekipi pridružil prvo srečanje. To je standard in ne posebno opazni. IT oddelek je očitno sodelujejo v podjetje zagona projekta vsako tehnologijo. Drugo srečanje razširili na V.P. od trženja, več direktorjev, ki predstavljajo HR, Logistika, Izdelave, Kapitalski projekti, Kakovosti, Nakup, Razvoj podjetja in drugimi oddelki (med katerimi so bili tudi neposredno vpleteno v sedanji fazi). To je mogočni široko občinstvo.

V mojem življenju, predhodno, Sem delal predvsem na ERP in CRM projektih. Oba sta dokaj široko rešitev domene, vendar ne tako široko, kot SharePoint. Celoti realiziran, SharePoint projektov upravičeno in nujno doseči v vsak kotiček in špranjo organizacije. Koliko drugih rešitev podjetja so nekako doseči, da? Ni veliko.

SharePoint jasno predstavlja ogromen prilika za tiste od nas srečo, da se v tem prostoru. Ponuja veliko priložnost za tehnične (ki je nekako obrnil na glavo tukaj pod "Tehnologije si mora kapitan"). Toda še bolje, SharePoint nas izpostavlja obsežno in široko paleto poslovnih procesov prek teh poslih. Koliko CRM strokovnjaki delo s strani proizvodnega podjetja? Koliko ERP svetovalci delo s človeškimi viri na pridobivanja? SharePoint presega oba.

Tako kot vse, to ni popoln, ampak to je prekleti dober kraj za.

Za ljubezen [izpolnite vaše najbolj ljubil oseba/višje bitje], ne spremeni v "naslov’ stolpec mesta.

Na na SharePoint Forumi, občasno nekdo sprašuje o "Spreminjanje oznako naslova" ali o "odstranjevanje naslov iz seznamov".

Bottom line: Ne stori!

Na žalost, uporabniški vmesnik omogoča enosmerno sprememba to oznako stolpca, kot je prikazano:

slike

Naslov je stolpec povezan z elementom"" vrste vsebine. Veliko, veliko, veliko je CT uporabiti ta stolpec in če spremenite tukaj, to valovi, povsod. Obstaja velika verjetnost, da niste nameravali za to zgodilo. Ste verjetno razmišljanje za sebe, "Imam seznam po meri za iskanje in" naslov’ samo nima smisla kot ime stolpca, tako da bom to spremeniti v "kodo stanja’ in dodate stolpec z opisom." Ampak, če sledite s pomočjo za to misel in preimenovati "naslov’ za "Kode stanja", Vsak seznam naslov (vključno s knjižnicami dokumentov) spremembe kode stanja"" in ste verjetno niste nameravali za to zgodilo.

Resnični problem je, da je to enosmerna spremembe. UI "ve" Ta naziv"" je rezervirana beseda. Tako, Če poskusite in spremenite kodo stanja"" nazaj v "Naslov", to hoteti voditi vi in zdaj ste sami pobarvane v kotu using paint that never dries 🙂

Torej kaj se zgodi, če ste že spremenili? Nisem še videl odgovor, si vsi želimo, ki je preprost in enostaven način, da spremenite oznaki nazaj v "Naslov". takoj, najboljši nasvet je, da jo spremenite v nekaj kot "Doc/točki naslov". To je dovolj generično oznako, ki ne sme biti preveč neskladen za uporabnike.

Imam nekaj idej, ki so na mojem to-do seznamu stvari za raziskave:

  • Obrnite se na Microsoft.
  • Nekaj narediti s predmetnega modela, morda v povezavi s funkcijo.
  • Razbrati shemo zbirke podatkov in ročno posodobiti SQL. (Vi should zveza mikroskop spredaj početje to četudi; To bo verjetno nična vzdrževalno pogodbo).

Če kdo ve, kako rešiti to, prosim pokomentirajte.

Posodobitev pozno popoldne, 11/15: Sem našel ta povezava, ki opisuje metodo za ustvarjanje vrste seznam, ki nima naslova stolpca: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC SPD in prijateljem, CDATA

Sem opazil nekaj nerodno in nepotrebno ročno-kodiranje RdbCommandText v nekaj primerov (vključno z MSDN dokumentacijo).

Sem želel poudariti novincem BDC, da ukaze je mogoče zaviti notri CDATA tag v njihovem "naravnem" obrazec. Tako, to nerodno gradnje:

<Lastnost ime="RdbCommandText" Vrsta="System.String">
Izberite dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.settlement iz dbo.MCRS_SETTLEMENT
KJER (ID &gt;= @MinId) IN (ID &lt;= @MaxId)
</Lastnost>

lahko bolje zastopane na ta način:

<Lastnost ime="RdbCommandText" Vrsta="System.String">
<![CDATA[
Izberite dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.settlement iz dbo.MCRS_SETTLEMENT
KJER (ID >= @MinId) IN (ID <= @MaxId)
]]>
</Lastnost>

</namen>

BDC premaz

Uvod v BDC

Funkcionalno primer: BDC ADF, ki povezuje SQL zbirko podatkov z vgrajeni uporabniški id in geslo

Sem potreboval, da žica do MOSS v SQL zbirko podatkov prek BDC. Za namene testiranja POC, Sem hotel embed SQL uporabnik ime ter parola v samodejni podajalnik dokumentov. Začenši z to predlogo (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Sem ustvaril ADF, ki povezuje določen primerek strežnika SQL in prijavi določenega uporabnika id in geslom in prikazano v ta košček:

  <LobSystemInstances>
    <LobSystemInstance ime="ClaimsInstance">
      <Lastnosti>
        <Lastnost ime="AuthenticationMode" Vrsta="System.String">Prepustnost</Lastnost>
        <Lastnost ime="DatabaseAccessProvider" Vrsta="System.String">SqlServer</Lastnost>
        <Lastnost ime="Vir podatkov RdbConnection" Vrsta="System.String">dejanski serveractual stopnje</Lastnost>
        <Lastnost ime="RdbConnection začetni katalog" Vrsta="System.String">Dejanski začetni katalog</Lastnost>
        <Lastnost ime="RdbConnection vgrajene varnostne" Vrsta="System.String">SSPI</Lastnost>
        <Lastnost ime="RdbConnection združevanje" Vrsta="System.String">FALSE</Lastnost>

        <!-- To so ključne vrednote: -->
        <Lastnost ime="ID uporabnika RdbConnection" Vrsta="System.String">actual ID uporabnika</Lastnost>
        <Lastnost ime="RdbConnection geslo" Vrsta="System.String">sedanji parola</Lastnost>
        <Lastnost ime="RdbConnection Trusted_Connection" Vrsta="System.String">FALSE</Lastnost>

      </Lastnosti>
    </LobSystemInstance>
  </LobSystemInstances>

To ni najboljše prakse, vendar je koristno za hitro in enostavno konfiguracijo za testiranje. To je bil presenetljivo težko razbrati. Nikoli nisem našel funkcionalno primer z preiskava keywords:

  • ADF vdelan, userid in geslo
  • Vdelaj id uporabnika in geslo v samodejni podajalnik dokumentov
  • Vdelaj id uporabnika in geslo v adf bdc
  • SharePoint bdc premaz
  • SharePoint vdelajo uporabniško ime in geslo v samodejni podajalnik dokumentov

</namen>

Naročite se na moj blog.