The The SharePoint SharePoint Cowboy Cowboy Eric Shupps CKS:DEV CKS:DEV Patterns Patterns & & Practices Practices www.sharepointcowboy.com www.sharepointcowboy.com [email protected] [email protected] facebook.com/sharepointcowboy slideshare.net/eshupps @eshupps authorization Resource Owner Resource Server Grants access to a protected resource Hosts the protected resource and accepts access requests Client Application making protected resource requests on behalf of the resource owner Authorization Server Issues access tokens.
Download ReportTranscript The The SharePoint SharePoint Cowboy Cowboy Eric Shupps CKS:DEV CKS:DEV Patterns Patterns & & Practices Practices www.sharepointcowboy.com www.sharepointcowboy.com [email protected] [email protected] facebook.com/sharepointcowboy slideshare.net/eshupps @eshupps authorization Resource Owner Resource Server Grants access to a protected resource Hosts the protected resource and accepts access requests Client Application making protected resource requests on behalf of the resource owner Authorization Server Issues access tokens.
The The SharePoint SharePoint Cowboy Cowboy Eric Shupps CKS:DEV CKS:DEV Patterns Patterns & & Practices Practices www.sharepointcowboy.com www.sharepointcowboy.com [email protected] [email protected] facebook.com/sharepointcowboy slideshare.net/eshupps @eshupps authorization Resource Owner Resource Server Grants access to a protected resource Hosts the protected resource and accepts access requests Client Application making protected resource requests on behalf of the resource owner Authorization Server Issues access tokens Authorization Request Authorization Grant Resource Owner Authorization Grant Client Access Token Authorization Server Access Token Protected Resource Resource Server 1 User requests access App requests Request Token App builds auth link w/ Request Token 2 Provider returns Request Token User requests URL + Request Token Provider returns access token 3 User requests URL + Access Token App validates access token User granted access Access token validated 1 User requests access App requests Access Token App builds auth link w/ Access Token 2 User requests URL + Access Token Provider returns Access Token App validates access token User granted access Access token validated Identity Provider Security Token Service Manages identity information for principals (STS) Handles requests for trusted identity claims Identity Token Issuer Identity provider associated with a web application Security Token Issuer Trusted resource (farm, server, etc.) Metadata Endpoint Resource information and signing certificate (JSON) Request Token Used to request permission to protected resource Access Token Used by App to access resource on behalf of user Realm Azure ACS Operation scope for authorization Cloud-based security token service (IP-STS) User browses to App SP gets request token from ACS SP sends request tokens to browser Browser POSTS parameters to App Browser POSTS request token to app App requests access token from SP App requests access token from ACS SP validates S2S trust App establishes context ACS provides access token App establishes context Online On Premise SP returns parameters User browses to app On Premise Get POST parameters from SP Get claims from Windows identity Parse out Context Token Get access token with S2S Read and validate context token Establish client context Get access token Get client context from SP with access token Online Get request parameters Tenant ID Start End Tenant ID Client ID App URL Azure ACS SharePoint User ID + Issuer + App + Realm IP-STS URL Token sent to IP-STS (Azure ACS) Browser or Event Receiver Tenant ID { "typ":"JWT" "alg":"RS256" "x5t":"kriMPdmBvx68skT8-mPAB3BseeA"}.{"aud":"00000003-0000-0ff1-ce00SharePoint000000000000 Host Web Tenant ID /binarywaveinc.sharepoint.com@2ae1caa2-a173-4989-b8f5-9da45655b8f4" "iss":"00000001-0000-0000-c000-000000000000@2ae1caa2-a173-4989-b8f5-9da45655b8f4" Azure ACS Tenant ID Start "nbf":1400013357 "exp":1400056557 End "nameid":"1003000086ad02d6" UPN "actor":"c90047b7-392a-42e7-8c52-65afa92e5d0d@2ae1caa2-a173-4989-b8f5-9da45655b8f4" Tenant ID STS ID "identityprovider":"urn:federation:microsoftonline“ } Description Link OAuth Working Group http://oauth.net/ OAuth Resource Guide http://bit.ly/14CWPNb Authorization and authentication for apps in SharePoint 2013 http://bit.ly/16f8WFh Setting up an OAuth trust between farms in SharePoint 2013 http://bit.ly/12Yr7e3 Plan for server-to-server authentication in SharePoint 2013 http://bit.ly/1chAgFl What’s new in authentication for SharePoint 2013 http://bit.ly/1e6KaYv Creating High-Trust apps with S2S http://bit.ly/18RL8uL Using O365 to Authorize On-Premise Apps http://bit.ly/1fvv1Bo Explore Play Follow Get Answers Give Feedback Patterns and practices 30+ Visual Studio projects Common scenarios Contribute OFC-B254 Integrating Yammer and Microsoft SharePoint Using .NET DEV-B230 Most Commonly Asked for On-Premises Customizations Reimagined as Applications for SharePoint DEV-B319 Get Started Developing Applications for Microsoft Office and SharePoint Server 2013 DEV-B231 Office Power Hour: New Developer APIs and Features for Applications for Office DEV-B227 Anyone Can Build a SharePoint Application with Microsoft Access OFC-B274 Implementing Microsoft SharePoint 2013 Hybrid for Search, Business Connectivity Services, Microsoft OneDrive for Business and Yammer DEV-B232 Creating Cloud Hosted Line-of-Business Applications with Apps for Office, Microsoft Office 365, Microsoft Azure, and Windows Phone 8 OFC-B311 A Practical Use of External Data Sources DEV-B357 Developing Office 365 Cloud Business Applications DEV-B387 Deep Dive into Mail Compose Applications APIs DEV-B386 Setting Up Your On-Premises Environment for App Development DEV-B228 Build Connected Productivity Apps for SharePoint and Office DEV-B390 SharePoint Power Hour: New Developer APIs and Features for Apps for SharePoint DEV-B389 Who Are You and What Do You Want? Working with OAuth in Microsoft SharePoint 2013 EXM04 Exam Prep: 70-331 and 70-332 http://channel9.msdn.com/Events/TechEd www.microsoft.com/learning http://microsoft.com/technet http://microsoft.com/msdn