|
1 | 1 | <html> |
2 | 2 | <body> |
3 | | - <h1>DotNetOpenAuth Library and samples </h1> |
4 | | - <h3>Change history </h3> |
5 | | - <ul> |
6 | | - <li>2007-03-28 Created by Willem Muller (willem.muller@netidme.com)</li> |
7 | | - <li>2007-04-04 Updated by Andrew Arnott (andrewarnott@gmail.com)</li> |
8 | | - <li>2008-03-27 Updated by Andrew Arnott (andrewarnott@gmail.com)</li> |
9 | | - <li>2009-03-26 Updated by Andrew Arnott (andrewarnott@gmail.com)</li> |
10 | | - </ul> |
11 | | - <h1>General</h1> |
12 | | - <h3>Prerequisites:</h3> |
13 | | - <ul> |
14 | | - <li>Microsoft .NET 3.5</li> |
15 | | - <li>Visual Studio 2008 or IIS</li> |
16 | | - <li>Microsoft Windows (XP or Vista, or 2003 Server or later)</li> |
17 | | - <li>See the tools section further below for some helpful software </li> |
18 | | - </ul> |
19 | | - <h2>Getting the samples running</h2> |
20 | | - <h3>Testing the relying party/provider samples with each other</h3> |
21 | | - <p>In this scenario you can use the Personal Web Server (PWS) that is included in Visual |
22 | | - Studio 2008.</p> |
23 | | - <ol> |
24 | | - <li>Open the DotNetOpenAuth.sln or Samples.sln file in VS2008.</li> |
25 | | - <li>Right-click on each web project under the Samples folder and click "View in Browser" |
26 | | - to start PWS for each web site.</li> |
27 | | - <li>Each web project will be dynamicly assigned a port number. Find the port number |
28 | | - on the URL of the browser window for the Provider. </li> |
29 | | - <li>Now log into the Relying Party sample web site with this OpenID: http://localhost:<i>providerport</i>/user/bob. |
30 | | - </li> |
31 | | - <li>When the provider prompts you for a password, type in 'test'.</li> |
32 | | - </ol> |
33 | | - <h3>Testing with other relying party/provider sites on the Internet</h3> |
34 | | - <ul> |
35 | | - <li>You need to have a public IP address to test the Provider sample with other Relying |
36 | | - Party web sites out on the Internet so they can find your Provider. </li> |
37 | | - <li>You might need to configure your firewall and/or router to forward traffic to your |
38 | | - computer.</li> |
39 | | - <li>Note that some OpenID-enabled sites block URLs that use just IP addresses. |
40 | | - You may need to get a DNS name to point at your public IP address in order for your |
41 | | - scenario to work.</li> |
42 | | - <li>Ensure your firewall is configured to allow inbound and outbound TCP port 80 connections.</li> |
43 | | - <li>Since VS2008 Personal Web Server (PWS) does not allow web requests from other servers |
44 | | - (as required by OpenID relying parties trying to log into your server), testing |
45 | | - with external relying parties requires you to use IIS to host your server.</li> |
46 | | - </ul> |
47 | | - <h3>Setting up the IIS Applications</h3> |
48 | | - <ul> |
49 | | - <li>Create an IIS web application for each sample. </li> |
50 | | - <li>Check that IIS is responding to requests on the port that your router will be forwarding |
51 | | - requests to you on, if applicable.</li> |
52 | | - <li>Enable anonymous access to each site.</li> |
53 | | - <li>Set up URL rewriting.<ul> |
54 | | - <li>This is the process of url conversion like: user/john ->user.aspx?username=john</li> |
55 | | - <li>In IIS, go properties on the website (not the virtual directory)</li> |
56 | | - <li>Go the Home Directory Tab and click Configuration</li> |
57 | | - <li>Insert a wildcard extension </li> |
58 | | - <li>Enter 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll' for the executable</li> |
59 | | - <li>Uncheck the 'Verify that file exists button'</li> |
60 | | - <li>OK your way out of everything</li> |
61 | | - <li>If you navigate to 'http://localhost/OpenIdProviderWebForms/user/bob' you should |
62 | | - see the text: 'OpenID identity page for bob'</li> |
63 | | - </ul> |
64 | | - </li> |
65 | | - </ul> |
66 | | - <p>Note: These instructions work on IIS 6 with Windows 2003 Server. Other version of |
67 | | - IIS (such as the one with windows XP - IIS 5.1) will vary. For IIS 5.1 , try follow |
68 | | - instructions documented toward the end of this article: http://www.codeproject.com/aspnet/URLRewriter.asp. |
69 | | - If you still have issues (particularly if you get 404 when trying the demos or experience |
70 | | - something like <a href="http://groups.google.co.uk/group/microsoft.public.inetserver.iis/browse_thread/thread/386efa0bf596234b/ee1fab525c129071?lnk=st&q=URLRewriter+IIS+XP+404&rnum=2&hl=en#ee1fab525c129071"> |
71 | | - this</a>) try this: </p> |
72 | | - <ol> |
73 | | - <li>create a file extension mapping for .openid files that maps to asp.net (c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll)</li> |
74 | | - <li>browse to .openid eg: http://IP/OpenIdProviderWebForms/user/bob.openid</li> |
75 | | - </ol> |
76 | | - <p>Configure VS2008 to use IIS rather than PWS</p> |
77 | | - <ol> |
78 | | - <li>Right-click on one of the web projects within Solution Explorer.</li> |
79 | | - <li>Select Property Pages.</li> |
80 | | - <li>Select Start Options on the left.</li> |
81 | | - <li>Under the Server section on the right, select Use Custom Server and fill in the |
82 | | - Base URL.</li> |
83 | | - </ol> |
84 | | - <h2>The demos</h2> |
85 | | - <p>These will illustrate OpenID in action. You can debug the code to get a good idea |
86 | | - of what's going on. The implementations are built on top of ASP.NET's forms authentication. |
87 | | - So basically if you're unauthenticated and get to page requiring authentication, |
88 | | - it takes you through the OpenID identity provider, tracks in session that you've |
89 | | - left and then recognizes the user when they return to the relying party and only |
90 | | - then logs them into FormsAuth and redirects them to their originally requested page. |
91 | | - </p> |
92 | | - <h3>The Relying Party Demo </h3> |
93 | | - <ol> |
94 | | - <li>Kill all session cookies</li> |
95 | | - <li>Create an OpenID account with one of the Open Servers listed below OR use the demo |
96 | | - Server as the identity provider - using http://[EXTERNAL IP]/OpenIdProviderWebForms/user/bob |
97 | | - with the password 'test'</li> |
98 | | - <li>Go to http://[EXTERNAL IP]/OpenIdRelyingPartyWebForms/default.aspx and enter the |
99 | | - OpenIDURL</li> |
100 | | - <li>You are required to authenticate with the provider. Some fields (eg Name, DoB, Country |
101 | | - etc.) are requested, some required and some omitted. Your OpenID provider should |
102 | | - prompt you for the relevant fields, or at least make you aware which fields its |
103 | | - passing back. The exact page flow and auhentication mechanism will be implemented |
104 | | - differently by different identity providers.</li> |
105 | | - <li>After providing the required info and loggin in, you are taken back to the http://[EXTERNAL |
106 | | - IP]/OpenIdRelyingPartyWebForms/default.aspx and the available profile information |
107 | | - is displayed</li> |
108 | | - </ol> |
109 | | - <h3>The Provider Demo </h3> |
110 | | - <ol> |
111 | | - <li>Kill all session cookies</li> |
112 | | - <li>Get the full openID url for a user based on whats in web.config. By default you |
113 | | - can use http://[EXTERNAL IP]/OpenIdProviderWebForms/user/bob with the password 'test'</li> |
114 | | - <li>Go to http://[EXTERNAL IP]/OpenIdRelyingPartyWebForms/default.aspx and enter the |
115 | | - OpenIDURL of the local server</li> |
116 | | - <li>The user is prompted for their password. The username field is propulated from the |
117 | | - openid url and grayed out.</li> |
118 | | - <li>The user is presentend with their identity url, a trust root (the site requiring |
119 | | - authentication) and set of fields to complete. Only the requested or required fields |
120 | | - are presented. Fields with * means the consumer requires it. </li> |
121 | | - <li>The user completes the fields and clicks Yes and are taken to http://[EXTERNAL IP]/OpenIdRelyingPartyWebForms/default.aspx |
122 | | - with their available profile information.</li> |
123 | | - </ol> |
124 | | - <h3>Interesting classes and methods</h3> |
125 | | - <h4>Relying party</h4> |
126 | | - <ul> |
127 | | - <li>DotNetOpenId.RelyingParty.<b>OpenIdRelyingParty</b> - programmatic access to everything |
128 | | - a relying party web site needs.</li> |
129 | | - <li>DotNetOpenId.RelyingParty.<b>OpenIdTextBox</b> - An ASP.NET control that is a bare-bones |
130 | | - text input box with a LogOn method that automatically does all the OpenId stuff |
131 | | - for you.</li> |
132 | | - <li>DotNetOpenId.RelyingParty.<b>OpenIdLogin</b> - Like the OpenIdTextBox, but has a |
133 | | - Login button and some other end user-friendly UI built-in. Drop this onto |
134 | | - your web form and you're all done!</li> |
135 | | - </ul> |
136 | | - <h4>Provider</h4> |
137 | | - <ul> |
138 | | - <li>DotNetOpenId.Provider.<b>OpenIdProvider</b> - programmatic access to everything |
139 | | - a provider web site needs.</li> |
140 | | - <li>DotNetOpenId.Provider.<b>ProviderEndpoint</b> - An ASP.NET control that you can |
141 | | - drop in and have an instant provider endpoint on your page.</li> |
142 | | - <li>DotNetOpenId.Provider.<b>IdentityEndpoint</b> - An ASP.NET control that you can |
143 | | - drop onto the page for your own or your customers' individual identity pages |
144 | | - for discovery by Relying Parties.</li> |
145 | | - </ul> |
146 | | - <h3>Development tips / Issues I found:</h3> |
147 | | - <p>Here is a growing list of <a href="http://openiddirectory.com/allcats.html">OpenID |
148 | | - enabled sites</a> to test with. </p> |
149 | | - <p>Good sites to test with if you're developing a relying party:<ul> |
150 | | - <li><a href="http://www.myopenid.com/">http://www.myopenid.com/</a></li> |
151 | | - <li><a href="http://claimid.com/">http://claimid.com/</a> (supports registration extensions)</li> |
152 | | - <li><a href="http://www.freeyourid.com/">http://www.freeyourid.com/</a> (supports registration |
153 | | - extensions)</li> |
154 | | - </ul> |
155 | | - <p>Good sites to test with if you're developing a server:<ul> |
156 | | - <li><a href="http://beta.zooomr.com/home">http://beta.zooomr.com/home</a> *</li> |
157 | | - <li><a href="http://cr.unchy.com/">http://cr.unchy.com/</a> (supports registration |
158 | | - extensions)</li> |
159 | | - <li><a href="http://blog.identity20.eu">http://blog.identity20.eu</a> *</li> |
160 | | - <li><a href="http://openiddirectory.com">http://openiddirectory.com</a> *</li> |
161 | | - <li><a href="http://www.centernetworks.com/">http://www.centernetworks.com/</a> |
162 | | - (supports registration extensions)</li> |
163 | | - <li><a href="http://www.loudisrelative.com">http://www.loudisrelative.com</a> |
164 | | - (supports registration extensions)</li> |
165 | | - <li><a href="http://rssarchive.com/index.html">http://rssarchive.com/index.html</a> |
166 | | - </li> |
167 | | - <li><a href="http://www.jyte.com">http://www.jyte.com</a> (supports registration |
168 | | - extensions)</li> |
169 | | - <li><a href="http://dis.covr.us/">http://dis.covr.us/</a> </li> |
170 | | - </ul> |
171 | | - * These sites seem to block outgoing traffic that is not on a non standard HTTP |
172 | | - port like 80 and 443. Therefore you'll need to host on a proper internet domain |
173 | | - before doing any testing with them. |
174 | | - <p>Useful tools: |
175 | | - <ul> |
176 | | - <li><a href="http://www.fiddlertool.com/fiddler/">Fiddler</a> - this will allow you |
177 | | - to monitor HTTP traffic when using IE</li> |
178 | | - <li><a href="http://www.bayden.com/Other/">TamperIE</a> - allows you to change form |
179 | | - data before posting it</li> |
180 | | - <li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&displaylang=en"> |
181 | | - IE Developer toolbar</a> - good tool for general IE UI development. Has some neat |
182 | | - features for quickly clearing cookies etc.</li> |
183 | | - <li><a href="http://www.iopus.com/download/">iMacros</a> - good for automating web testing</li> |
184 | | - </ul> |
| 3 | + <h1>DotNetOpenAuth Library and samples</h1> |
| 4 | + <p>DotNetOpenAuth is a .NET library that enables OpenID, OAuth and InfoCard support |
| 5 | + to be easily added to your web and/or desktop applications. </p> |
| 6 | + <p>The project site for this library is hosted at |
| 7 | + <a href="http://dotnetopenid.googlecode.com/"> |
| 8 | + http://dotnetopenid.googlecode.com/</a>. Please visit that web site for |
| 9 | + documentation, support and maintenance releases.</p> |
| 10 | + <p>As with any library that is used for security-sensitive purposes such as |
| 11 | + authentication and authorization, you should periodically check the project web |
| 12 | + site for updates to this library before and after you install it into a desktop |
| 13 | + or web application.</p> |
185 | 14 | </body> |
186 | 15 | </html> |
0 commit comments