PageSourceSearch

https://signin.oecd.org/adfs/oauth2/authorize/?client_id=96392889-…=ID_NET451&x-client-ver=5.3.0.0

html oecd.org collected 2026-09-24 06:07:20 UTC 40,880 bytes, 815 lines download raw bytes

1 <!DOCTYPE html>
2<html lang="en-US">
3    <head>
4        <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
5        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=1"/>
6        <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7        <meta http-equiv="cache-control" content="no-cache,no-store"/>
8        <meta http-equiv="pragma" content="no-cache"/>
9        <meta http-equiv="expires" content="-1"/>
10        <meta name='mswebdialog-title' content='Connecting to MyOECD Authentication Service'/>
11
12        <title>Home Realm Discovery</title>
13        
13<script type='text/javascript'>
14//<![CDATA[
15function HRDErrors(){this.invalidSuffix = 'We do not recognize this organizational account. Enter your organizational account again or contact your administrator for more information.';}
16//]]>
17</script>
17
18
19<script type='text/javascript'>
20//<![CDATA[
21// Copyright (c) Microsoft Corporation.  All rights reserved.
22function InputUtil(errTextElementID, errDisplayElementID) {
23
24    if (!errTextElementID)  errTextElementID = 'errorText'; 
25    if (!errDisplayElementID)  errDisplayElementID = 'error'; 
26
27    this.hasFocus = false;
28    this.errLabel = document.getElementById(errTextElementID);
29    this.errDisplay = document.getElementById(errDisplayElementID);
30};
31InputUtil.prototype.canDisplayError = function () {
32    return this.errLabel && this.errDisplay;
33}
34InputUtil.prototype.checkError = function () {
35    if (!this.canDisplayError){
36        throw new Error ('Error element not present');
37    }
38    if (this.errLabel && this.errLabel.innerHTML) {
39        this.errDisplay.style.display = '';        
40        var cause = this.errLabel.getAttribute('for');
41        if (cause) {
42            var causeNode = document.getElementById(cause);
43            if (causeNode && causeNode.value) {
44                causeNode.focus();
45                this.hasFocus = true;
46            }
47        }
48    }
49    else {
50        this.errDisplay.style.display = 'none';
51    }
52};
53InputUtil.prototype.setInitialFocus = function (input) {
54    if (this.hasFocus) return;
55    var node = document.getElementById(input);
56    if (node) {
57        if ((/^\s*$/).test(node.value)) {
58            node.focus();
59            this.hasFocus = true;
60        }
61    }
62};
63InputUtil.prototype.setError = function (input, errorMsg) {
64    if (!this.canDisplayError) {
65        throw new Error('Error element not present');
66    }
67    input.focus();
68
69    if (errorMsg) {
70        this.errLabel.innerHTML = errorMsg;
71    }
72    this.errLabel.setAttribute('for', input.id);
73    this.errDisplay.style.display = '';
74};
75InputUtil.makePlaceholder = function (input) {
76    var ua = navigator.userAgent;
77
78    if (ua != null && 
79        (ua.match(/MSIE 9.0/) != null || 
80         ua.match(/MSIE 8.0/) != null ||
81         ua.match(/MSIE 7.0/) != null)) {
82        var node = document.getElementById(input);
83        if (node) {
84            var placeholder = node.getAttribute("placeholder");
85            if (placeholder != null && placeholder != '') {
86                var label = document.createElement('input');
87                label.type = "text";
88                label.value = placeholder;
89                label.readOnly = true;
90                label.style.position = 'absolute';
91                label.style.borderColor = 'transparent';
92                label.className = node.className + ' hint';
93                label.tabIndex = -1;
94                label.onfocus = function () { this.nextSibling.focus(); };
95
96                node.style.position = 'relative';
97                node.parentNode.style.position = 'relative';
98                node.parentNode.insertBefore(label, node);
99                node.onkeyup = function () { InputUtil.showHint(this); };
100                node.onblur = function () { InputUtil.showHint(this); };
101                node.style.background = 'transparent';
102
103                node.setAttribute("placeholder", "");
104                InputUtil.showHint(node);
105            }
106        }
107    }
108};
109InputUtil.focus = function (inputField) {
110    var node = document.getElementById(inputField);
111    if (node) node.focus();
112};
113InputUtil.hasClass = function(node, clsName) {
114    return node.className.match(new RegExp('(\\s|^)' + clsName + '(\\s|$)'));
115};
116InputUtil.addClass = function(node, clsName) {
117    if (!this.hasClass(node, clsName)) node.className += " " + clsName;
118};
119InputUtil.removeClass = function(node, clsName) {
120    if (this.hasClass(node, clsName)) {
121        var reg = new RegExp('(\\s|^)' + clsName + '(\\s|$)');
122        node.className = node.className.replace(reg, ' ');
123    }
124};
125InputUtil.showHint = function (node, gotFocus) {
126    if (node.value && node.value != '') {
127        node.previousSibling.style.display = 'none';
128    }
129    else {
130        node.previousSibling.style.display = '';
131    }
132};
133InputUtil.updatePlaceholder = function (input, placeholderText) {
134    var node = document.getElementById(input);
135    if (node) {
136        var ua = navigator.userAgent;
137        if (ua != null &&
138            (ua.match(/MSIE 9.0/) != null ||
139            ua.match(/MSIE 8.0/) != null ||
140            ua.match(/MSIE 7.0/) != null)) {
141            var label = node.previousSibling;
142            if (label != null) {
143                label.value = placeholderText;
144            }
145        }
146        else {
147            node.placeholder = placeholderText;
148        }
149    }
150};
151
152//]]>
153</script>
153
154
155
156        
157        <link rel="stylesheet" type="text/css" href="/adfs/portal/css/style.css?id=24B90B3D880E4605966CF1F9325955B2297955B770A59DA316FA84440BC57752" />
158    </head>
159    <body dir="ltr" class="body">
160    <div id="noScript" style="position:static; width:100%; height:100%; z-index:100">
161        <h1>JavaScript required</h1>
162        <p>JavaScript is required. This web browser does not support JavaScript or JavaScript in this web browser is not enabled.</p>
163        <p>To find out if your web browser supports JavaScript or to enable JavaScript, see web browser help.</p>
164    </div>
165    
165<script type="text/javascript" language="JavaScript">
166         document.getElementById("noScript").style.display = "none";
167    </script>
167
168    <div id="fullPage">
169        <div id="brandingWrapper" class="float">
170            <div id="branding"></div>
171        </div>
172        <div id="contentWrapper" class="float">
173            <div id="content">
174                <div id="header">
175                    <img class='logoImage' id='companyLogo' src='/adfs/portal/logo/logo.png?id=5B583B74E48B6364ACD4FEF3266D6652A6C04A538F541E42396DE972873C239F' alt='MyOECD Authentication Service'/>
176                </div>
177                <main>
178                    <div id="workArea">
179                            <div id="hrdArea">
180        <form id="hrd" method="post" autocomplete="off" novalidate="novalidate" action="/adfs/oauth2/authorize/?client_id=96392889-98b4-45a1-937c-38c7b7628bc7&redirect_uri=https%3A%2F%2Fcontact.oecd.org%2Flogin.aspx&response_type=code%20id_token&scope=openid%20profile&state=OpenIdConnect.AuthenticationProperties%3Dst7DSyVwoAmIcE3v9rCDT36LXXAfM9dp-KHLL5ffnIxEpM22Ti4J0Xbr_cJ4ygD9ktU94bii85WJEIa7eekywLRqGXWZDwpvU8YrA0NokP0J0iBlU0FFBzqFAWPb_232Qtqw9XGMJdYDp9THN2czs6BxBhyVVDLkD6R6YCIt2SwkRevILefML5OilxjlPFkGUP4niqKvpmHkke4g_5rD_ReSNRszUg1lz45KH4t-aS4QZsbCZheaDt912wyp0bT6nAEisg&response_mode=form_post&nonce=639258268384195588.ZGZiMzI1ZTEtY2E5Ny00YjMzLWFhYzAtNTc0NTI0MTdmZjgyMjlmMzZiZWItZTg2YS00YmE2LWFhZmEtMmQ3YjljMzAzMWYw&x-client-SKU=ID_NET451&x-client-ver=5.3.0.0&client-request-id=8925c716-b054-46ff-6810-0080000000bb"> 
181   
182            <div id="bySelection">
183                <div id="openingMessage" class="groupMargin">Sign in with one of these accounts</div> 
184            
185                <input id="hrdSelection" type="hidden" />
186                <div class="idp" tabIndex="1" role="button" aria-label="OECD/IEA/ITF/NEA" onKeyPress="if (event && (event.keyCode == 32 || event.keyCode == 13)) HRD.selection('http://sts.oecd.org/adfs/services/trust');" onclick="HRD.selection('http://sts.oecd.org/adfs/services/trust'); return false;"><img class="largeIcon float" src="/adfs/portal/images/idp/idp.png?id=3EADD3E829A20DF612C7A77960FF811E66E3EE6BAE2C33C9B20E7478BAC87548" alt="OECD/IEA/ITF/NEA"/><div class="idpDescription float"><span class="largeTextNoWrap indentNonCollapsible">OECD/IEA/ITF/NEA</span></div></div><div class="idp" tabIndex="2" role="button" aria-label="MyOECD" onKeyPress="if (event && (event.keyCode == 32 || event.keyCode == 13)) HRD.selection('urn:myoecd');" onclick="HRD.selection('urn:myoecd'); return false;"><img class="largeIcon float" src="/adfs/portal/images/idp/localsts.png?id=A3911892BE04D81EBA5A8E0C74F77099AA1DB05E542FBFCC78C9DF4B0EC0E3A6" alt="MyOECD"/><div class="idpDescription float"><span class="largeTextNoWrap indentNonCollapsible">MyOECD</span></div></div> 
187            </div>
188
189             <div id="byEmail" style="display:none">
190                <div class="groupMargin">
191                   <img tabIndex="3" class="smallIcon float" onKeyPress="if (event && (event.keyCode == 32 || event.keyCode == 13)) HRD.hideEmailInput();" onclick="HRD.hideEmailInput(); return false;" src="data:image/Png;base64,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" alt="back"/>
192                   Other organizational account
193                </div>
194
195                <div id="emailArea" class="indent">  
196 
197                    <div id="emailIntroduction" class="groupMargin">
198                        If your organization has established a trust relationship with MyOECD Authentication Service, enter your organizational account below.
199                    </div>
200
201                    <div id="error" class="fieldMargin error smallText" >
202                        <span id="errorText" for="emailInput" aria-live="assertive" role="alert"></span>
203                    </div>
204
205                    <div id="emailInputArea">
206                        <label id="emailInputLabel" for="emailInput" class="hidden">Email</label>
207                        <input id="emailInput" name="Email" type="email" value="" autocomplete="off" class="text fullWidthIndent"
208                               spellcheck="false" placeholder="[email protected]"/>
209                    </div>
210
211                    <div id="submissionArea" class="submitMargin">
212                        <input class="submit" name="HomeRealmByEmail" type="submit" value="Next"
213                            onclick="return HRD.submitEmail()" />
214                    </div>
215                 </div>
216            </div>
217
218         </form>
219
220         
220<script type="text/javascript" language="JavaScript">
221        //<![CDATA[
222
223             function HRD() {
224             }
225
226             HRD.emailInput = 'emailInput';
227             HRD.emailMismatch = 'errorText';
228
229             HRD.selection = function (option) {
230                 var i = document.getElementById('hrdSelection');
231                 i.name = "HomeRealmSelection";
232                 i.value = option;
233                 document.forms['hrd'].submit();
234                 return false;
235             }
236
237             HRD.showEmailInput = function () {
238                 var selection = document.getElementById('bySelection');
239                 selection.style.display = 'none';
240                 var email = document.getElementById('byEmail');
241                 email.style.display = '';
242                 var emailInput = document.getElementById('emailInput');
243                 emailInput.focus();
244             }
245
246             HRD.hideEmailInput = function () {
247                 var selection = document.getElementById('bySelection');
248                 selection.style.display = '';
249                 var email = document.getElementById('byEmail');
250                 email.style.display = 'none';
251             }
252
253             HRD.initialize = function () {
254
255                 var u = new InputUtil();
256                 u.checkError();
257
258                 var idpElements = document.getElementsByClassName('idp');
259                 var emailError = document.getElementById(HRD.emailMismatch);
260
261                 if ((emailError && emailError.innerHTML) || idpElements.length == 0)
262                 {
263                     HRD.showEmailInput();
264                     u.setInitialFocus(HRD.emailInput);
265                 }
266                 else
267                 {
268                     HRD.hideEmailInput();
269                 }
270
271             } ();
272
273             HRD.submitEmail = function () {
274                 var u = new InputUtil();
275                 var e = new HRDErrors()
276
277                 var email = document.getElementById(HRD.emailInput);
278
279                 if (!email.value || !email.value.match('[@]')) {
280                     u.setError(email, e.invalidSuffix);
281                     return false;
282                 }
283
284                 return true;
285             };
286
287             InputUtil.makePlaceholder(HRD.emailInput);
288
289        //]]>
290        </script>
290
291     </div>
292
293
294                    </div>
295                </main>
296                <div id="footerPlaceholder"></div>
297            </div>
298            <footer id="footer">
299                <div id="footerLinks" class="floatReverse">
300                    <div><span id="copyright">&#169; 2018 Microsoft</span><a id="privacy" class="pageLink footerLink" href="https://www.oecd.org/privacy/">Privacy Policy</a><a id="helpDesk" class="pageLink footerLink" href="https://www.oecd.org/termsandconditions/">Terms &amp; Conditions</a></div>
301                </div>
302            </footer>
303        </div>     
304    </div>
305    
305<script type='text/javascript'>
306//<![CDATA[
307// Copyright (c) Microsoft Corporation.  All rights reserved.
308
309// This file contains several workarounds on inconsistent browser behaviors that administrators may customize.
310"use strict";
311
312// iPhone email friendly keyboard does not include "\" key, use regular keyboard instead.
313// Note change input type does not work on all versions of all browsers.
314if (navigator.userAgent.match(/iPhone/i) != null) {
315    var emails = document.querySelectorAll("input[type='email']");
316    if (emails) {
317        for (var i = 0; i < emails.length; i++) {
318            emails[i].type = 'text';
319        }
320    }
321}
322
323// In the CSS file we set the ms-viewport to be consistent with the device dimensions, 
324// which is necessary for correct functionality of immersive IE. 
325// However, for Windows 8 phone we need to reset the ms-viewport's dimension to its original
326// values (auto), otherwise the viewport dimensions will be wrong for Windows 8 phone.
327// Windows 8 phone has agent string 'IEMobile 10.0'
328if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
329    var msViewportStyle = document.createElement("style");
330    msViewportStyle.appendChild(
331        document.createTextNode(
332            "@-ms-viewport{width:auto!important}"
333        )
334    );
335    msViewportStyle.appendChild(
336        document.createTextNode(
337            "@-ms-viewport{height:auto!important}"
338        )
339    );
340    document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
341}
342
343// If the innerWidth is defined, use it as the viewport width.
344if (window.innerWidth && window.outerWidth && window.innerWidth !== window.outerWidth) {
345    var viewport = document.querySelector("meta[name=viewport]");
346    viewport.setAttribute('content', 'width=' + window.innerWidth + ', initial-scale=1.0, user-scalable=1');
347}
348
349// Gets the current style of a specific property for a specific element.
350function getStyle(element, styleProp) {
351    var propStyle = null;
352
353    if (element && element.currentStyle) {
354        propStyle = element.currentStyle[styleProp];
355    }
356    else if (element && window.getComputedStyle) {
357        propStyle = document.defaultView.getComputedStyle(element, null).getPropertyValue(styleProp);
358    }
359
360    return propStyle;
361}
362
363// The script below is used for downloading the illustration image 
364// only when the branding is displaying. This script work together
365// with the code in PageBase.cs that sets the html inline style
366// containing the class 'illustrationClass' with the background image.
367var computeLoadIllustration = function () {
368    var branding = document.getElementById("branding");
369    var brandingDisplay = getStyle(branding, "display");
370    var brandingWrapperDisplay = getStyle(document.getElementById("brandingWrapper"), "display");
371
372    if (brandingDisplay && brandingDisplay !== "none" &&
373        brandingWrapperDisplay && brandingWrapperDisplay !== "none") {
374        var newClass = "illustrationClass";
375
376        if (branding.classList && branding.classList.add) {
377            branding.classList.add(newClass);
378        } else if (branding.className !== undefined) {
379            branding.className += " " + newClass;
380        }
381        if (window.removeEventListener) {
382            window.removeEventListener('load', computeLoadIllustration, false);
383            window.removeEventListener('resize', computeLoadIllustration, false);
384        }
385        else if (window.detachEvent) {
386            window.detachEvent('onload', computeLoadIllustration);
387            window.detachEvent('onresize', computeLoadIllustration);
388        }
389    }
390};
391
392if (window.addEventListener) {
393    window.addEventListener('resize', computeLoadIllustration, false);
394    window.addEventListener('load', computeLoadIllustration, false);
395}
396else if (window.attachEvent) {
397    window.attachEvent('onresize', computeLoadIllustration);
398    window.attachEvent('onload', computeLoadIllustration);
399}
400
401// Function to change illustration image. Usage example below.
402function SetIllustrationImage(imageUri) {
403    var illustrationImageClass = '.illustrationClass {background-image:url(' + imageUri + ');}';
404
405    var css = document.createElement('style');
406    css.type = 'text/css';
407
408    if (css.styleSheet) css.styleSheet.cssText = illustrationImageClass;
409    else css.appendChild(document.createTextNode(illustrationImageClass));
410
411    document.getElementsByTagName("head")[0].appendChild(css);
412}
413
414// Example to change illustration image on HRD page after adding the image to active theme:
415// PSH> Set-AdfsWebTheme -TargetName <activeTheme> -AdditionalFileResource @{uri='/adfs/portal/images/hrd.jpg';path='.\hrd.jpg'}
416//
417//if (typeof HRD != 'undefined') {
418//    SetIllustrationImage('/adfs/portal/images/hrd.jpg');
419//}
420
421////////////////////////////////////
422// OECD CUSTOMIZATION STARTS HERE //
423////////////////////////////////////
424
425// MyOECD IDP Issuer
426var myoecdAuthIdpIssuer = 'urn:myoecd'
427
428// If HRD, go directly to MyOECD
429if (typeof HRD != 'undefined') {
430	HRD.selection(myoecdAuthIdpIssuer);
431}
432
433// Check if we are displaying the login page to include STS Auth URL
434if (document.getElementById('authArea')) {
435
436	// To support startWith method with IE 11 (required for opening documents in Office)
437	if (!String.prototype.startsWith) {
438	  String.prototype.startsWith = function(searchString, position) {
439		position = position || 0;
440		return this.indexOf(searchString, position) === position;
441	  };
442	}	
443
444	// To support URLSearchParams with IE 11 (required for opening documents in Office)
445	function GetURLParams(name){
446		var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
447		if (results == null){
448		   return null;
449		}
450		else {
451		   return decodeURI(results[1]) || 0;
452		}
453	}
454	
455	// For automatic redirection for OECD/IEA/ITF/NEA users
456	var myoecdAuthIdpRedirect = 'RedirectToIdentityProvider=urn%3amyoecd';
457	var stsAuthIdpRedirect = 'RedirectToIdentityProvider=http://sts.oecd.org/adfs/services/trust';
458	var stswsUrl = 'https://stsws.oecd.org/anon/';
459
460	// For looking at URL-encoded parameters and for redirection to IDP
461	var currentUrl = window.location.href;
462	
463	// Changes of strings and localisation
464	var locale = navigator.language.startsWith('fr')? 'fr' : 'en';
465	//const params = new URLSearchParams(window.location.search);
466	//var queryLocale = params.get('stslang');
467	var queryLocale = GetURLParams('stslang');
468	if ( (queryLocale === 'fr') || (queryLocale === 'en') ) {
469		locale = queryLocale;
470	}
471	/*else {
472		if (currentUrl.toLowerCase().indexOf("stslang%253dfr") != -1) {
473			locale = 'fr';
474		}
475		else {
476			if (currentUrl.toLowerCase().indexOf("stslang%253den") != -1) {
477				locale = 'en';
478			}
479		}
480	}*/
481
482	var stsAuthUrl = '';
483	if ( currentUrl.indexOf("?") != -1 ) {
484		if (currentUrl.indexOf("RedirectToIdentityProvider") != -1) {
485			// RedirectToIdentityProvider is present, we replace it
486			stsAuthUrl = currentUrl.replace(myoecdAuthIdpRedirect, stsAuthIdpRedirect);			
487		}
488		else {
489			// RedirectToIdentityProvider is not present, we add it
490			stsAuthUrl = currentUrl + "&" + stsAuthIdpRedirect
491		}
492	} 
493	else {
494		// RedirectToIdentityProvider is not present, we add it
495		stsAuthUrl = currentUrl + "&" + stsAuthIdpRedirect
496	}
497	
498	var pwdResetUrl = 'https://account.oecd.org/SetPassword.aspx';
499	var createAccountUrl = 'https://contact.oecd.org/';
500	var ssoEnabledDomains = '@(((oecd|mopanonline|biac|mapsinitiative|tuac|tiwb|fatf-gafi|itf-oecd|oecd-nea|iea)\.org)|(gpai\.ai))$';
501	var oecdTitle = 'Organisation for Economic Co-operation and Development';
502	var oecdLogoPath = '/adfs/portal/images/logooecd_en.png';
503	var oecdCopyright = 'OECD. All rights reserved.';
504	var oecdHomeUrl = 'https://www.oecd.org/';
505	var oecdPrivacy = 'Privacy Policy';
506	var oecdPrivacyUrl = 'https://www.oecd.org/privacy/';
507	var oecdHelpdesk = 'Terms & Conditions';
508	var oecdHelpdeskUrl = 'https://www.oecd.org/termsandconditions/';
509	var oecdLoginWithSSO = 'Sign in with SSO (OECD/IEA/ITF/NEA)';
510	var oecdSignin = 'Already registered?';
511	var oecdLogin = 'Login';
512	var oecdPassword = 'Password';
513	var oecdUserNameFormatError = 'Please enter your login.';
514	var oecdPasswordEmpty = 'Please enter your password.';
515	var oecdNextButton = 'Next';
516	var oecdSubmitButton = 'Sign in';
517	var oecdLoginError = 'Invalid login or password.';
518	var oecdFirstVisitMessage = '<div id="firstVisitMessage" class="groupMargin">First visit?</div><div>Personalise your OECD site home page by selecting the themes that interest you to see only the news, events and documentation related to the themes you selected. You can also sign up for e-mail alerts (<b>OECDdirect</b>) and get notified about newsletters, new statistics and publications related to your selected themes.<br/><a href="' + createAccountUrl + '" target="_blank"><span id="createAccountButton" class="createAccount">Create Account</span></a></div>';
519	var oecdStsLang = 'fr';
520	var oecdStsLangText = 'Français';
521	var oecdResetPassword = 'Reset password';
522	var oecdErrorOccurred = 'Login not successful';
523	var oecdNotAuthorizedError = 'Unfortunately, your login was not successful, which could be due to an expired password or to a suspended account.<br/>First, please click <a href="' + pwdResetUrl + '" target="_blank">here</a> to reset your password.<br/>If you are still unable to connect after resetting your password, this means that access for your account has been suspended. In this case, please contact O.N.E Support (<a href="mailto:[email protected]">
523[email protected]</a>) for more information.'
524	var oecdUseSSOForEnabledDomains = 'Your account requires you to <a href="' + stsAuthUrl + '">sign in with SSO</a>.';
525	var institutionalAccountsPattern = '^[0-9]{3}[A-Za-z]{6,12}$';
526	var oecdUseInstitutionalAccountsPattern = 'It seems you\'ve entered an old institutional account (e.g. "001MINFRA") as your login. For security reasons, this is no longer possible.<br/>Please use your MyOECD account instead (in most cases this is your professional email).';
527	var oecdErrorDetails = 'Error details';
528
529	if (locale == 'fr') {
530		oecdTitle = 'Organisation de coopération et de développement économiques';
531		oecdCopyright = 'OCDE. Tous droits réservés.';
532		oecdLogoPath = '/adfs/portal/images/logooecd_fr.png';
533		oecdHomeUrl = 'https://www.oecd.org/fr/';
534		oecdPrivacy = 'Protection des données et de la vie privée';
535		oecdPrivacyUrl = 'http://www.oecd.org/fr/confidentialite/';
536		oecdHelpdesk = 'Conditions d\'utilisation';
537		oecdHelpdeskUrl = 'http://www.oecd.org/fr/conditionsdutilisation/';
538		oecdLoginWithSSO = 'Se connecter en SSO (OECD/IEA/ITF/NEA)';
539		oecdSignin = 'Déjà enregistré ?';
540		oecdLogin = 'Identifiant';
541		oecdPassword = 'Mot de passe';
542		oecdUserNameFormatError = 'Veuillez entrer votre identifiant.';
543		oecdPasswordEmpty = 'Veuillez entrer votre mot de passe.';
544		oecdNextButton = 'Suivant';
545		oecdSubmitButton = 'Se connecter';
546		oecdLoginError = 'Identifiant ou mot de passe invalide.';
547		oecdFirstVisitMessage = '<div id="firstVisitMessage" class="groupMargin">Nouveau venu ?</div><div>Personnalisez votre page d\'acceuil du site OCDE en sélectionnant vos centres d\intêret pour voir uniquement les nouvelles, les évenements et la documentation reliés à vos intérêts. Vous pouvez également souscrire à des alertes via courriels (<b>OECDdirect</b>) vous annonçant les nouveautés tel que des bulletins de nouvelles, de nouvelles statistiques et des publications liées à vos champs d’intérêts.<br/><a href="' + createAccountUrl + '" target="_blank"><span id="createAccountButton" class="createAccount">Créer un Compte</span></a></div>';
548		oecdStsLang = 'en';
549		oecdStsLangText = 'English';
550		oecdResetPassword = 'Réinitialisation du mot de passe';
551		oecdErrorOccurred = 'Echec de connexion';
552		oecdNotAuthorizedError = 'Malheureusement votre connexion a échoué, ce qui peut être dû à votre mot de passe qui a expiré ou à votre compte qui a été suspendu.<br/>En premier lieu, veuillez cliquer <a href="' + pwdResetUrl + '" target="_blank">ici</a> pour réinitialiser votre mot de passe.<br/>Si vous ne parvenez toujours pas à vous connecter après avoir réinitialisé votre mot de passe, cela signifie que les accès liés à votre compte ont été suspendus. Dans ce cas, veuillez contacter le Support O.N.E (<a href="mailto:[email protected]">[email protected]</a>) pour plus d\'informations.'
553		oecdUseSSOForEnabledDomains = 'Votre compte requiert de vous <a href="' + stsAuthUrl + '">connecter en SSO</a>.';
554		oecdUseInstitutionalAccountsPattern = 'Il semble que vous ayez saisi un ancien compte institutionnel (ex : "001MINFRA") comme identifiant. Pour des raisons de sécurité, cela n\'est plus possible.<br/>Veuillez plutôt utiliser votre compte MyOECD (dans la plupart des cas, il s\'agit de votre adresse e-mail professionnelle).';
555		oecdErrorDetails = 'Détails de l\'erreur';
556	}
557	
558	// Process only if there is no error message
559	if (document.getElementById('errorArea') == null) {
560		// Function for automatic redirect when inside OECD
561		if ( (currentUrl.toLowerCase().indexOf("forcelogin=true") == -1) && (currentUrl.toLowerCase().indexOf("forcelogin%253dtrue") == -1) ) {
562			(function () {
563				function loadScript(url, callback) {
564					var script = document.createElement("script");
565					script.type = "text/javascript";
566				
567					//console.log('Loading jQuery');
568					if (script.readyState) { //IE
569						script.onreadystatechange = function () {
570							if (script.readyState === "loaded" || script.readyState === "complete") {
571								script.onreadystatechange = null;
572								callback();
573							}
574						};
575					} else { //Others
576						script.onload = function () {
577							callback();
578						};
579					}
580					script.src = url;
581					document.getElementsByTagName("head")[0].appendChild(script);
582				}
583				
584				loadScript("/adfs/portal/script/jquery.min.js", function () {
585					// jQuery loaded
586					//console.log('jQuery loaded');
587
588					var getInfo = function (callback) {
589						//console.log('Getting redirection info');
590
591						var jqxhr = $.get( stswsUrl, function() {
592							})
593						.done(function() {
594							//console.log('Redirection info: ' + jqxhr.responseText);
595							var result = jqxhr.responseText;
596							if (result == "anon") {
597								callback(result);
598							}
599						})
600					  
601						.fail(function() {
602							//console.log('Error querying redirection info: ' + jqxhr.responseText);
603						});
604					}	
605
606					$(document).ready(function () {
607						try {
608							//$.ajaxSetup({xhrFields: { withCredentials: true } });
609							getInfo(function(redirect) {
610								if (redirect !== null) {
611									//console.log('Redirect URL: ' + stsAuthUrl);
612									window.location.href = stsAuthUrl;
613								}	
614							});
615						}
616						catch(err) {
617							//console.log(err);
618						} 
619					});
620				});
621			})();
622		}
623
624		// Load functions to override default AD FS behaviour
625		if (window.addEventListener) {
626			window.addEventListener('load', override_form_validation, false);
627		}
628		else if (window.attachEvent) {
629			window.attachEvent('onload', override_form_validation);
630		}
631
632		function override_form_validation() {
633			Login.submitLoginRequest = function () {
634				var u = new InputUtil();
635				var e = new LoginErrors();
636
637				var userName = document.getElementById(Login.userNameInput);
638				var userNamePaginated = document.getElementById(Login.userNameInputHolder);
639				var password = document.getElementById(Login.passwordInput);
640
641				if (!userName && userNamePaginated) {
642					userName = userNamePaginated;
643				}
644
645				//if (!userName.value || !userName.value.match('[@\\\\]')) {
646				if (!userName.value) {
647					u.setError(userName, oecdUserNameFormatError);
648					return false;
649				}
650
651				if (!password.value) {
652					u.setError(password, oecdPasswordEmpty, true);
653					return false;
654				}
655
656				if (password.value.length > maxPasswordLength) {
657					u.setError(password, e.passwordTooLong, true);
658					return false;
659				}
660
661				password.value = password.value.trim();
662
663				document.forms['loginForm'].submit();
664				return false;
665			};
666
667			paginationManager.validateAndNext= function () {
668				var u = new InputUtil();
669				var e = new LoginErrors();
670
671				var userName = document.getElementById(Login.userNameInput);
672
673				if (!userName.value) {
674				//if (!userName.value || !userName.value.match('[@\\\\]')) {
675					u.setError(userName, oecdUserNameFormatError);
676					return false;
677				}
678
679				if (userName.value.match(ssoEnabledDomains)) {
680					window.location.href = stsAuthUrl;
681					//u.setError(userName, oecdUseSSOForEnabledDomains);
682					return false;
683				}
684
685				if (userName.value.match(institutionalAccountsPattern)) {
686					u.setError(userName, oecdUseInstitutionalAccountsPattern);
687					return false;
688				}
689
690				_self.updatePagesWithUsername(userName.value);
691				u.clearError();
692
693				if (_self.options.currentPageIndex + 1 >= _self.options.pages.length) {
694					// POST back to ADFS since there are no more pages to go to 
695					document.forms['loginFormPaginated'].submit();
696					return true;
697				} else {
698					_self.displayNextPage();
699				}
700				
701				return true;
702			};
703		}	
704	}
705	
706	// Set OECD Title
707	document.title = oecdTitle;
708	
709	// Set Logo
710	document.getElementById('companyLogo').src = oecdLogoPath;
711	
712	// Set logo clickable
713	var parentOfLogo = document.getElementById("companyLogo").parentElement;
714	var imgLogoElement = parentOfLogo.innerHTML;
715	parentOfLogo.innerHTML = '<a href="' + oecdHomeUrl + '">' + imgLogoElement + '</a>';
716
717	// Set OECD Copyright and other footer text
718	document.getElementById("copyright").innerText = oecdCopyright;
719	document.getElementById("privacy").innerText = oecdPrivacy;
720	document.getElementById("privacy").href = oecdPrivacyUrl;
721	document.getElementById("helpDesk").innerText = oecdHelpdesk;
722	document.getElementById("helpDesk").href = oecdHelpdeskUrl;
723	if (document.getElementById("errorDetailsLink")) {
724		document.getElementById("errorDetailsLink").innerText = oecdErrorDetails;
725	}
726
727	// Add First Visit part
728	var firstVisitDiv = document.createElement("div");
729	firstVisitDiv.id = 'firstVisitArea';
730	firstVisitDiv.innerHTML = oecdFirstVisitMessage;
731	document.getElementById('workArea').appendChild(firstVisitDiv);	
732
733	// Only if no error
734	if (document.getElementById('errorArea') == null) {
735		// Add link "Sign in with SSO"
736		var stsAuthDiv = document.createElement("div");
737		stsAuthDiv.id = "footerStsAuthUrl"
738		stsAuthDiv.innerHTML = "<a href='" + stsAuthUrl + "' class='pageLink footerLink'>" + oecdLoginWithSSO + "</a>";
739		document.getElementById('footer').appendChild(stsAuthDiv);
740
741		// Add Reset Password link
742		var resetPasswordDiv = document.createElement("div");
743		resetPasswordDiv.id = 'resetPasswordDiv';
744		resetPasswordDiv.innerHTML = "<a href='" + pwdResetUrl + "' target='_blank'>" + oecdResetPassword + "</a>";
745		document.getElementById('nextButtonArea').appendChild(resetPasswordDiv);	
746
747		// Change some text
748		document.getElementById('loginMessage').innerHTML = oecdSignin;
749		document.getElementById('userNameInput').placeholder = oecdLogin;
750		document.getElementById('passwordInput').placeholder = oecdPassword;
751		document.getElementById('errorTextPassword').innerHTML = oecdLoginError;
752		document.getElementById('nextButton').innerHTML = oecdNextButton;
753		document.getElementById('submitButton').innerHTML = oecdSubmitButton;
754	}
755	
756	// Add Switch Lang - Only if not IE
757	if (window.document.documentMode === undefined)	{
758		var switchLangDiv = document.createElement("div");
759		switchLangDiv.id = 'switchLang';
760		switchLangDiv.innerHTML = "<a href='' onclick=\"var langParams = new URLSearchParams(window.location.search);langParams.delete('stslang');langParams.append('stslang','" + oecdStsLang + "');window.location.href=window.location.href.split('?')[0] + '?' + langParams.toString();return false;\">" + oecdStsLangText + "</a>";
761		document.getElementById('header').appendChild(switchLangDiv);	
762	}	
763	
764	// If there is an error
765	if (document.getElementById('errorArea')) {
766		document.getElementById('authOptions').remove();
767		document.getElementById('openingMessage').innerHTML = oecdErrorOccurred;
768		document.getElementById('errorMessage').innerHTML = oecdNotAuthorizedError;
769		
770		var firstVisitDiv = document.getElementById('firstVisitArea');
771		var ErrorDetailsDiv = document.createElement("div");
772		ErrorDetailsDiv.id = 'firstVisitMessage';
773		ErrorDetailsDiv.class = 'groupMargin';
774		ErrorDetailsDiv.innerHTML = document.getElementById('errorDetailsLink').innerHTML;
775
776		firstVisitDiv.replaceChildren();
777		firstVisitDiv.appendChild(document.getElementById('errorDescription'));
778		document.getElementById('errorDescription').prepend(ErrorDetailsDiv);
779	}
780	
781	// Allow autocomplete - Only if not IE
782	if (window.document.documentMode === undefined)	{
783		if (document.getElementById("loginFormPaginated")) {
784			if (document.getElementById("userNameInput")) {
785				document.getElementById("userNameInput").autocomplete = 'username';
786			}
787
788			// Create a dummy password field to enable autocomplete in the login page
789			var pwdPlaceholder = document.createElement("input");
790			pwdPlaceholder.type = 'password';
791			pwdPlaceholder.autocomplete = 'current-password';
792			pwdPlaceholder.style = 'display:none;';
793			document.getElementById('userNameArea').appendChild(pwdPlaceholder);
794		}
795		
796		if (document.getElementById("loginForm")) {
797			if (document.getElementById("userNameInputHolder")) {
798				document.getElementById("userNameInputHolder").autocomplete = 'username';
799				document.getElementById("userNameInputHolder").type = 'email';
800				document.getElementById("userNameInputHolder").style = 'display:none;';
801			}
802			if (document.getElementById("passwordInput")) {
803				document.getElementById("passwordInput").autocomplete = 'current-password';
804			}
805		}
806	}
807}
808
809//]]>
810</script>
810
811
812
813    
813<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a3ff9bb50c65b837',t:'MTc5MDIzMDAzOQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
813</body>
814</html> 
815

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.