Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

816 lines
32 KiB

  1. /**********************************************************************/
  2. /** Microsoft Passport **/
  3. /** Copyright(c) Microsoft Corporation, 1999 - 2001 **/
  4. /**********************************************************************/
  5. /*
  6. Passport.idl
  7. FILE HISTORY:
  8. */// Passport.idl : IDL source for Passport.dll
  9. //
  10. // This file will be processed by the MIDL tool to
  11. // produce the type library (Passport.tlb) and marshalling code.
  12. cpp_quote("// Size definitions")
  13. const int PASSPORT_COOKIES_MAXLEN = 512;
  14. const int PASSPORT_COOKIES_BUFSIZE = PASSPORT_COOKIES_MAXLEN + 1;
  15. const int PASSPORT_EMAIL_MAXLEN = 64 + 1 + 64;
  16. const int PASSPORT_EMAIL_BUFSIZE = PASSPORT_EMAIL_MAXLEN + 1;
  17. const int PASSPORT_NICKNAME_MAXLEN = 30;
  18. const int PASSPORT_NICKNAME_BUFSIZE = PASSPORT_NICKNAME_MAXLEN + 1;
  19. // flags for OnStartPageHeaders
  20. const int PASSPORT_HEADER_FLAGS_HTTPS = 0x1;
  21. // max size for encryption
  22. // max blocks + 10 should be multiples of 3 for simplicity
  23. const int ENC_MAX_SIZE = 2045;
  24. // max size for decryption
  25. // I don't trust the compiler... (((2045+10)*4)/3)+9 = 2749 * sizeof(wchar)
  26. const int DEC_MAX_SIZE = 5498;
  27. //
  28. // passport core profile names
  29. //
  30. const char* MSPP_PROF_MEMBER_NAME = "membername";
  31. const char* MSPP_PROF_HI_UID = "memberidhigh";
  32. const char* MSPP_PROF_LO_UID = "memberidlow";
  33. const char* MSPP_PROF_VERSION = "profileVersion";
  34. const char* MSPP_PROF_COUNTRY = "country";
  35. const char* MSPP_PROF_POSTALCODE = "postalCode";
  36. const char* MSPP_PROF_REGION = "region";
  37. const char* MSPP_PROF_CITY = "city";
  38. const char* MSPP_PROF_LANGPREF = "lang_preference";
  39. const char* MSPP_PROF_BDAYPREC = "bday_precision";
  40. const char* MSPP_PROF_BDATE = "birthdate";
  41. const char* MSPP_PROF_GENDER = "gender";
  42. const char* MSPP_PROF_PREF_EMAIL = "preferredEmail";
  43. const char* MSPP_PROF_NICKNAME = "nickname";
  44. const char* MSPP_PROF_ACCESS = "accessibility";
  45. const char* MSPP_PROF_WALLET = "wallet";
  46. const char* MSPP_PROF_DIRECTORY = "directory";
  47. const char* MSPP_PROF_MSNIA = "inetaccess";
  48. const char* MSPP_PROF_FLAGS = "flags";
  49. import "oaidl.idl";
  50. import "ocidl.idl";
  51. [
  52. object,
  53. uuid(ACE1AC86-E14F-4f7b-B89A-805A69959680),
  54. dual,
  55. helpstring("IDomainMap Interface"),
  56. pointer_default(unique)
  57. ]
  58. interface IDomainMap : IUnknown
  59. {
  60. [helpstring("Returns information about a given member domain, such as registration URL, etc.")]
  61. HRESULT GetDomainAttribute([in] BSTR attributeName,
  62. [in,optional] VARIANT lcid,
  63. [in,optional] VARIANT domain,
  64. [out,retval] BSTR *pAttrVal);
  65. [propget, helpstring("The list of all valid Passport domains, including 'default'")]
  66. HRESULT Domains([out,retval] VARIANT *pArrayVal);
  67. [helpstring("Determine whether a given domain name is the name of a domain authority.")]
  68. HRESULT DomainExists([in] BSTR domainName,
  69. [out,retval] VARIANT_BOOL* pbExists);
  70. };
  71. [
  72. object,
  73. uuid(41651BF1-A5C8-11D2-95DF-00C04F8E7A70),
  74. dual,
  75. helpstring("IPassportTicket Interface -- internal used"),
  76. pointer_default(unique)
  77. ]
  78. interface IPassportTicket : IDispatch
  79. {
  80. [propget, id(1), helpstring("The raw ticket bytes, unencrypted.")]
  81. HRESULT unencryptedTicket([out, retval] BSTR *pVal);
  82. [propput, id(1), helpstring("The raw ticket bytes, unencrypted.")]
  83. HRESULT unencryptedTicket([in] BSTR newVal);
  84. [propget, id(2),
  85. helpstring("TRUE if the user has been authenticated to this site/domain within the TimeWindow, and if ForceLogin is true, that they have typed in their password within the TimeWindow.")]
  86. HRESULT IsAuthenticated( [in] ULONG TimeWindow,
  87. [in] VARIANT_BOOL ForceLogin,
  88. [in,optional] VARIANT SecureLevel,
  89. [out, retval] VARIANT_BOOL *pVal);
  90. [propget, id(3), helpstring("Age of the ticket, in seconds")]
  91. HRESULT TicketAge([out, retval] int *pVal);
  92. [propget, id(4), helpstring("Number of seconds since the user typed in their password")]
  93. HRESULT TimeSinceSignIn([out, retval] int *pVal);
  94. [propget, id(5), helpstring("The user's 64-bit numeric member ID, encoded as a string")]
  95. HRESULT MemberId([out, retval] BSTR *pVal);
  96. [propget, id(6), helpstring("The lower 32 bits of the member id")]
  97. HRESULT MemberIdLow([out, retval] int *pVal);
  98. [propget, id(7), helpstring("The upper 32 bits of the member id")]
  99. HRESULT MemberIdHigh([out, retval] int *pVal);
  100. [propget, id(8), helpstring("TRUE if the user requested that their password be saved")]
  101. HRESULT HasSavedPassword([out, retval] VARIANT_BOOL *pVal);
  102. [propget, id(9), helpstring("Gets the fully qualified hostname of the signin server for this user")]
  103. HRESULT SignInServer([out, retval] BSTR *pVal);
  104. [propget, id(10), helpstring("Gets the absolute time the ticket was generated")]
  105. HRESULT TicketTime([out, retval] long *pVal);
  106. [propget, id(11), helpstring("Gets the absolute time the member last signed in")]
  107. HRESULT SignInTime([out, retval] long *pVal);
  108. [propget, id(12), helpstring("Gets any Passport Network errors that occurred")]
  109. HRESULT Error([out, retval] long *pVal);
  110. [id(13), helpstring("method DoSecureCheck with Secure Cookie")]
  111. HRESULT DoSecureCheck([in] BSTR bstrSec);
  112. [id(14), helpstring("method DoSecureCheckInTicket")]
  113. HRESULT DoSecureCheckInTicket([in] BOOL fSecureTransported);
  114. };
  115. [
  116. object,
  117. uuid(5992F4F4-05CB-4944-A426-1E1870266F85),
  118. dual,
  119. helpstring("IPassportTicket2 Interface"),
  120. pointer_default(unique)
  121. ]
  122. interface IPassportTicket2 : IPassportTicket
  123. {
  124. typedef enum {
  125. ConsentStatus_Unknown = 0,
  126. ConsentStatus_Known,
  127. ConsentStatus_NotDefinedInTicket,
  128. ConsentStatus_DoNotNeed,
  129. } ConsentStatusEnum;
  130. [id(21), helpstring("method GetProperty")]
  131. HRESULT GetProperty( [in] BSTR propName,
  132. [out, retval] VARIANT* pVal);
  133. [id(22), helpstring("method SetTertiaryConsent")]
  134. HRESULT SetTertiaryConsent([in] BSTR consentCookie);
  135. [id(23), helpstring("method ConsentStatus")]
  136. HRESULT ConsentStatus(
  137. [in] VARIANT_BOOL RequireConsentStatus,
  138. [out] ULONG* consentFlags,
  139. [out, retval] ConsentStatusEnum* pConsentCode);
  140. };
  141. [
  142. object,
  143. uuid(41651BF3-A5C8-11D2-95DF-00C04F8E7A70),
  144. dual,
  145. helpstring("IPassportProfile Interface"),
  146. pointer_default(unique)
  147. ]
  148. interface IPassportProfile : IDispatch
  149. {
  150. [propget, id(DISPID_VALUE), helpstring("Gets a profile attribute by name")]
  151. HRESULT Attribute([in] BSTR name, [out, retval] VARIANT *pVal);
  152. [propput, id(DISPID_VALUE), helpstring("Sets a profile attribute by name")]
  153. HRESULT Attribute([in] BSTR name, [in] VARIANT newVal);
  154. [propget, id(1), helpstring("Gets a profile attribute by numeric index")]
  155. HRESULT ByIndex([in] int index, [out, retval] VARIANT *pVal);
  156. [propput, id(1), helpstring("Sets a profile attribute by numeric index")]
  157. HRESULT ByIndex([in] int index, [in] VARIANT newVal);
  158. [propget, id(2), helpstring("TRUE if the profile token is valid according to its schema")]
  159. HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
  160. [propget, id(3), helpstring("The name of the schema by which the profile is interpreted. Must be set BEFORE using the object")]
  161. HRESULT SchemaName([out, retval] BSTR *pVal);
  162. [propput, id(3), helpstring("The name of the schema by which the profile is interpreted. Must be set BEFORE using the object")]
  163. HRESULT SchemaName([in] BSTR newVal);
  164. [propget, id(4), helpstring("The raw, unencrypted profile bytes")]
  165. HRESULT unencryptedProfile([out, retval] BSTR *pVal);
  166. [propput, id(4), helpstring("The raw, unencrypted profile bytes")]
  167. HRESULT unencryptedProfile([in] BSTR newVal);
  168. [propget, id(5), helpstring("The raw update string, if any, which can be sent as a 'diff' to the update server")]
  169. HRESULT updateString([out,retval] BSTR *pVal);
  170. };
  171. [
  172. object,
  173. uuid(41651BEF-A5C8-11D2-95DF-00C04F8E7A70),
  174. dual,
  175. helpstring("IPassportManager Interface"),
  176. pointer_default(unique)
  177. ]
  178. interface IPassportManager : IDispatch
  179. {
  180. //Standard Server Side Component Methods
  181. HRESULT OnStartPage([in] IUnknown* piUnk);
  182. HRESULT OnEndPage();
  183. HRESULT OnStartPageECB([in] BYTE *pECB,
  184. [in,out] DWORD *pBufSize,
  185. [out, size_is(*pBufSize)] LPSTR pCookieHeader);
  186. [
  187. hidden
  188. ]
  189. HRESULT _Ticket([out] IPassportTicket** piTicket);
  190. [
  191. hidden
  192. ]
  193. HRESULT _Profile([out] IPassportProfile** piProfile);
  194. [
  195. id(1),
  196. helpstring("Returns a URL with the correct login server and path based on the member's domain and optional parameters")
  197. ]
  198. HRESULT AuthURL([in,optional] VARIANT returnUrl,
  199. [in,optional] VARIANT TimeWindow,
  200. [in,optional] VARIANT ForceLogin,
  201. [in,optional] VARIANT coBrandArgs,
  202. [in,optional] VARIANT lang_id,
  203. [in,optional] VARIANT NameSpace,
  204. [in,optional] VARIANT KPP,
  205. [in,optional] VARIANT SecureLevel,
  206. [out, retval] BSTR *pAuthVal);
  207. [
  208. id(2),
  209. helpstring("TRUE if the user has been authenticated to this site/domain within the TimeWindow, and if ForceLogin is true, that they have typed in their password within the TimeWindow.")
  210. ]
  211. HRESULT IsAuthenticated([in,optional] VARIANT TimeWindow,
  212. [in,optional] VARIANT ForceLogin,
  213. [in,optional] VARIANT SecureLevel,
  214. [out, retval] VARIANT_BOOL *pVal);
  215. [
  216. id(3),
  217. helpstring("Returns an HREF with an imbedded image tag to display the Passport logo")
  218. ]
  219. HRESULT LogoTag([in,optional] VARIANT returnUrl,
  220. [in,optional] VARIANT TimeWindow,
  221. [in,optional] VARIANT ForceLogin,
  222. [in,optional] VARIANT coBrandArgs,
  223. [in,optional] VARIANT lang_id,
  224. [in,optional] VARIANT bSecure,
  225. [in,optional] VARIANT NameSpace,
  226. [in,optional] VARIANT KPP,
  227. [in,optional] VARIANT SecureLevel,
  228. [out, retval] BSTR *pVal);
  229. [id(4), helpstring("TRUE if the user has Passport profile data available")]
  230. HRESULT HasProfile([in,optional] VARIANT ProfileName, [out, retval] VARIANT_BOOL *pVal);
  231. [propget, id(5), helpstring("TRUE if the user has an authentication Ticket in this domain, regardless of how old it is")]
  232. HRESULT HasTicket([out, retval] VARIANT_BOOL *pVal);
  233. [propget, id(6), helpstring("TRUE if this page view is the FIRST page view after the user was sent to the login server, determined by new valid cookie data in the query string")]
  234. HRESULT FromNetworkServer([out, retval] VARIANT_BOOL *pVal);
  235. [id(7), helpstring("TRUE if the specified flag has been raised in the processing of this user's page view")]
  236. HRESULT HasFlag([in,optional] VARIANT flagMask, [out, retval] VARIANT_BOOL *pVal);
  237. [propget, id(8), helpstring("The age of the authentication ticket, in seconds")]
  238. HRESULT TicketAge([out, retval] int *pVal);
  239. [propget, id(9), helpstring("Number of seconds since the last time the user typed in their password")]
  240. HRESULT TimeSinceSignIn([out, retval] int *pVal);
  241. [id(10), helpstring("Returns information about a given member domain, such as registration URL, etc.")]
  242. HRESULT GetDomainAttribute( [in] BSTR attributeName,
  243. [in,optional] VARIANT lcid,
  244. [in,optional] VARIANT domain,
  245. [out,retval] BSTR *pAttrVal);
  246. [id(11), helpstring("Returns the member domain part of a member's fully qualified name")]
  247. HRESULT DomainFromMemberName( [in,optional] VARIANT memberName,
  248. [out,retval] BSTR *pDomainName);
  249. [propget, id(12), helpstring("Gets a profile attribute by numeric index")]
  250. HRESULT ProfileByIndex([in] int index, [out, retval] VARIANT *pVal);
  251. [propput, id(12), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
  252. HRESULT ProfileByIndex([in] int index, [in] VARIANT newVal);
  253. [id(13), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
  254. HRESULT OnStartPageManual([in] BSTR queryStringT,
  255. [in] BSTR queryStringP,
  256. [in] BSTR MSPAuthCookie,
  257. [in] BSTR MSPProfCookie,
  258. [in] BSTR MSPConsentCookie,
  259. [in,optional] VARIANT vMSPSecCookie,
  260. [out, retval] VARIANT *pSetCookieArray);
  261. [propget, id(14), helpstring("TRUE if the user requested that their password be saved")]
  262. HRESULT HasSavedPassword([out, retval] VARIANT_BOOL *pVal);
  263. [id(15), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
  264. HRESULT Commit([out,retval] BSTR *pNewProfileCookieHeader);
  265. [propget, id(DISPID_VALUE), helpstring("Returns the value a profile attribute, such as alias or gender")]
  266. HRESULT Profile([in] BSTR attributeName, [out, retval] VARIANT *pVal);
  267. [propput, id(DISPID_VALUE), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
  268. HRESULT Profile([in] BSTR attributeName, [in] VARIANT newVal);
  269. [hidden, propget, id(16), helpstring("Gets the absolute time the ticket was generated")]
  270. HRESULT TicketTime([out, retval] long *pVal);
  271. [hidden, propget, id(17), helpstring("Gets the absolute time the member last signed in")]
  272. HRESULT SignInTime([out, retval] long *pVal);
  273. [hidden, propget, id(18), helpstring("The list of all valid Passport domains, including 'default'")]
  274. HRESULT Domains([out,retval] VARIANT *pArrayVal);
  275. [propget, id(19), helpstring("Returns any network error code associated with this request")]
  276. HRESULT Error([out,retval] long *pErrorVal);
  277. [hidden, helpstring("Initialize Passport Manager for use within an ISAPI filter")]
  278. HRESULT OnStartPageFilter( [in] BYTE* pPFC,
  279. [in,out] DWORD* pBufSize,
  280. [out, size_is(*pBufSize)] LPSTR pCookieHeader);
  281. [id(20), helpstring("Initialize Passport Manager object using Request/Response ASP objects")]
  282. HRESULT OnStartPageASP( [in] IDispatch* pdispRequest,
  283. [in] IDispatch* pdispResponse);
  284. [hidden, id(21), helpstring("method GetServerInfo")]
  285. HRESULT GetServerInfo([out,retval] BSTR *pbstrOut);
  286. [id(22), helpstring("Returns true if the currently signed on user has consent")]
  287. HRESULT HaveConsent([in] VARIANT_BOOL bNeedFullConsent,
  288. [in] VARIANT_BOOL bNeedBirthdate,
  289. [out,retval] VARIANT_BOOL* pbHaveConsent);
  290. };
  291. [
  292. object,
  293. uuid(8ca48d6a-0b51-4f7a-9475-b0a8b59c3999),
  294. dual,
  295. helpstring("IPassportManager2 Interface"),
  296. pointer_default(unique)
  297. ]
  298. interface IPassportManager2 : IPassportManager
  299. {
  300. [id(23),helpstring("Partners should use this call to initiate user logon. It does redirect inside")]
  301. HRESULT LoginUser([in, optional] VARIANT returnUrl,
  302. [in, optional] VARIANT TimeWindow,
  303. [in, optional] VARIANT ForceLogin,
  304. [in, optional] VARIANT coBrandTemplate,
  305. [in, optional] VARIANT lang_id,
  306. [in, optional] VARIANT NameSpace,
  307. [in, optional] VARIANT KPP,
  308. [in, optional] VARIANT SecureLevel,
  309. [in, optional] VARIANT ExtraParams);
  310. [
  311. id(24),
  312. helpstring("Returns a URL used for login on the member's domain and optional parameters")
  313. ]
  314. HRESULT AuthURL2([in,optional] VARIANT returnUrl,
  315. [in,optional] VARIANT TimeWindow,
  316. [in,optional] VARIANT ForceLogin,
  317. [in,optional] VARIANT coBrandArgs,
  318. [in,optional] VARIANT lang_id,
  319. [in,optional] VARIANT NameSpace,
  320. [in,optional] VARIANT KPP,
  321. [in,optional] VARIANT SecureLevel,
  322. [out, retval] BSTR *pAuthVal);
  323. [
  324. id(25),
  325. helpstring("Returns an HREF with an imbedded image tag to display the Passport logo")
  326. ]
  327. HRESULT LogoTag2([in,optional] VARIANT returnUrl,
  328. [in,optional] VARIANT TimeWindow,
  329. [in,optional] VARIANT ForceLogin,
  330. [in,optional] VARIANT coBrandArgs,
  331. [in,optional] VARIANT lang_id,
  332. [in,optional] VARIANT bSecure,
  333. [in,optional] VARIANT NameSpace,
  334. [in,optional] VARIANT KPP,
  335. [in,optional] VARIANT SecureLevel,
  336. [out, retval] BSTR *pVal);
  337. };
  338. [
  339. object,
  340. uuid(1451151f-90a0-491b-b8e1-81a13767ed98),
  341. dual,
  342. helpstring("IPassportManager3 Interface"),
  343. pointer_default(unique)
  344. ]
  345. interface IPassportManager3 : IPassportManager2
  346. {
  347. [propget, id(30),
  348. helpstring("Returns the value a ticket attribute, such as security level")]
  349. HRESULT Ticket([in] BSTR attributeName, [out, retval] VARIANT *pVal);
  350. [
  351. id(31),
  352. helpstring("Returns config settings the registry")
  353. ]
  354. HRESULT GetCurrentConfig([in] BSTR name, [out, retval] VARIANT *pVal);
  355. [
  356. id(32),
  357. helpstring("Returns LogoutURL")
  358. ]
  359. HRESULT LogoutURL([in,optional] VARIANT returnUrl,
  360. [in,optional] VARIANT coBrandArgs,
  361. [in,optional] VARIANT lang_id,
  362. [in,optional] VARIANT domain,
  363. [in,optional] VARIANT bSecure,
  364. [out, retval] BSTR *pVal);
  365. [id(33),helpstring("To get Auth Challenge Headers")]
  366. HRESULT GetLoginChallenge([in, optional] VARIANT returnUrl,
  367. [in, optional] VARIANT TimeWindow,
  368. [in, optional] VARIANT ForceLogin,
  369. [in, optional] VARIANT coBrandTemplate,
  370. [in, optional] VARIANT lang_id,
  371. [in, optional] VARIANT NameSpace,
  372. [in, optional] VARIANT KPP,
  373. [in, optional] VARIANT SecureLevel,
  374. [in, optional] VARIANT ExtraParams,
  375. [out, retval] BSTR* pAuthHeader
  376. );
  377. [propget, id(34), helpstring("PUID")]
  378. HRESULT HexPUID([out, retval] BSTR *pVal);
  379. [id(35), helpstring("on start page with http request line and headers")]
  380. HRESULT OnStartPageHTTPRaw(
  381. [in, string] LPCSTR request_line,
  382. [in, string] LPCSTR headers,
  383. [in] DWORD flags,
  384. [in,out] DWORD *pRespHeadersSize,
  385. [out, size_is(*pRespHeadersSize)] LPSTR pRespHeaders);
  386. [id(36),
  387. helpstring("continue auth with addtional http body, as required by the return value of OnStartPageHTTPRaw")]
  388. HRESULT ContinueStartPageHTTPRaw(
  389. [in] DWORD bodyLen,
  390. [in, size_is(bodyLen)] byte* body,
  391. [in,out] DWORD *pBufSize,
  392. [out, size_is(*pBufSize)] LPSTR pRespHeadersSize,
  393. [in, out] DWORD* pRespBodyLen,
  394. [out, size_is(*pRespBodyLen)] byte* pRespBody);
  395. [propget, id(37), helpstring("Passport manager Options")]
  396. HRESULT Option([in] BSTR name, [out, retval] VARIANT *pVal);
  397. [propput, id(37), helpstring("passport manager options")]
  398. HRESULT Option([in] BSTR name, [in] VARIANT newVal);
  399. };
  400. [
  401. object,
  402. uuid(41651BF9-A5C8-11D2-95DF-00C04F8E7A70),
  403. dual,
  404. helpstring("IPassportCrypt Interface"),
  405. pointer_default(unique)
  406. ]
  407. interface IPassportCrypt : IDispatch
  408. {
  409. [id(1), helpstring("Encrypt a blob of data")]
  410. HRESULT Encrypt([in] BSTR rawData, [out,retval] BSTR *pEncrypted);
  411. [id(2), helpstring("Decrypt a blob of data")]
  412. HRESULT Decrypt([in] BSTR rawData, [out,retval] BSTR *pUnencrypted);
  413. [hidden, propget, id(3), helpstring("keyVersion number for multiple key support")]
  414. HRESULT keyVersion([out, retval] int *pVal);
  415. [hidden, propput, id(3), helpstring("keyVersion number for multiple key support")]
  416. HRESULT keyVersion([in] int newVal);
  417. [propget, id(4), helpstring("Find out if this object is capable of encryption")]
  418. HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
  419. [hidden, propput, id(5),
  420. helpstring("For advanced users only: this sets the keyMaterial of the encryption algorithm")]
  421. HRESULT keyMaterial([in] BSTR newVal);
  422. [id(6), helpstring("Compress a string.")]
  423. HRESULT Compress([in] BSTR bstrIn, [out,retval] BSTR *pbstrOut);
  424. [id(7), helpstring("Decompress a string.")]
  425. HRESULT Decompress([in] BSTR bstrIn, [out,retval] BSTR *pbstrOut);
  426. [id(8), propput, helpstring("Use a different set of keys based on site name.")]
  427. HRESULT site([in] BSTR bstrSiteName);
  428. [id(9), helpstring("on start page")]
  429. HRESULT OnStartPage([in] IUnknown* piUnk);
  430. [id(10), propput, helpstring("Use a different set of keys based on host name.")]
  431. HRESULT host([in] BSTR bstrHostName);
  432. };
  433. // passport admin interface
  434. [
  435. object,
  436. uuid(A0082CF5-AFF5-11D2-95E3-00C04F8E7A70),
  437. dual,
  438. helpstring("IPassportAdmin Interface"),
  439. pointer_default(unique)
  440. ]
  441. interface IPassportAdmin : IDispatch
  442. {
  443. [propget, id(1), helpstring("TRUE if all configuration is ok and Passport objects are functional")]
  444. HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
  445. [propget, id(2), helpstring("Get the description for configuration error")]
  446. HRESULT ErrorDescription([out, retval] BSTR *pVal);
  447. [id(3), helpstring("Adds a key to the key store")]
  448. HRESULT addKey(
  449. [in] BSTR keyMaterial,
  450. [in] int version,
  451. [in] long expires,
  452. [out,retval] VARIANT_BOOL *ok
  453. );
  454. [id(4), helpstring("Removes a key from the store")]
  455. HRESULT deleteKey([in] int version);
  456. [id(5), helpstring("Change the exipration time on a key")]
  457. HRESULT setKeyTime([in] int version, [in] int fromNow);
  458. [propget, id(6), helpstring("Get the current key version number")]
  459. HRESULT currentKeyVersion([out,retval] int *pCur);
  460. [propput, id(6), helpstring("Set the current key version number")]
  461. HRESULT currentKeyVersion([in] int cur);
  462. [hidden, id(7), helpstring("Refresh nexus and registry configuration")]
  463. HRESULT Refresh([in] VARIANT_BOOL bWait,
  464. [out,retval] VARIANT_BOOL* pbSuccess);
  465. };
  466. [
  467. object,
  468. uuid(876181A0-3B05-11d3-9ACD-0080C712D19C),
  469. dual,
  470. helpstring("IPassportAdminEx Interface"),
  471. pointer_default(unique)
  472. ]
  473. interface IPassportAdminEx : IPassportAdmin
  474. {
  475. [id(8), helpstring("Adds a key to the key store")]
  476. HRESULT addKeyEx(
  477. [in] BSTR keyMaterial,
  478. [in] int nVersion,
  479. [in] long expires,
  480. [in,optional] VARIANT vSiteName,
  481. [out,retval] VARIANT_BOOL* ok
  482. );
  483. [id(9), helpstring("Removes a key from the store")]
  484. HRESULT deleteKeyEx([in] int nVersion,
  485. [in,optional] VARIANT vSiteName);
  486. [id(10), helpstring("Change the exipration time on a key")]
  487. HRESULT setKeyTimeEx(
  488. [in] int nVersion,
  489. [in] int fromNow,
  490. [in,optional] VARIANT vSiteName);
  491. [id(11), helpstring("Get the current key version number")]
  492. HRESULT getCurrentKeyVersionEx(
  493. [in,optional] VARIANT vSiteName,
  494. [out,retval] int* pCur);
  495. [id(12), helpstring("Set the current key version number")]
  496. HRESULT putCurrentKeyVersionEx(
  497. [in] int cur,
  498. [in,optional] VARIANT vSiteName);
  499. [id(13), helpstring("Set the nexus password")]
  500. HRESULT setNexusPassword(
  501. [in] BSTR bstrPwd);
  502. };
  503. [
  504. object,
  505. uuid(74EB2513-E239-11D2-95E9-00C04F8E7A70),
  506. dual,
  507. helpstring("This method is deprecated. Do not use for Passport 2.0 implementation"),
  508. pointer_default(unique)
  509. ]
  510. interface IPassportFastAuth : IDispatch
  511. {
  512. [id(1), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
  513. HRESULT IsAuthenticated(
  514. [in] BSTR bstrTicket,
  515. [in] BSTR bstrProfile,
  516. [in,optional] VARIANT vSecure,
  517. [in,optional] VARIANT vTimeWindow,
  518. [in,optional] VARIANT vForceLogin,
  519. [in,optional] VARIANT vSiteName,
  520. [in,optional] VARIANT vDoSecureCheck,
  521. [out,retval] VARIANT_BOOL* pbIsAuthenticated
  522. );
  523. [id(2), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
  524. HRESULT LogoTag([in] BSTR bstrTicket,
  525. [in] BSTR bstrProfile,
  526. [in,optional] VARIANT vRU,
  527. [in,optional] VARIANT vTimeWindow,
  528. [in,optional] VARIANT vForceLogin,
  529. [in,optional] VARIANT vCoBrand,
  530. [in,optional] VARIANT vLangId,
  531. [in,optional] VARIANT vSecure,
  532. [in,optional] VARIANT vLogoutURL,
  533. [in,optional] VARIANT vSiteName,
  534. [in,optional] VARIANT NameSpace,
  535. [in,optional] VARIANT vKPP,
  536. [in,optional] VARIANT SecureLevel,
  537. [out,retval] BSTR* pbstrLogoTag
  538. );
  539. [id(3), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
  540. HRESULT AuthURL([in,optional] VARIANT vTicket,
  541. [in,optional] VARIANT vProfile,
  542. [in,optional] VARIANT vRU,
  543. [in,optional] VARIANT vTimeWindow,
  544. [in,optional] VARIANT vForceLogin,
  545. [in,optional] VARIANT vCoBrand,
  546. [in,optional] VARIANT vLangId,
  547. [in,optional] VARIANT vSecure,
  548. [in,optional] VARIANT vLogoutURL,
  549. [in,optional] VARIANT vReserved1,
  550. [in,optional] VARIANT vSiteName,
  551. [in,optional] VARIANT NameSpace,
  552. [in,optional] VARIANT vKPP,
  553. [in,optional] VARIANT SecureLevel,
  554. [out,retval] BSTR* pbstrAuthURL
  555. );
  556. [id(4), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation"), hidden]
  557. HRESULT GetTicketAndProfilePFC(
  558. [in] BYTE* pbPFC,
  559. [in] BYTE* pbPPH,
  560. [out] BSTR* pbstrTicket,
  561. [out] BSTR* pbstrProfile,
  562. [out] BSTR* pbstrSecure,
  563. [out] BSTR* pbstrSiteName
  564. );
  565. [id(5), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation"), hidden]
  566. HRESULT GetTicketAndProfileECB(
  567. [in] BYTE* pbECB,
  568. [out] BSTR* pbstrTicket,
  569. [out] BSTR* pbstrProfile,
  570. [out] BSTR* pbstrSecure,
  571. [out] BSTR* pbstrSiteName
  572. );
  573. };
  574. [
  575. object,
  576. uuid(fb41a7d8-3739-4468-bdf1-e5b4b2eaeb4b),
  577. dual,
  578. helpstring("This method is deprecated. Do not use for Passport 2.0 implementation"),
  579. pointer_default(unique)
  580. ]
  581. interface IPassportFastAuth2 : IPassportFastAuth
  582. {
  583. [id(6), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
  584. HRESULT LogoTag2([in] BSTR bstrTicket,
  585. [in] BSTR bstrProfile,
  586. [in,optional] VARIANT vRU,
  587. [in,optional] VARIANT vTimeWindow,
  588. [in,optional] VARIANT vForceLogin,
  589. [in,optional] VARIANT vCoBrand,
  590. [in,optional] VARIANT vLangId,
  591. [in,optional] VARIANT vSecure,
  592. [in,optional] VARIANT vLogoutURL,
  593. [in,optional] VARIANT vSiteName,
  594. [in,optional] VARIANT NameSpace,
  595. [in,optional] VARIANT vKPP,
  596. [in,optional] VARIANT SecureLevel,
  597. [out,retval] BSTR* pbstrLogoTag
  598. );
  599. [id(7), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
  600. HRESULT AuthURL2([in,optional] VARIANT vTicket,
  601. [in,optional] VARIANT vProfile,
  602. [in,optional] VARIANT vRU,
  603. [in,optional] VARIANT vTimeWindow,
  604. [in,optional] VARIANT vForceLogin,
  605. [in,optional] VARIANT vCoBrand,
  606. [in,optional] VARIANT vLangId,
  607. [in,optional] VARIANT vSecure,
  608. [in,optional] VARIANT vLogoutURL,
  609. [in,optional] VARIANT vReserved1,
  610. [in,optional] VARIANT vSiteName,
  611. [in,optional] VARIANT NameSpace,
  612. [in,optional] VARIANT vKPP,
  613. [in,optional] VARIANT SecureLevel,
  614. [out,retval] BSTR* pbstrAuthURL
  615. );
  616. };
  617. [
  618. object,
  619. uuid(5602E147-27F6-11d3-94DD-00C04F72DC08),
  620. dual,
  621. helpstring("IPassportFactory Interface"),
  622. pointer_default(unique)
  623. ]
  624. interface IPassportFactory : IDispatch
  625. {
  626. HRESULT CreatePassportManager(
  627. [out,retval] IDispatch** ppdispPassportManager
  628. );
  629. };
  630. [
  631. uuid(41651BE3-A5C8-11D2-95DF-00C04F8E7A70),
  632. version(1.0),
  633. helpstring("Passport 1.0 Type Library")
  634. ]
  635. library PASSPORTLib
  636. {
  637. importlib("stdole32.tlb");
  638. importlib("stdole2.tlb");
  639. [
  640. uuid(41651BF0-A5C8-11D2-95DF-00C04F8E7A70),
  641. helpstring("Passport Manager")
  642. ]
  643. coclass Manager
  644. {
  645. [default] interface IPassportManager3;
  646. interface IPassportManager2;
  647. interface IPassportManager;
  648. interface IDomainMap;
  649. };
  650. [
  651. uuid(41651BF2-A5C8-11D2-95DF-00C04F8E7A70),
  652. helpstring("Passport Ticket Parser")
  653. ]
  654. coclass Ticket
  655. {
  656. [default] interface IPassportTicket2;
  657. interface IPassportTicket;
  658. };
  659. [
  660. uuid(41651BF4-A5C8-11D2-95DF-00C04F8E7A70),
  661. helpstring("Passport Profile Object")
  662. ]
  663. coclass Profile
  664. {
  665. [default] interface IPassportProfile;
  666. };
  667. [
  668. uuid(41651BFA-A5C8-11D2-95DF-00C04F8E7A70),
  669. helpstring("Passport Encryption Class")
  670. ]
  671. coclass Crypt
  672. {
  673. [default] interface IPassportCrypt;
  674. };
  675. [
  676. uuid(A0082CF6-AFF5-11D2-95E3-00C04F8E7A70),
  677. helpstring("Administration Interface for Passport Objects")
  678. ]
  679. coclass Admin
  680. {
  681. [default] interface IPassportAdminEx;
  682. interface IPassportAdmin;
  683. };
  684. [
  685. uuid(5602E146-27F6-11d3-94DD-00C04F72DC08),
  686. helpstring("PassportFastAuth Class")
  687. ]
  688. coclass FastAuth
  689. {
  690. [default] interface IPassportFastAuth2;
  691. interface IPassportFastAuth;
  692. };
  693. [
  694. uuid(74EB2514-E239-11D2-95E9-00C04F8E7A70),
  695. helpstring("PassportFactory Class")
  696. ]
  697. coclass PassportFactory
  698. {
  699. [default] interface IPassportFactory;
  700. };
  701. };