{"id":193,"date":"2011-01-13T09:35:40","date_gmt":"2011-01-13T08:35:40","guid":{"rendered":"http:\/\/www.capri-soft.de\/blog\/?p=193"},"modified":"2011-04-12T09:17:30","modified_gmt":"2011-04-12T07:17:30","slug":"fluorinefx-single-sign-on-per-windows-authentifizierung","status":"publish","type":"post","link":"https:\/\/www.capri-soft.de\/blog\/?p=193","title":{"rendered":"FluorineFX: Single-Sign-On per Windows Authentifizierung"},"content":{"rendered":"<h1>Aufgabenstellung<\/h1>\n<p>In einem Windows Netzwerk mit Windows Servern sollen beim Aufruf einer Intranet-Web-Anwendung der angemeldete Benutzer automatisch ermittelt werden, so dass keine Benutzername\/Kennwort-Maske zus\u00e4tzlich erforderlich ist. Anhand des Benutzernamens k\u00f6nnen Berechtigungen festgemacht werden, die z.B. \u00fcber ein Benutzerrollen-Konzept zugewiesen werden k\u00f6nnen.<\/p>\n<h1>Ansatz<\/h1>\n<p>Es wird die FluorineFX-API verwendet um den Windows User zu ermitteln. Dies kann im Preloader der Flex\/Flash-Anwendung geschehen. Die Masken werden nachtr\u00e4glich anhand der Rolle aufgebaut bzw. angepasst.<\/p>\n<h2>Definition des Benutzerrollenkonzeptes<\/h2>\n<p>Eine Rolle ist eine Aufgabe, die eine Person in einem Unternehmen hat. In der Datenbank w\u00fcrde man auf relationaler Ebene 3 Tabellen ben\u00f6tigen, um ein Benutzerrollen-Konzept zu realisieren. Ein Benutzer hat keine, eine oder mehrere Rollen, wobei eine Rolle keinem, einem oder mehreren Benutzern zugewiesen werden kann. Man ben\u00f6tigt also eine Tabelle <strong>USER <\/strong>und eine Tabelle <strong>ROLE<\/strong>. Da es sich hierbei um eine M:N-Beziehung handelt, ensteht eine Zusatztabelle USERROLE, die die Foreign Keys der Tabelle USER und ROLE speichert.<\/p>\n<h1>Vorraussetzungen<\/h1>\n<p>In der Firma wird vorzugsweise der Internet-Explorer verwendet. Die Verwendung von Firefox ist m\u00f6glich, ben\u00f6tigt aber eine Spezialkonfiguration f\u00fcr Windows-Authentifizierung.<\/p>\n<p>Im IE:<\/p>\n<p>Unter Extras \/ Internetoptionen \/ Erweitert \/ Integrierte Windows Authentifzierung aktivieren<\/p>\n<p>Im Firefox:<\/p>\n<ul>\n<li>in der Adressleiste &#8222;about:config&#8220; eingeben<\/li>\n<li>im Fenster rechte Maustaste, dann Neu -&gt; String<\/li>\n<li>Eigenschaftsnamen &#8222;network.automatic-ntlm-auth.trusted-uris&#8220; eingeben<\/li>\n<li>String-Wert: Name des Portalrechners. Wenn auf das Portal beispielsweise<\/li>\n<\/ul>\n<p>\u00fcber http:\/\/musterfirma\/teamworks zugegriffen wird ist der korrekte Wert &#8222;musterfirma&#8220; eingetragen<\/p>\n<p>Im IIS Manager sollte mit der rechten Maustaste auf der Web-Anwendung \/ Eigenschaften der Haken &#8222;Windows Authentication&#8220; gesetzt sein, sonst liefert der IIS nichts zur\u00fcck. <\/p>\n<h1>L\u00f6sung<\/h1>\n<p>1.) Anlegen der 3 Tabellen USER, USERROLE und ROLE.<br \/>\n2.) Der Windows-User kann in einem ordin\u00e4ren Backendservice mit folgendem Code ermittelt werden:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nSystem.Security.Principal.WindowsPrincipal p =\r\nSystem.Threading.Thread.CurrentPrincipal as System.Security.Principal.WindowsPrincipal;\r\nstring strName = p.Identity.Name;\r\nstring userWithDeletedDomainPrefix = strName.Substring(strName.IndexOf(&quot;\\\\&quot;) + 1).Trim();\r\n<\/pre>\n<p>3.) Reaktion in der Flex-Anwendung auf die zugewiesenen Rollen (Maskenaufbau)<br \/>\n4.) Sch\u00fctzen der Backendservices anhand der zugewiesenen Rollen (Auch ohne Flex keine sicherheitskritischen Daten aufrufbar)<\/p>\n<iframe src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=https%3A%2F%2Fwww.capri-soft.de%2Fblog%2F%3Fp%3D193&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\" style=\"border:none; overflow:hidden; width:450px;margin-top:5px;\"><\/iframe>","protected":false},"excerpt":{"rendered":"<p>Aufgabenstellung In einem Windows Netzwerk mit Windows Servern sollen beim Aufruf einer Intranet-Web-Anwendung der angemeldete Benutzer automatisch ermittelt werden, so dass keine Benutzername\/Kennwort-Maske zus\u00e4tzlich erforderlich ist. Anhand des Benutzernamens k\u00f6nnen Berechtigungen festgemacht werden, die z.B. \u00fcber ein Benutzerrollen-Konzept zugewiesen werden k\u00f6nnen. Ansatz Es wird die FluorineFX-API verwendet um den Windows User zu ermitteln. Dies kann &hellip; <a href=\"https:\/\/www.capri-soft.de\/blog\/?p=193\" class=\"more-link\"><span class=\"screen-reader-text\">FluorineFX: Single-Sign-On per Windows Authentifizierung<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,5],"tags":[],"class_list":["post-193","post","type-post","status-publish","format-standard","hentry","category-net","category-adobe-flex"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4yGeN-37","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=193"}],"version-history":[{"count":9,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":364,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/193\/revisions\/364"}],"wp:attachment":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}