Impersonation, SSO & custom web parts

Download Report

Transcript Impersonation, SSO & custom web parts

Impersonation, SSO &
custom web parts
Using Impersonation and Single Sign-On to
access corporate data from within a custom
SharePoint web part
MikeFITZSIMON
SYSTEMSARCHITECT
FITZSIMON IT CONSULTING PTY LTD
Agenda
 A Custom Web Part overview
 Single Sign-On
 Impersonation
 Generating graphics on the server
 What can go wrong
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
Custom Web Part
 Web part generates this graph (.gif) dynamically from
corporate data in a database
 The currently-logged-in user does not have
permission to access this data
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
Single Sign-On Service
 To many, a great disappointment
 Installed by default with SPS, but set to
manual start-up
 Must run under an account which




Is a local administrator
Belongs to STS_WPG & SPS_WPG groups
Has db_owner rights for the SharePoint
Services configuration database
Belongs to Server Administrators role for the
SQL Server holding the SSO database
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
SSO Application Definition
 Unique name for the application plus
definition of logon fields

Username, password, domain, database
name, secret Q&A, whatever
 SharePoint Portal Server Central
Administration ->
Component Configuration ->
Manage settings for single sign-on ->
Manage settings for enterprise application
definitions
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
Impersonation
 Using SSO in a Web Part
Imports Microsoft.SharePoint.Portal.SingleSignon
 RenderWebPart
Protected Overrides Sub RenderWebPart(ByVal output As
System.Web.UI.HtmlTextWriter)
 Use SingleSignOn service to change user
identity to impersonate a user with sufficient
rights to access the data.
'context for new identity
Dim objContext As WindowsImpersonationContext
Dim arrCredentials() As String
Dim strUID As String
Dim strDomain As String
Dim strPassword As String
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
Impersonation
 try to get credentials from SSO service
Credentials.GetCredentials(Convert.ToUInt32("0"), _
"ApplicationName", arrCredentials)
strUID = arrCredentials(0)
strDomain = arrCredentials(1)
strPassword = arrCredentials(2)
 change the context
Dim objIdentity As WindowsIdentity
objIdentity = IdentityHelper.CreateIdentity(strUID,
strDomain, strPassword)
objContext = objIdentity.Impersonate
 …draw chart…
 undo impersonation, revert to logged-in user's
credentials.
objContext.Undo()
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
IdentityHelper.CreateIdentity
 See attached IdentityHelper.vb
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
Generating graphics on the server
 Office Web Components 2003 installed on
Server
Imports Microsoft.Office.Interop.Owc11
 create a ChartSpaceClass object | add a
chart to it
Protected Overrides Sub CreateChildControls()
 chSpace = New ChartSpaceClass
chart = chSpace.Charts.Add(0)
 Allow custom drawing within chart space
chSpace.AllowRenderEvents = True
 specify the type of graph to be displayed
chart.Type =
ChartChartTypeEnum.chChartTypeAreaStacked
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
What can go wrong
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au
Questions
 Mike Fitzsimon
[email protected]
 Mike’s blog
http://mike.brisgeek.com
 Fitzsimon IT Consulting
www.fitzsimon.com.au
Fitzsimon IT CONSULTING PTY LTD
www.fitzsimon.com.au