View | Details | Raw Unified | Return to bug 43582
Collapse All | Expand All

(-)a/univention-office365/modules/univention/office365/azure_auth.py (-1 / +1 lines)
 Lines 557-563   def write_saml_setup_script(cls): Link Here 
557
		template = '''
557
		template = '''
558
@ECHO OFF
558
@ECHO OFF
559
ECHO Asking for Azure Administator credentials
559
ECHO Asking for Azure Administator credentials
560
powershell Connect-MsolService; Set-MsolDomainAuthentication -DomainName "{domain}" -Authentication Managed; Set-MsolDomainAuthentication -DomainName "{domain}" -FederationBrandName "UCS" -Authentication Federated -ActiveLogOnUri "https://{ucs_sso_fqdn}/simplesamlphp/saml2/idp/SSOService.php" -PassiveLogOnUri "https://{ucs_sso_fqdn}/simplesamlphp/saml2/idp/SSOService.php" -SigningCertificate "{cert}" -IssuerUri "{issuer}" -LogOffUri "https://{ucs_sso_fqdn}/simplesamlphp/saml2/idp/SingleLogoutService.php?ReturnTo=/ucs-overview" -PreferredAuthenticationProtocol SAMLP;  Get-MsolDomain
560
powershell Connect-MsolService; Set-MsolDomainAuthentication -DomainName "{domain}" -Authentication Managed; Set-MsolDomainAuthentication -DomainName "{domain}" -FederationBrandName "UCS" -Authentication Federated -ActiveLogOnUri "https://{ucs_sso_fqdn}/simplesamlphp/saml2/idp/SSOService.php" -PassiveLogOnUri "https://{ucs_sso_fqdn}/simplesamlphp/saml2/idp/SSOService.php" -SigningCertificate "{cert}" -IssuerUri "{issuer}" -LogOffUri "https://{ucs_sso_fqdn}/simplesamlphp/saml2/idp/SingleLogoutService.php?ReturnTo=/univention/" -PreferredAuthenticationProtocol SAMLP;  Get-MsolDomain
561
ECHO Finished single sign-on configuration change
561
ECHO Finished single sign-on configuration change
562
pause
562
pause
563
'''.format(domain=cls.get_domain(), ucs_sso_fqdn=ucs_sso_fqdn, cert=cert, issuer=issuer)
563
'''.format(domain=cls.get_domain(), ucs_sso_fqdn=ucs_sso_fqdn, cert=cert, issuer=issuer)
(-)a/univention-office365/umc/js/de.po (-4 / +4 lines)
 Lines 87-94   msgstr "Für die UCS-Benutzerkonten, bei denen Office 365 aktiviert wurde, werde Link Here 
87
msgid "Help"
87
msgid "Help"
88
msgstr "Hilfe"
88
msgstr "Hilfe"
89
89
90
msgid "If the download of the <i>manifest.json</i> file didn't start automatically <a download=\"manifest.json\" href=\"/univention-management-console/command/office365/manifest.json\" target=\"_blank\">click here</a>."
90
msgid "If the download of the <i>manifest.json</i> file didn't start automatically <a download=\"manifest.json\" href=\"/univention/command/office365/manifest.json\" target=\"_blank\">click here</a>."
91
msgstr "Falls der Download der <i>manifest.json</i> Datei nicht automatisch gestartet wurde <a download=\"manifest.json\" target=\"_blank\" href=\"/univention-management-console/command/office365/manifest.json\">hier klicken</a>."
91
msgstr "Falls der Download der <i>manifest.json</i> Datei nicht automatisch gestartet wurde <a download=\"manifest.json\" target=\"_blank\" href=\"/univention/command/office365/manifest.json\">hier klicken</a>."
92
92
93
msgid "If the script has been executed successfully, single sign-on configuration is completed. Continue by clicking on <i>Next</i>."
93
msgid "If the script has been executed successfully, single sign-on configuration is completed. Continue by clicking on <i>Next</i>."
94
msgstr "Wenn das Script erfolgreich ausgeführt wurde, ist die Einrichtung des Single Sign-on abgeschlossen. Fahren Sie durch klicken auf <i>Weiter</i> fort."
94
msgstr "Wenn das Script erfolgreich ausgeführt wurde, ist die Einrichtung des Single Sign-on abgeschlossen. Fahren Sie durch klicken auf <i>Weiter</i> fort."
 Lines 170-177   msgstr "Wählen Sie Ihr Active Directory aus." Link Here 
170
msgid "Single Sign-On setup"
170
msgid "Single Sign-On setup"
171
msgstr "Single Sign-On Einrichtung"
171
msgstr "Single Sign-On Einrichtung"
172
172
173
msgid "Synchronized users can log into Office 365 by using the link on the <a href=\"/ucs-overview#services\" target=\"_blank\">UCS overview page</a>."
173
msgid "Synchronized users can log into Office 365 by using the link on the <a href=\"/univention/\" target=\"_blank\">UCS portal</a>."
174
msgstr "Synchronisierte Benutzer können sich bei Office 365 anmelden, indem Sie den Link auf der <a href=\"/ucs-overview#services\" target=\"_blank\">UCS Übersichtsseite</a> nutzen."
174
msgstr "Synchronisierte Benutzer können sich bei Office 365 anmelden, indem Sie den Link auf dem <a href=\"/univention/\" target=\"_blank\">UCS Portal</a> nutzen."
175
175
176
msgid "The UCS SAML identity provider has to be connected to Azure by running a Windows Powershell script."
176
msgid "The UCS SAML identity provider has to be connected to Azure by running a Windows Powershell script."
177
msgstr "Der UCS SAML Identity Provider muss über ein Windows Powershell Script mit Azure verbunden werden."
177
msgstr "Der UCS SAML Identity Provider muss über ein Windows Powershell Script mit Azure verbunden werden."
(-)a/univention-office365/umc/js/office365.js (-4 / +4 lines)
 Lines 247-253   define([ Link Here 
247
					widgets: [{
247
					widgets: [{
248
						type: Text,
248
						type: Text,
249
						name: 'infos',
249
						name: 'infos',
250
						content: _('Synchronized users can log into Office 365 by using the link on the <a href="/ucs-overview#services" target="_blank">UCS overview page</a>.') + '<br>' + this.img(_('sso-login_EN.png'))
250
						content: _('Synchronized users can log into Office 365 by using the link on the <a href="/univention/" target="_blank">UCS portal</a>.') + '<br>' + this.img(_('sso-login_EN.png'))
251
					}]
251
					}]
252
				}, {
252
				}, {
253
					name: 'error',
253
					name: 'error',
 Lines 322-328   define([ Link Here 
322
322
323
		getTextUpdateManifest: function() {
323
		getTextUpdateManifest: function() {
324
			return this.formatOrderedList([
324
			return this.formatOrderedList([
325
				_('If the download of the <i>manifest.json</i> file didn\'t start automatically <a download="manifest.json" href="/univention-management-console/command/office365/manifest.json" target="_blank">click here</a>.'),
325
				_('If the download of the <i>manifest.json</i> file didn\'t start automatically <a download="manifest.json" href="/univention/command/office365/manifest.json" target="_blank">click here</a>.'),
326
				_('Select <i>MANAGE MANIFEST</i> and <i>upload manifest</i> in the Azure dashboard.') + this.img(_('manage_manifest_EN.png')),
326
				_('Select <i>MANAGE MANIFEST</i> and <i>upload manifest</i> in the Azure dashboard.') + this.img(_('manage_manifest_EN.png')),
327
				_('To upload the manifest in the new pop up click on <i>BROWSE FOR FILE...</i> and select the previously downloaded <i>manifest.json</i>.') + this.img(_('azure_upload_manifest_window_EN.png')),
327
				_('To upload the manifest in the new pop up click on <i>BROWSE FOR FILE...</i> and select the previously downloaded <i>manifest.json</i>.') + this.img(_('azure_upload_manifest_window_EN.png')),
328
				_('After the upload has succeeded continue this wizard by clicking on <i>Next</i>.')
328
				_('After the upload has succeeded continue this wizard by clicking on <i>Next</i>.')
 Lines 347-353   define([ Link Here 
347
				_('Install the latest version of Microsoft Powershell by installing <a href="%s" target="_blank">Windows Management Framework 5.0</a>', _('https://www.microsoft.com/en-us/download/details.aspx?id=50395')),
347
				_('Install the latest version of Microsoft Powershell by installing <a href="%s" target="_blank">Windows Management Framework 5.0</a>', _('https://www.microsoft.com/en-us/download/details.aspx?id=50395')),
348
				_('On your Windows PC, follow the <a href="%s" target="_blank">instructions on Microsoft TechNet</a> to install the <i>Microsoft Online Services Sign-In Assistant for IT Professionals RTW</i> and <i>Azure Active Directory Module for Windows PowerShell</i> on your PC.', _('https://technet.microsoft.com/library/jj151815.aspx#bkmk_installmodule')),
348
				_('On your Windows PC, follow the <a href="%s" target="_blank">instructions on Microsoft TechNet</a> to install the <i>Microsoft Online Services Sign-In Assistant for IT Professionals RTW</i> and <i>Azure Active Directory Module for Windows PowerShell</i> on your PC.', _('https://technet.microsoft.com/library/jj151815.aspx#bkmk_installmodule')),
349
				_('Make sure that the verified domain which is set up in Azure Active Directory is <b>not</b> configured as the primary domain. Otherwise, the next step will fail.'),
349
				_('Make sure that the verified domain which is set up in Azure Active Directory is <b>not</b> configured as the primary domain. Otherwise, the next step will fail.'),
350
				lang.replace(_('Download the {link} for Microsoft Powershell.'), {link: '<a href="/univention-management-console/command/office365/saml_setup.bat" target="_blank">' + _('SAML configuration script') + '</a>'}) + ' ' +
350
				lang.replace(_('Download the {link} for Microsoft Powershell.'), {link: '<a href="/univention/command/office365/saml_setup.bat" target="_blank">' + _('SAML configuration script') + '</a>'}) + ' ' +
351
				_('Execute the downloaded SAML configuration script, and authenticate with the Azure Active Directory domain administrator account.') + this.img(_('saml_setup_script_windows_EN.png')),
351
				_('Execute the downloaded SAML configuration script, and authenticate with the Azure Active Directory domain administrator account.') + this.img(_('saml_setup_script_windows_EN.png')),
352
				_('If the script has been executed successfully, single sign-on configuration is completed. Continue by clicking on <i>Next</i>.')
352
				_('If the script has been executed successfully, single sign-on configuration is completed. Continue by clicking on <i>Next</i>.')
353
			]);
353
			]);
 Lines 399-405   define([ Link Here 
399
			this.authorizationurl = data.result.authorizationurl;
399
			this.authorizationurl = data.result.authorizationurl;
400
//			iframe("data:application/octet-stream;headers=Content-Disposition%3A%20attachment%3B%20filename%3Dmanifest.json;charset=utf-8;base64," + data.result.manifest);  // sucks...
400
//			iframe("data:application/octet-stream;headers=Content-Disposition%3A%20attachment%3B%20filename%3Dmanifest.json;charset=utf-8;base64," + data.result.manifest);  // sucks...
401
//			domConstruct.create('a', {href: 'data:application/octet-stream;charset=utf-8;base64,' + data.result.manifest, 'download': 'manifest.json', style: 'display: none;', 'innerHTML': 'manifest.json'}, dojo.body()).click();  // IE11 sucks
401
//			domConstruct.create('a', {href: 'data:application/octet-stream;charset=utf-8;base64,' + data.result.manifest, 'download': 'manifest.json', style: 'display: none;', 'innerHTML': 'manifest.json'}, dojo.body()).click();  // IE11 sucks
402
			domConstruct.create('a', {target: '_blank', href: '/univention-management-console/command/office365/manifest.json', 'download': 'manifest.json', style: 'display: none;', 'innerHTML': 'manifest.json'}, dojo.body()).click();
402
			domConstruct.create('a', {target: '_blank', href: '/univention/command/office365/manifest.json', 'download': 'manifest.json', style: 'display: none;', 'innerHTML': 'manifest.json'}, dojo.body()).click();
403
			this._next('manifest-upload');
403
			this._next('manifest-upload');
404
		},
404
		},
405
405
(-)a/univention-office365/umc/python/office365/__init__.py (-2 / +5 lines)
 Lines 38-44    Link Here 
38
from univention.lib.i18n import Translation
38
from univention.lib.i18n import Translation
39
from univention.management.console.config import ucr
39
from univention.management.console.config import ucr
40
from univention.management.console.base import Base, UMC_Error, UMC_OptionSanitizeError
40
from univention.management.console.base import Base, UMC_Error, UMC_OptionSanitizeError
41
from univention.management.console.modules.decorators import sanitize, simple_response, file_upload
41
from univention.management.console.modules.decorators import sanitize, simple_response, file_upload, allow_get
42
from univention.management.console.modules.sanitizers import StringSanitizer, DictSanitizer, BooleanSanitizer, ValidationError, MultiValidationError
42
from univention.management.console.modules.sanitizers import StringSanitizer, DictSanitizer, BooleanSanitizer, ValidationError, MultiValidationError
43
from univention.management.console.log import MODULE
43
from univention.management.console.log import MODULE
44
44
 Lines 85-91   def query(self): Link Here 
85
		fqdn = '%s.%s' % (ucr.get('hostname'), ucr.get('domainname'))
85
		fqdn = '%s.%s' % (ucr.get('hostname'), ucr.get('domainname'))
86
		return {
86
		return {
87
			'initialized': AzureAuth.is_initialized(),
87
			'initialized': AzureAuth.is_initialized(),
88
			'login-url': '{origin}/univention-management-console/command/office365/authorize',
88
			'login-url': '{origin}/univention/command/office365/authorize',
89
			'appid-url': 'https://%s/office365' % (fqdn,),
89
			'appid-url': 'https://%s/office365' % (fqdn,),
90
			'base-url': 'https://%s/' % (fqdn,),
90
			'base-url': 'https://%s/' % (fqdn,),
91
		}
91
		}
 Lines 126-139   def upload(self, request): Link Here 
126
			'authorizationurl': authorizationurl,
126
			'authorizationurl': authorizationurl,
127
		}, message=_('The manifest has been successfully uploaded.'))
127
		}, message=_('The manifest has been successfully uploaded.'))
128
128
129
	@allow_get
129
	def manifest_json(self, request):
130
	def manifest_json(self, request):
130
		with open(MANIFEST_FILE, 'rb') as fd:
131
		with open(MANIFEST_FILE, 'rb') as fd:
131
			self.finished(request.id, fd.read(), mimetype='application/octet-stream')
132
			self.finished(request.id, fd.read(), mimetype='application/octet-stream')
132
133
134
	@allow_get
133
	def saml_setup_script(self, request):
135
	def saml_setup_script(self, request):
134
		with open(SAML_SETUP_SCRIPT_PATH, 'rb') as fd:
136
		with open(SAML_SETUP_SCRIPT_PATH, 'rb') as fd:
135
			self.finished(request.id, fd.read(), mimetype='application/octet-stream')
137
			self.finished(request.id, fd.read(), mimetype='application/octet-stream')
136
138
139
	@allow_get
137
	@sanitize(
140
	@sanitize(
138
		id_token=StringSanitizer(),
141
		id_token=StringSanitizer(),
139
		code=StringSanitizer(),
142
		code=StringSanitizer(),

Return to bug 43582