Account AutoDiscovery RFC | |
Goal: This document will describe the Account AutoDiscovery protocol.
How AutoDiscovery Works: Account AutoDiscovery will use an email address to look up information needed to configure software. Given a email name (like JohnDoe@psyco.psychdept.libarts.ucsd.edu), a list of possible AutoDiscover servers are generated. The path "/AutoDiscover/" on the server "_autodiscover.<domainname>" is contacted to provide the information. If the information still isn't retrieved, then a public service is tried.
Each server is sent an HTTP Post command. The post data is an XML request for a certain type of information. The request the server to retrieve settings for a particular type of account, like an email account or a virtual private network account. The HTTP Post header data is XML that will contain information that will help execute the request. For mail, it will include the email address, the protocols the client software supports, the web browser installed, the kind of proxy in use, and the types of authentication that can be used.
The server can then return an XML file that will provide the information needed for the client to configure local software to get the user to their destination.
How Is the Request Made: The HTTP POST headers contain information about the request in XML. Multiple ACCOUNT, PROTOCOL, and APP elements are allowed. There are two levels in a request, a list of accounts to configure (for example: email, connection) and the second level is the protocol to use in that account. The PROTOCOL level is OPTIONAL and is added if there are settings specific to a certain protocol.
Additionally, there can be one or more <APP> element under an ACCOUNT or PROTOCOL that will provide application specific settings. The manufacturer of the application needs to define the name space to define the hierarchy under this element.
This RFC will describe some ACCOUNTs and PROTOCOLs. New accounts and protocols can be defined but they need to have a specified xml namespace.
The request XML format is: <?xml version="1.0" ?> <AUTODISCOVERY xmlns="http://www.w3c.org/dtd/AutoDiscovery" xmlns:app1="http://www.app.com/dtd/MyApp1" xmlns:app2="http://www.app2.com/dtd/MyApp2"> <REQUEST> <ACCOUNT> <TYPE>email</TYPE> <!--The kind of information requested--> <VERSION>0.1</VERSION> <!--The version of the request--> <RESPONSEVER>0.1</RESPONSEVER> <!--The version of the response the client supports--> <LANG>en</LANG> <!--The user's language--> <!--The Following is specific to TYPE email--> <EMAIL>bryanst@yahoo.com</EMAIL> <!--The email address to request email settings--> <PROTOCOL> <TYPE>POP3</TYPE> <!--The kind of information requested--> <!--If you needed to send information to the server--> <!--specific to the protocol, it would go here.--> </PROTOCOL> <app1:APP> <NAME>com.microsoft.Exchange</NAME> <!--A unique identifier of the application--> <!--If you needed to send app specific information to the server--> <!--it would go here.--> </app1:APP> </ACCOUNT> </REQUEST> <REQUEST> ... </REQUEST> </AUTODISCOVERY>
How Is the Response Is: The response XML format is: The HTTP POST headers contain information about the request in XML. Multiple ACCOUNT, PROTOCOL, and APP elements are allowed. There are two levels in a request, a list of accounts to configure (for example: email, connection) and the second level is the protocol to use in that account. The PROTOCOL level is OPTIONAL and is added if there are settings specific to a certain protocol.
Additionally, there can be one or more <APP> element under an ACCOUNT or PROTOCOL that will provide application specific settings. The manufacturer of the application needs to define the name space to define the hierarchy under this element.
<?xml version="1.0" ?> <AUTODISCOVERY xmlns="http://www.w3c.org/dtd/AutoDiscovery" xmlns:app1="http://www.app.com/dtd/MyApp1" xmlns:app2="http://www.app2.com/dtd/MyApp2"> <USER> <DISPLAYNAME>Bryan T. Starbuck</DISPLAYNAME> <!--The user's display Name--> <LDAP><!--LDAP URL--></LDAP> <!--FUTURE: We could provide an URL to an LDAP server for more information.--> <!-- You can only access this information after being authenticated.--> <VCARD/> <!--FUTURE: vCard information--> </USER> <RESPONSE> <RESPONSEVER>0.1</RESPONSEVER> <!--Version of the response the server uses. MUST be less than REQUEST's RESPONSEVER.--> <LANG>en</LANG> <!--The response language--> <ACCOUNT> <TYPE>email</TYPE> <!--Either--> <ACTION>redirect | message | settings</ACTION> <!--redirect: Redirect to another server--> <URL> <!--redirect URL--></URL> <!--message: Display this message to the user because the information could not be retrieved--> <MESSAGE> <!--the message--></MESSAGE> <!--settings: Settings will be provided--> <!--Protocols are listed in order of server preference.--> <PROTOCOL> <TYPE>POP3</TYPE> <!--Type of Protocol--> <SERVER>mail.pop.yahoo.com</SERVER> <!--ID Addr or DNS name of server--> <PORT>Default</PORT> <!--"Default" or the port number. Default means the default for that protocol--> <LOGINNAME>Default</LOGINNAME> <!--The login name to use when logging in over POP3, SMTP, or IMAP type protocols.--> <!--If not specified, caller should use the first part of the email name.--> <SPA>on | off</SPA> <!--Should SPA (Secure Password Authentication) be used?--> <SSL>on | off</SSL> <!--Is SSL supported?--> <AUTHREQUIRED>on | off</AUTHREQUIRED> <!--Is Authenication Required? (Normally SMTP specific)--> <USEPOPAUTH>on | off</USEPOPAUTH> <!--SMTP Only: Use the Auth settings for POP3 for SMTP--> </PROTOCOL> <app1:APP> <NAME>com.microsoft.Exchange</NAME> <!--A unique identifier of the application--> <!--App specific settings can go here.--> </app1:APP> </ACTION> </ACCOUNT> </RESPONSE> </AUTODISCOVERY>
Setting Up A Server: The trick is to make it trivial to setup a server. Most ISPs only need to do this:
Related Information:
| |
last updated on 02/17/00 by BryanSt |