File: Zend_OpenId-Introduction.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (190 lines) | stat: -rwxr-xr-x 7,320 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect1 id="zend.openid.introduction">
    <title>Introduction</title>

    <para>
        <classname>Zend_OpenId</classname> is a Zend Framework component that provides a
        simple <acronym>API</acronym> for building OpenID-enabled sites and identity providers.
    </para>

    <sect2 id="zend.openid.introduction.what">
        <title>What is OpenID?</title>

        <para>
            OpenID is a set of protocols for user-centric digital identities.
            These protocols allows users to create an identity online, using an identity
            provider. This identity can be used on any site that supports OpenID.
            Using OpenID-enabled sites, users do not need to remember traditional
            authentication tokens such as usernames and passwords for each site. All OpenID-enabled
            sites accept a single OpenID identity. This identity is typically a
            <acronym>URL</acronym>. It may be the <acronym>URL</acronym> of the user's personal
            page, blog or other resource that may provide additional information about them. That
            mean a user needs just one identifier for all sites he or she uses. services. OpenID is
            an open, decentralized, and free user-centric solution. Users may choose which OpenID
            provider to use, or even create their own personal identity server. No central authority
            is required to approve or register OpenID-enabled sites or identity providers.
        </para>

        <para>
            For more information about OpenID visit the <ulink url="http://www.openid.net/">OpenID
                official site</ulink>.
        </para>
    </sect2>

    <sect2 id="zend.openid.introduction.how">
        <title>How Does it Work?</title>

        <para>
            The purpose of the <classname>Zend_OpenId</classname> component is to
            implement the OpenID authentication protocol as described in the following
            sequence diagram:
        </para>

        <para>
            <inlinegraphic align="center" fileref="figures/zend.openid.protocol.jpg" format="JPEG"
                scale="100" valign="middle" width="559" />
        </para>

        <orderedlist>
            <listitem>
                <para>
                    Authentication is initiated by the end user, who passes their
                    OpenID identifier to the OpenID consumer through a User-Agent.
                </para>
            </listitem>

            <listitem>
                <para>
                    The OpenID consumer performs normalization and discovery on the user-supplied
                    identifier. Through this process, the consumer obtains the claimed identifier,
                    the <acronym>URL</acronym> of the OpenID provider and an OpenID protocol
                    version.
                </para>
            </listitem>

            <listitem>
                <para>
                    The OpenID consumer establishes an optional association with the
                    provider using Diffie-Hellman keys. As a result, both parties have
                    a common "shared secret" that is used for signing and verification
                    of the subsequent messages.
                </para>
            </listitem>

            <listitem>
                <para>
                    The OpenID consumer redirects the User-Agent to the <acronym>URL</acronym> of
                    the OpenID provider with an OpenID authentication request.
                </para>
            </listitem>

            <listitem>
                <para>
                    The OpenID provider checks if the User-Agent is already
                    authenticated and, if not, offers to do so.
                </para>
            </listitem>

            <listitem>
                <para>
                    The end user enters the required password.
                </para>
            </listitem>

            <listitem>
                <para>
                    The OpenID provider checks if it is allowed to pass the user
                    identity to the given consumer, and asks the user if necessary.
                </para>
            </listitem>

            <listitem>
                <para>
                    The user allows or disallows passing his identity.
                </para>
            </listitem>

            <listitem>
                <para>
                    The OpenID Provider redirects the User-Agent back to the OpenID
                    consumer with an "authentication approved" or "failed" request.
                </para>
            </listitem>

            <listitem>
                <para>
                    The OpenID consumer verifies the information received from the
                    provider by using the shared secret it got in step 3 or by
                    sending an additional direct request to the OpenID provider.
                </para>
            </listitem>
        </orderedlist>
    </sect2>

    <sect2 id="zend.openid.introduction.structure">
        <title>Zend_OpenId Structure</title>

        <para>
            <classname>Zend_OpenId</classname> consists of two sub-packages. The first one
            is <classname>Zend_OpenId_Consumer</classname> for developing OpenID-enabled sites,
            and the second is <classname>Zend_OpenId_Provider</classname> for developing OpenID
            servers. They are completely independent of each other and may be used
            separately.
        </para>

        <para>
            The only common code used by these sub-packages are the OpenID Simple
            Registration Extension implemented by
            <classname>Zend_OpenId_Extension_Sreg</classname> class and a set of utility
            functions implemented by the <classname>Zend_OpenId</classname> class.
        </para>

        <note>
            <para>
                <classname>Zend_OpenId</classname> takes advantage of the <ulink
                    url="http://php.net/gmp">GMP extension</ulink>, where available. Consider
                enabling the GMP extension for enhanced performance when using
                <classname>Zend_OpenId</classname>.
            </para>
        </note>
    </sect2>

    <sect2 id="zend.openid.introduction.standards">
        <title>Supported OpenID Standards</title>

        <para>
            The <classname>Zend_OpenId</classname> component supports the following
            standards:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    OpenID Authentication protocol version 1.1
                </para>
            </listitem>

            <listitem>
                <para>
                    OpenID Authentication protocol version 2.0 draft 11
                </para>
            </listitem>

            <listitem>
                <para>
                    OpenID Simple Registration Extension version 1.0
                </para>
            </listitem>

            <listitem>
                <para>
                    OpenID Simple Registration Extension version 1.1 draft 1
                </para>
            </listitem>
        </itemizedlist>
    </sect2>
</sect1>
<!--
vim:se ts=4 sw=4 et:
-->