{"id":729,"date":"2008-10-15T20:51:45","date_gmt":"2008-10-16T01:51:45","guid":{"rendered":"http:\/\/blogs.devhorizon.com\/reza\/?p=729"},"modified":"2008-10-17T18:56:21","modified_gmt":"2008-10-17T23:56:21","slug":"ssrs-2008-integrated-mode-security","status":"publish","type":"post","link":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/","title":{"rendered":"SSRS 2008 integrated mode: Security"},"content":{"rendered":"<p><span style=\"font-size: 10pt\">When you configure SSRS 2008 to run in SharePoint integrated mode, the way you configure authentication and permissions in your SharePoint Web application matters a lot, because:<br \/>\n<\/span><\/p>\n<ol>\n<li><span style=\"font-size: 10pt\">That&#8217;s what report server uses to control access to report server items and operations.<br \/>\n<\/span><\/li>\n<li><span style=\"font-size: 10pt\">This would dictate what kind of security model you can use in your reports data sources to access external data sources.<br \/>\n<\/span><\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int1.png\" \/><span style=\"font-size: 10pt\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-size: 10pt\"><em>Figure 1: Authentication settings for your Web application is an important step in the integration<\/em><br \/>\n<\/span><\/p>\n<p><span style=\"font-size: 10pt\">Having SharePoint to perform authentication and access control doesn&#8217;t mean that SSRS is unaware of the security context under which reports gets executed. The report server uses an internal component called security extension (only available in SharePoint integrated mode) to query WSS object model to find out whether or not the requested resource or operation can be performed <u>for the passed in security context<\/u>.<br \/>\n<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int2.png\" \/><span style=\"font-size: 10pt\"><br \/>\n<\/span><\/p>\n<p><em><span style=\"font-size: 10pt\">Figure 2: Security extension queries SharePoint OM to check for permissions<\/span><\/em><\/p>\n<p><!--more--><\/p>\n<p><span style=\"font-size: 10pt\">Okay, let me take one question that I often get asked right after I say the above sentence. The question is :<br \/>\n<\/span><\/p>\n<p><span style=\"font-size: 10pt\"><strong>Q<\/strong>) If SharePoint object model is only available on the server on which SharePoint is installed, how does security extension queries SharePoint? Via Web services?<\/span><\/p>\n<p><span style=\"font-size: 10pt\"><strong>A<\/strong>) Nope. Remember, as part of the installation prerequisites on the report server you need to have a minimum installation of SharePoint(Web front end). This makes the object model available on the SSRS machine when they are installed on two separate boxes.<\/span><\/p>\n<p><a href=\"https:\/\/farm4.static.flickr.com\/3031\/2947889598_464c356650_o.png\" title=\"MinimalWFEInstallation by bahrez82, on Flickr\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/farm4.static.flickr.com\/3031\/2947889598_8cc8dc920d.jpg\" alt=\"MinimalWFEInstallation\" width=\"500\" height=\"423\" \/><\/a><\/p>\n<p><span style=\"font-size: 10pt\">Below is just the proof. Uninstall SharePoint bits from the Report server\u00a0 or configure it to Integrated mode without having the Sharepoint bits there and here is the error you get when hitting the report server:<\/span><\/p>\n<p><em>The configuration paramter SharePointIntegrated is set to true but Share Point Object Model cannot be loaded.<\/em><\/p>\n<p><a href=\"https:\/\/farm4.static.flickr.com\/3193\/2947757812_0581b83be4_o.png\" title=\"SharePointObjectModelCannotbeLoad by bahrez82, on Flickr\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/farm4.static.flickr.com\/3193\/2947757812_4b98830be3.jpg\" alt=\"SharePointObjectModelCannotbeLoad\" width=\"805\" height=\"292\" \/><\/a><\/p>\n<p><span style=\"font-size: 10pt\">In short, you set, manage and leverage the security model implemented by SharePoint, but report server just performs the following checks:<br \/>\n<\/span><\/p>\n<ol>\n<li><span style=\"font-size: 10pt\"><strong>Connection Request Validation Check<\/strong>: Whether or not the incoming connection request has access to the report server. If Kerberos is enabled, this request would be under the Windows identity of the user, otherwise in case of NTLM or FBA it is a complete different story and a bit complicated.  Here you go:<br \/>\n<\/span><span style=\"font-size: 10pt\">If Kerberos is not enabled, incoming connection request is under the security context of a trusted account (SharePoint application pool identity). For this validation check, WSS OM is NOT queried. When connection request arrives at the report server, report server compares the application pool identity to the account information that the report server retrieved from the SharePoint configuration databases when the report server started and recognized it as a trusted account. On the report server this account is also added as a windows user and is given a local policy of the &#8220;Impersonate a client after authentication&#8221; property. This account is ONLY used to establish a connection and for impersonating SPUser object on the report server with absolutely no access to the any of the reports or operations.<\/span><\/li>\n<li><span style=\"font-size: 10pt\"><strong>Permission Check<\/strong>: Whether or not the incoming security context has required permission to do what it asks to do \u2013 for example executing a report. If Kerberos is enabled this incoming security context would be under the Windows identity of the user, otherwise (for NTLM or FBA) it is the SPUser object which SharePoint <span style=\"text-decoration: underline\">impersonates<\/span> on behalf of the current logged-in user. For this validation check, WSS OM is queried by security extension.<br \/>\n<\/span><\/li>\n<\/ol>\n<p><span style=\"font-size: 10pt\">Very simple! Eh? <span style=\"font-family: Wingdings\">\ud83d\ude42<\/span><br \/>\n<\/span><\/p>\n<p><span style=\"font-size: 10pt\">Well, when you think about it, it makes much sense to off-load some of the responsibilities from SSRS side to SharePoint side and have SharePoint take over all report-related security. SSRS authorization model (native mode) is not anywhere close to what SharePoint offers. Two big wins right off top of my head:<\/span> <span style=\"font-size: 10pt\"><\/span><\/p>\n<ul>\n<li><span style=\"font-size: 10pt\">Beauty of role inheritance (Which doesn&#8217;t exist in SSRS native mode)<\/span> <span style=\"font-size: 10pt\"><\/span><\/li>\n<li><span style=\"font-size: 10pt\">Flexibility of report-level permissions (Rather than task-based permissions used by SSRS native mode)<br \/>\n<\/span><\/li>\n<\/ul>\n<p><span style=\"font-size: 10pt\">Again, you&#8217;re in much better control of your reports if you allow SharePoint to be in charge of security! <\/span><\/p>\n<p><span style=\"font-size: 10pt\">Aside from the way security is setup on the SharePoint Web application; there are three more important factors that have a <strong>big time<\/strong> effect on how connections and requests are made between the two servers:<br \/>\n<\/span><\/p>\n<ol>\n<li><span style=\"font-size: 10pt\">Authentication Mode in Reporting Services Integration page in the Central administration site. In this page, you should use Windows Integrated only for the following scenarios, <\/span><span style=\"font-size: 10pt\">for the rest use Trusted Account mode.<\/span>\n<ul>\n<li><span style=\"font-size: 10pt\">Your environment is Kerberos enabled<br \/>\n<\/span><\/li>\n<li><span style=\"font-size: 10pt\">You have a single-box deployment scenarios.<br \/>\n<\/span><\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int3.png\" \/><span style=\"font-size: 10pt\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-size: 10pt\"><em>Figure 3: When you install SSRS Add-in for SharePoint you can authentication mode<\/em><\/span><\/li>\n<\/ol>\n<blockquote><p><strong>Important<\/strong>: As I mentioned <a href=\"https:\/\/blogs.devhorizon.com\/reza\/?p=718\">here<\/a>, as part of the integration , Reporting Services Add-in installs bunch of Proxy endpoints in the 12\/ISAPI\/ReportServer folder. Thankfully, if you have chosen the Trusted account authentication mode in the page above,\u00a0 when you are developing against these proxy endpoints the add-in handles the exchange of credentials between the SharePoint server and the report server , so you are off the hook! \ud83d\ude09<\/p><\/blockquote>\n<ol>\n<li><span style=\"font-size: 10pt\">Service Accounts: As I said <a href=\"https:\/\/blogs.devhorizon.com\/reza\/?p=718\">here<\/a> and <a href=\"http:\/\/www.microsoft.com\/technet\/community\/columns\/secmvp\/sv0408.mspx\">here<\/a>, my first choice, ALWAYS is domain user accounts, all the way through with no exception and no matter how I integrate both products (Stand-alone or distributed). Troubleshooting Network Service, Local Service and Local system is just PITA. There is this fantastic table <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/bb326356.aspx\">here<\/a> that provides service account recommendations for different deployment scenarios. Read up for yourself!<br \/>\n<\/span><\/li>\n<li><span style=\"font-size: 10pt\">Your security settings in the report data source itself. Data source is the last stop at determining what security context your report should use to access the external data source.<\/span><span style=\"font-size: 10pt\"> As you can see in the picture below, after you deploy your data source to a Data Connection Library from <a href=\"http:\/\/en.wikipedia.org\/wiki\/Business_Intelligence_Development_Studio\">BIDS<\/a>, you still have a chance to edit the data source definition by choosing the &#8220;<strong>Edit Data Source Definition<\/strong>&#8221; from the provided ECB (<\/span>Edit Control Button<span style=\"font-size: 10pt\">) menu. <\/span><span style=\"font-size: 10pt\">In fact, you have a mini SSO functionality here by which you can map the security context of the caller to either a sql or even a windows account. Isn&#8217;t that very nice feature that you can specify a Windows account here? This comes extremely handy when you don;t use Kerberos. More on Kerberos later in this post.<\/span><\/li>\n<\/ol>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int4.png\" \/><\/p>\n<p><span style=\"font-size: 10pt\"><\/span><\/p>\n<p align=\"center\"><span style=\"font-size: 10pt\"><em>Figure 4:  Option to edit data source<\/em><br \/>\n<\/span><\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int5.png\" \/><\/p>\n<p style=\"margin-left: 18pt\" align=\"center\"><span style=\"font-size: 10pt\"><em>Figure 5: Mini SSO functionality available for your data sources , hosted in DCL<\/em><br \/>\n<\/span><\/p>\n<p><span style=\"font-size: 10pt\">Let&#8217;s just look at the error that&#8217;s thrown. if I do NOT select the check box &#8220;<strong>use as Windows credentials<\/strong>&#8221; and still use &#8220;<strong>Stored credential<\/strong>&#8221; option with a windows account (dhltsrv\\administrator):<br \/>\n<\/span><\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int6.jpg\" \/><\/p>\n<p align=\"center\"><span style=\"font-size: 10pt\"><em>Figure 6: Although we specified a Windows account , it was unknown to the backend SQL Server  <\/em><\/span><\/p>\n<p><span style=\"font-size: 10pt\">This error may look bizarre, because dhltsrv\\administrator was just sysadmin of my database server, but it makes sense! we didn&#8217;t specify that dhltsrv\\administrator is a windows account (we didn&#8217;t select the checkbox shown above, right?). It is an unknown account type passed through to your report server. What do you expect?! \ud83d\ude09<br \/>\n<\/span><\/p>\n<p><span style=\"font-size: 10pt\">Now let&#8217;s consider the following combination of security settings in the Web Application, SSRS Authentication mode and data source:<\/span><\/p>\n<p>1) Web Application = Kerberos (Figure1), SSRS Authentication Mode in Central Admin = Windows Authentication (Figure 3), Data Source = Windows authentication (Figure 5)<\/p>\n<ul>\n<li><strong>Result<\/strong>: Connection Request is under the security context of the caller. Permissions checks are performed for the caller.<span style=\"font-size: 10pt\"><\/span><\/li>\n<li><strong>Advantage<\/strong>: Report server uses caller&#8217;s identity during report processing to retrieve data from external data sources. This means that when you set data source properties on such report, you can select the Windows integrated security option for the data source connection. No double hop syndrome!<\/li>\n<\/ul>\n<p>2) Web Application = NTLM or Forms (Figure1), SSRS Authentication Mode in Central Admin  = Trusted Account (Figure 3 \u2013 2<sup>nd<\/sup> option in the drop down), Data Source = Windows authentication   (Figure 5)<span style=\"font-size: 10pt\"><\/span><\/p>\n<ul>\n<li><strong>Result<\/strong>: Connection Request is under the security context of a trusted account (Application Pool Identity). Permissions checks are performed on behalf the SPUser object that SharePoint impersonates when user logs in.<span style=\"font-size: 10pt\"><\/span><span style=\"font-size: 10pt\"><\/span><\/li>\n<li><span style=\"font-size: 10pt\"><strong>Advantage<\/strong>: Easy to install and no need to go through Kerberos setup, but remember this is not going to scale. It is good for stand-alone installations and where Kerberos is not an option.<br \/>\n<\/span><\/li>\n<\/ul>\n<p><span style=\"font-size: 10pt\">Obviously in either cases mentioned above , You can opt-in on having your data source to be executed under the security context of your choice. Have a look again atthe figure 5 above (Mini SSO functionality). <\/span><\/p>\n<p><span style=\"font-size: 10pt\">Hope this post helps you understand how security works in SSRS 2008 integrated mode! See you in the next SSRS post coming down the pipe soon!<\/span><br \/>\n<span style=\"font-size: 10pt\"><span style=\"font-family: Wingdings\"><\/span><br \/>\n<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you configure SSRS 2008 to run in SharePoint integrated mode, the way you configure authentication and permissions in your SharePoint Web application matters a lot, because: That&#8217;s what report server uses to control access to report server items and operations. This would dictate what kind of security model you can use in your reports [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43,47],"tags":[18,3,17],"class_list":["post-729","post","type-post","status-publish","format-standard","hentry","category-moss-2007","category-ssrs","tag-integration","tag-moss-2007","tag-ssrs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SSRS 2008 integrated mode: Security  - Reza Alirezaei&#039;s Blog %<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Reza Alirezaei\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/\"},\"author\":{\"name\":\"Reza Alirezaei\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#\\\/schema\\\/person\\\/cdbb24d283697a65951cb4a14e474938\"},\"headline\":\"SSRS 2008 integrated mode: Security\",\"datePublished\":\"2008-10-16T01:51:45+00:00\",\"dateModified\":\"2008-10-17T23:56:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/\"},\"wordCount\":1399,\"commentCount\":16,\"image\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/wp-content\\\/uploads\\\/2008\\\/10\\\/101608-0248-ssrs2008int1.png\",\"keywords\":[\"Integration\",\"MOSS 2007\",\"SSRS\"],\"articleSection\":[\"MOSS 2007\",\"SSRS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/\",\"url\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/\",\"name\":\"SSRS 2008 integrated mode: Security - Reza Alirezaei's Blog %\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/wp-content\\\/uploads\\\/2008\\\/10\\\/101608-0248-ssrs2008int1.png\",\"datePublished\":\"2008-10-16T01:51:45+00:00\",\"dateModified\":\"2008-10-17T23:56:21+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#\\\/schema\\\/person\\\/cdbb24d283697a65951cb4a14e474938\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/10\\\/15\\\/ssrs-2008-integrated-mode-security\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/wp-content\\\/uploads\\\/2008\\\/10\\\/101608-0248-ssrs2008int1.png\",\"contentUrl\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/wp-content\\\/uploads\\\/2008\\\/10\\\/101608-0248-ssrs2008int1.png\",\"width\":630,\"height\":390},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#website\",\"url\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/\",\"name\":\"Reza Alirezaei's Blog\",\"description\":\"Blogging from the field!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#\\\/schema\\\/person\\\/cdbb24d283697a65951cb4a14e474938\",\"name\":\"Reza Alirezaei\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g\",\"caption\":\"Reza Alirezaei\"},\"url\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/author\\\/rezaa\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SSRS 2008 integrated mode: Security  - Reza Alirezaei's Blog %","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/","twitter_misc":{"Written by":"Reza Alirezaei","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/#article","isPartOf":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/"},"author":{"name":"Reza Alirezaei","@id":"https:\/\/blogs.devhorizon.com\/reza\/#\/schema\/person\/cdbb24d283697a65951cb4a14e474938"},"headline":"SSRS 2008 integrated mode: Security","datePublished":"2008-10-16T01:51:45+00:00","dateModified":"2008-10-17T23:56:21+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/"},"wordCount":1399,"commentCount":16,"image":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int1.png","keywords":["Integration","MOSS 2007","SSRS"],"articleSection":["MOSS 2007","SSRS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/","url":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/","name":"SSRS 2008 integrated mode: Security - Reza Alirezaei's Blog %","isPartOf":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/#primaryimage"},"image":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int1.png","datePublished":"2008-10-16T01:51:45+00:00","dateModified":"2008-10-17T23:56:21+00:00","author":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/#\/schema\/person\/cdbb24d283697a65951cb4a14e474938"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/10\/15\/ssrs-2008-integrated-mode-security\/#primaryimage","url":"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int1.png","contentUrl":"https:\/\/blogs.devhorizon.com\/reza\/wp-content\/uploads\/2008\/10\/101608-0248-ssrs2008int1.png","width":630,"height":390},{"@type":"WebSite","@id":"https:\/\/blogs.devhorizon.com\/reza\/#website","url":"https:\/\/blogs.devhorizon.com\/reza\/","name":"Reza Alirezaei's Blog","description":"Blogging from the field!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.devhorizon.com\/reza\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogs.devhorizon.com\/reza\/#\/schema\/person\/cdbb24d283697a65951cb4a14e474938","name":"Reza Alirezaei","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g","caption":"Reza Alirezaei"},"url":"https:\/\/blogs.devhorizon.com\/reza\/author\/rezaa\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/posts\/729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/comments?post=729"}],"version-history":[{"count":0,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/posts\/729\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/media?parent=729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/categories?post=729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/tags?post=729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}