<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.5pt;
        font-family:Consolas;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 92.4pt 1.0in 92.4pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoPlainText>Delete now, folks - unless one is interested in a discussion
of Pat&#8217;s application of openid. (There is little or no ranting).<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>In summary, the ideas are: (1) adding authorization statements
to the statements that (2) a OP manages, and (3) let AX deliver them. (4) distinguish
machine authentication from user authentication, and (5) distinguish rest-services
openids from user openids.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>---------------------<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>Henceforth, I'm only going to try and only use the term &#8220;SP&#8221;
in its OAUTH sense. I&#8217;ll stop using it in its SAML sense (here).<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>If you see me use &#8220;RP&#8221;, it is a synonym for OpenID
Consumer of openid assertions. <o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>---------------<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>First, Pat! What do you do with the public key of AC, recovered
from the OP? Note, below, I HAD to GUESS what you intended it to do.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>I followed your text until the point where it said&#8230;
oh and no browser (or its driver/user) is involved :-) It made perfect sense WITH
a browser __user__ starting on AC, getting redirected to SP (by OAUTH), getting
redirected to OP.A by user-openid=consumer-key, completing user auth possibly
based on cookies, and redirected back to SP=RP. However, that&#8217;s not
right, Peter! Udner Pats model, we MUST think of OAUTH as a backroom webservice,
between 2 &nbsp;threads on two webserver machines.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; Application Consumer (AC)
in Domain A wants to communicate with<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; Service Provider (SP) in
domain B using OAuth.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; AC has not registered with
SP and has not exchanged a key/secret via<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; oob manual method (which
does not scale very well at the enterprise<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; level)<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; However, AC has registered
with OP in Domain A and has a profile that<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; contains its public key and
other info.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; SP gets the first OAUTH
message.&nbsp; AC has used its openid as its<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; consumer key.&nbsp; SP can
do openid discovery, authenticate AC and get<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; access to AC's public key
(and other info).<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; This is similar to what the
SP would do to grant access to users from<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&gt; domain B assuming that SP
now trusts OP from domain A.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>If one abuses checkid_immediate
a bit (by directly posting a REQ to the OP endpoint obtained from discovery) I _<i>can</i>_
see how ALL browsers and humans can be eliminated. Furthermore, it becomes
clear that the openid passed as the OAUTH consumer-key NOT that of a human
user, but it&#8217;s one attached to a machine &#8220;service&#8221; &#8211; the
&#8220;AC consumer&#8221; process itself.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>That is, a scheduler fires on AC
consumer host, which auto-starts OAUTH flow on some host process, which lands
at SP, where a thread starts openid discoveryflow, which is followed by a slightly-abused
checkid_immediate ping to the OP over a direct POST to OP endpoint learned via discovery.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>One obvious question is&#8230;
how does SP accomplish machine-authentication to OP (and thus get access rights
to pull the openid service&#8217;s AX profile, and the public key)?<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>Let&#8217;s assume that that SP-&gt;OP
authentication happened (perhaps because SP performs SSL client cert auth procedures
with OP, say, where cert matches the public key value from the AX records attached
to a particular https URL endpoint at the OP, one per (service) openid URL)<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>What&#8217;s interesting is, once
the service&#8217;s AX profile is returned to the SP supported by an openid
positive assertion, you have the SP=RP site now do authorization/approval work
with a human user &#8211; but only if the OAUTH initiator supplied the user
openid URL. <o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>Though you don&#8217;t say it,
Im assuming that the SP does a second round of openid auth, now to that user&#8217;s
OP using checkid_immediate again, which completes the SMS procedures (in the
absence of browser cookies), and now releases the elements of the user&#8217;s AX
profile to the SP. These elements are per-subject authorization rights,
granting the SP authority to release and send back certain photos in some object-group,
to the subject=AC.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>The cycle is complete when the acls
are dynamically loaded into the trusted reference monitor of the SP, and enforces
&#8230; such that certain photos can returned to AC&#8217;s original call. Upon
receipt, the AC which does something with them, like print them.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>How did I do?<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&gt; -----Original Message-----<o:p></o:p></p>

<p class=MsoPlainText>&gt; From: Pat Cappelaere [mailto:pat@cappelaere.com]<o:p></o:p></p>

<p class=MsoPlainText>&gt; Sent: Tuesday, December 30, 2008 4:47 PM<o:p></o:p></p>

<p class=MsoPlainText>&gt; To: Peter Williams<o:p></o:p></p>

<p class=MsoPlainText>&gt; Cc: general@openid.net List<o:p></o:p></p>

<p class=MsoPlainText>&gt; Subject: Re: [OpenID] CheckIDRequest with Big AX<o:p></o:p></p>

<p class=MsoPlainText>&gt; <o:p></o:p></p>

<p class=MsoPlainText>&gt; Let me try again to explain and keep the email short
for Dick.<o:p></o:p></p>

<p class=MsoPlainText>&gt; Application Consumer (AC) in Domain A wants to
communicate with<o:p></o:p></p>

<p class=MsoPlainText>&gt; Service Provider (SP) in domain B using OAuth.<o:p></o:p></p>

<p class=MsoPlainText>&gt; AC has not registered with SP and has not exchanged
a key/secret via<o:p></o:p></p>

<p class=MsoPlainText>&gt; oob manual method (which does not scale very well at
the enterprise<o:p></o:p></p>

<p class=MsoPlainText>&gt; level)<o:p></o:p></p>

<p class=MsoPlainText>&gt; However, AC has registered with OP in Domain A and
has a profile that<o:p></o:p></p>

<p class=MsoPlainText>&gt; contains its public key and other info.<o:p></o:p></p>

<p class=MsoPlainText>&gt; SP gets the first OAUTH message.&nbsp; AC has used
its openid as its<o:p></o:p></p>

<p class=MsoPlainText>&gt; consumer key.&nbsp; SP can do openid discovery,
authenticate AC and get<o:p></o:p></p>

<p class=MsoPlainText>&gt; access to AC's public key (and other info).<o:p></o:p></p>

<p class=MsoPlainText>&gt; This is similar to what the SP would do to grant
access to users from<o:p></o:p></p>

<p class=MsoPlainText>&gt; domain B assuming that SP now trusts OP from domain
A.<o:p></o:p></p>

<p class=MsoPlainText>&gt; The difference here is that no browsers are
involved.<o:p></o:p></p>

<p class=MsoPlainText>&gt; The idea is for SP to do a straight post
(checkid_immediate with AX)<o:p></o:p></p>

<p class=MsoPlainText>&gt; to OP and get the data back as XML or json or
whatever.&nbsp;&nbsp; I made the<o:p></o:p></p>

<p class=MsoPlainText>&gt; assumption that services always grant access to
their profile.<o:p></o:p></p>

<p class=MsoPlainText>&gt; <o:p></o:p></p>

<p class=MsoPlainText>&gt; Having done that, imagine that the user openid is
also passed within<o:p></o:p></p>

<p class=MsoPlainText>&gt; that OAuth message.&nbsp; SP can ask the user if he
authorizes AC to access<o:p></o:p></p>

<p class=MsoPlainText>&gt; resources on his behalf via SMS.&nbsp; User answers
using his IPhone (of<o:p></o:p></p>

<p class=MsoPlainText>&gt; course) since he is in the field.<o:p></o:p></p>

<p class=MsoPlainText>&gt; <o:p></o:p></p>

<p class=MsoPlainText>&gt; This makes a consistent mental model for the role of
the OP.&nbsp; Users<o:p></o:p></p>

<p class=MsoPlainText>&gt; and services can have openids and use it for
authentication and<o:p></o:p></p>

<p class=MsoPlainText>&gt; provide access to &quot;certifiable&quot;
information for others.<o:p></o:p></p>

<p class=MsoPlainText>&gt; Once 2 domains agree to open the gates, services can
be accessed with<o:p></o:p></p>

<p class=MsoPlainText>&gt; no effort (manual registration, token management...)
across domains.<o:p></o:p></p>

<p class=MsoPlainText>&gt; All of a sudden, a California firefighter can have
access to satellite<o:p></o:p></p>

<p class=MsoPlainText>&gt; tasking at NASA and get imagery on short notice.<o:p></o:p></p>

<p class=MsoPlainText>&gt; <o:p></o:p></p>

<p class=MsoPlainText>&gt; Another great benefit is that If user grants are
maintained by the<o:p></o:p></p>

<p class=MsoPlainText>&gt; local OP, users have only one place to go to for
revocation.<o:p></o:p></p>

<p class=MsoPlainText>&gt; <o:p></o:p></p>

<p class=MsoPlainText>&gt; It is actually a very small burden on the OP but
really simplifies the<o:p></o:p></p>

<p class=MsoPlainText>&gt; work of the AC and SP in a RESTful way.&nbsp;
Alternative is to use SOAP<o:p></o:p></p>

<p class=MsoPlainText>&gt; and WS-* stack and it is not a very appealing one
for our market.<o:p></o:p></p>

<p class=MsoPlainText>&gt; <o:p></o:p></p>

<p class=MsoPlainText>&gt; I feel like this deserves more explanation but this
email is long<o:p></o:p></p>

<p class=MsoPlainText>&gt; enough.<o:p></o:p></p>

<p class=MsoPlainText>&gt; Hope this works.<o:p></o:p></p>

<p class=MsoPlainText>&gt; Thanks again.<o:p></o:p></p>

<p class=MsoPlainText>&gt; Pat.<o:p></o:p></p>

<p class=MsoPlainText>&gt; <o:p></o:p></p>

<p class=MsoPlainText>&gt; On Dec 30, 2008, at 6:23 PM, Peter Williams wrote:<o:p></o:p></p>

<p class=MsoPlainText>&gt; <o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; Pat<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; To communicate with the OP, is your SP app
returning HTML to the<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; browser, whose javascript auto-posts the
check_immediate REQ message<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; over to the OP?<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; If you are, any request for a particular content
type (e.g. json) to<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; be returned to you would have to happen in the
REQ fields in the<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; checkid_immediate() openid message (to be
interoperable). I'm not<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; sure there is any such request field.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; It's likely if you auto-posted the request thru
the browser to the<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; OP, the OP will auto-post a (largish) RESP back
through the browser<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; relay to the SP.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; If the browser is indeed properly in the comm's
loop (just as a<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; relaying system doing 2 auto-posts), by the
time the relaying-<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; browser has interpreted the javascript to
autopost the intermediate-<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; form content over to your SP, your consumer
servlet should be<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; receiving a clean POST block.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; I think folks maybe concerned that you may not
be using the browser<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; correctly as a message &quot;relaying&quot;
device. The nature of the security<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; model of checkid_immediate is such that the
browser-based foreground<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; channel MUST be involved (to be conforming).
There is still no<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; unanimity one the question that the human need
not be interactively<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; involved, tho.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; ARGUABLY, if the SP thread on the webserver can
100% impersonate the<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; user/browser properly, it could act in an
essentially non-conforming<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; manner BUT expect to successfully interact with
an OP to get a RESP<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; - when directly communicating with the OP's
endpoint (avoiding the<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; browser relay). Obviously, the OP could still
quite properly send an<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; autopost-format form as RESP, since in a
conforming system one would<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; expect a browser relay to be involved. As the
SP is impersonating<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; the user, it can obviously decode either of the
RESP encodings, much<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; as a browser would when acting as relay.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; This all reminds me of a secure payment
protocol called SET (which<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; assumed a plugin in the browser). As that
proved to be very hard to<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; deploy/adopt, vendors eventually started
offering server-side SET,<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; where the webserver would impersonate the users
and perform the<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; client protocol remotely. Drove the original
standard designers<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt; (including me) nuts, till it &quot;worked&quot;
and worked &quot;effectively&quot;.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; -----Original Message-----<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; From: general-bounces@openid.net
[mailto:general-<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; bounces@openid.net] On<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; Behalf Of Pat Cappelaere<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; Sent: Tuesday, December 30, 2008 2:41 PM<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; To: Martin Atkins<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; Cc: general@openid.net List<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; Subject: Re: [OpenID] CheckIDRequest with
Big AX<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; Martin,<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; I have been able to coerce my OP to do
almost what I needed.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; I submitted my consumer openid, did the
discovery and forced a POST<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; checkid_immediate with AX.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; The server responded with the data I wanted
but in the wrong output<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; format.&nbsp; It did not detect that I had
done a POST and tried to<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; returned to me the body of that stupid
intermediate form thinking<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; that<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; it would overflow a GET.&nbsp; But close.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; So, could I suggest an additional attribute
that could tell the OP<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; what my preferred output format might be:
xml, json... when in non-<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; browser mode?<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; example: openid.format= xml | json<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; Pat.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; On Dec 30, 2008, at 4:57 PM, Martin Atkins
wrote:<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt; Pat Cappelaere wrote:<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;&gt; Dick,<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;&gt; So I can only do a
&quot;checkid_immediate&quot; request with AX as long as<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; the<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;&gt; AX request is not tool large?<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;&gt; Isn't it limiting?<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt; checkid_immediate still expects the
user to be in the loop, since<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt; the<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt; provider will often need to verify
cookies.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt; Likewise, checkid_immediate can (in
theory, at least) be done via a<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt; form-initiated POST request if the
request is too large for a GET.<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;
_______________________________________________<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt; general mailing list<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt; general@openid.net<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;&gt;
http://openid.net/mailman/listinfo/general<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt;
_______________________________________________<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; general mailing list<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; general@openid.net<o:p></o:p></p>

<p class=MsoPlainText>&gt; &gt;&gt; http://openid.net/mailman/listinfo/general<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>