diff --git a/univention-office365/modules/univention/office365/azure_auth.py b/univention-office365/modules/univention/office365/azure_auth.py index 537b22b..392245a 100644 --- a/univention-office365/modules/univention/office365/azure_auth.py +++ b/univention-office365/modules/univention/office365/azure_auth.py @@ -557,7 +557,7 @@ def write_saml_setup_script(cls): template = ''' @ECHO OFF ECHO Asking for Azure Administator credentials -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 +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 ECHO Finished single sign-on configuration change pause '''.format(domain=cls.get_domain(), ucs_sso_fqdn=ucs_sso_fqdn, cert=cert, issuer=issuer) diff --git a/univention-office365/umc/js/de.po b/univention-office365/umc/js/de.po index 1b0629d..f314f53 100644 --- a/univention-office365/umc/js/de.po +++ b/univention-office365/umc/js/de.po @@ -87,8 +87,8 @@ msgstr "Für die UCS-Benutzerkonten, bei denen Office 365 aktiviert wurde, werde msgid "Help" msgstr "Hilfe" -msgid "If the download of the manifest.json file didn't start automatically click here." -msgstr "Falls der Download der manifest.json Datei nicht automatisch gestartet wurde hier klicken." +msgid "If the download of the manifest.json file didn't start automatically click here." +msgstr "Falls der Download der manifest.json Datei nicht automatisch gestartet wurde hier klicken." msgid "If the script has been executed successfully, single sign-on configuration is completed. Continue by clicking on Next." msgstr "Wenn das Script erfolgreich ausgeführt wurde, ist die Einrichtung des Single Sign-on abgeschlossen. Fahren Sie durch klicken auf Weiter fort." @@ -170,8 +170,8 @@ msgstr "Wählen Sie Ihr Active Directory aus." msgid "Single Sign-On setup" msgstr "Single Sign-On Einrichtung" -msgid "Synchronized users can log into Office 365 by using the link on the UCS overview page." -msgstr "Synchronisierte Benutzer können sich bei Office 365 anmelden, indem Sie den Link auf der UCS Übersichtsseite nutzen." +msgid "Synchronized users can log into Office 365 by using the link on the UCS portal." +msgstr "Synchronisierte Benutzer können sich bei Office 365 anmelden, indem Sie den Link auf dem UCS Portal nutzen." msgid "The UCS SAML identity provider has to be connected to Azure by running a Windows Powershell script." msgstr "Der UCS SAML Identity Provider muss über ein Windows Powershell Script mit Azure verbunden werden." diff --git a/univention-office365/umc/js/office365.js b/univention-office365/umc/js/office365.js index e6a23b7..fcbdf9c 100644 --- a/univention-office365/umc/js/office365.js +++ b/univention-office365/umc/js/office365.js @@ -247,7 +247,7 @@ define([ widgets: [{ type: Text, name: 'infos', - content: _('Synchronized users can log into Office 365 by using the link on the UCS overview page.') + '
' + this.img(_('sso-login_EN.png')) + content: _('Synchronized users can log into Office 365 by using the link on the UCS portal.') + '
' + this.img(_('sso-login_EN.png')) }] }, { name: 'error', @@ -322,7 +322,7 @@ define([ getTextUpdateManifest: function() { return this.formatOrderedList([ - _('If the download of the manifest.json file didn\'t start automatically click here.'), + _('If the download of the manifest.json file didn\'t start automatically click here.'), _('Select MANAGE MANIFEST and upload manifest in the Azure dashboard.') + this.img(_('manage_manifest_EN.png')), _('To upload the manifest in the new pop up click on BROWSE FOR FILE... and select the previously downloaded manifest.json.') + this.img(_('azure_upload_manifest_window_EN.png')), _('After the upload has succeeded continue this wizard by clicking on Next.') @@ -347,7 +347,7 @@ define([ _('Install the latest version of Microsoft Powershell by installing Windows Management Framework 5.0', _('https://www.microsoft.com/en-us/download/details.aspx?id=50395')), _('On your Windows PC, follow the instructions on Microsoft TechNet to install the Microsoft Online Services Sign-In Assistant for IT Professionals RTW and Azure Active Directory Module for Windows PowerShell on your PC.', _('https://technet.microsoft.com/library/jj151815.aspx#bkmk_installmodule')), _('Make sure that the verified domain which is set up in Azure Active Directory is not configured as the primary domain. Otherwise, the next step will fail.'), - lang.replace(_('Download the {link} for Microsoft Powershell.'), {link: '' + _('SAML configuration script') + ''}) + ' ' + + lang.replace(_('Download the {link} for Microsoft Powershell.'), {link: '' + _('SAML configuration script') + ''}) + ' ' + _('Execute the downloaded SAML configuration script, and authenticate with the Azure Active Directory domain administrator account.') + this.img(_('saml_setup_script_windows_EN.png')), _('If the script has been executed successfully, single sign-on configuration is completed. Continue by clicking on Next.') ]); @@ -399,7 +399,7 @@ define([ this.authorizationurl = data.result.authorizationurl; // iframe("data:application/octet-stream;headers=Content-Disposition%3A%20attachment%3B%20filename%3Dmanifest.json;charset=utf-8;base64," + data.result.manifest); // sucks... // 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 - 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(); + domConstruct.create('a', {target: '_blank', href: '/univention/command/office365/manifest.json', 'download': 'manifest.json', style: 'display: none;', 'innerHTML': 'manifest.json'}, dojo.body()).click(); this._next('manifest-upload'); }, diff --git a/univention-office365/umc/python/office365/__init__.py b/univention-office365/umc/python/office365/__init__.py index 4bc4a1c..fd413ec 100644 --- a/univention-office365/umc/python/office365/__init__.py +++ b/univention-office365/umc/python/office365/__init__.py @@ -38,7 +38,7 @@ from univention.lib.i18n import Translation from univention.management.console.config import ucr from univention.management.console.base import Base, UMC_Error, UMC_OptionSanitizeError -from univention.management.console.modules.decorators import sanitize, simple_response, file_upload +from univention.management.console.modules.decorators import sanitize, simple_response, file_upload, allow_get from univention.management.console.modules.sanitizers import StringSanitizer, DictSanitizer, BooleanSanitizer, ValidationError, MultiValidationError from univention.management.console.log import MODULE @@ -85,7 +85,7 @@ def query(self): fqdn = '%s.%s' % (ucr.get('hostname'), ucr.get('domainname')) return { 'initialized': AzureAuth.is_initialized(), - 'login-url': '{origin}/univention-management-console/command/office365/authorize', + 'login-url': '{origin}/univention/command/office365/authorize', 'appid-url': 'https://%s/office365' % (fqdn,), 'base-url': 'https://%s/' % (fqdn,), } @@ -126,14 +126,17 @@ def upload(self, request): 'authorizationurl': authorizationurl, }, message=_('The manifest has been successfully uploaded.')) + @allow_get def manifest_json(self, request): with open(MANIFEST_FILE, 'rb') as fd: self.finished(request.id, fd.read(), mimetype='application/octet-stream') + @allow_get def saml_setup_script(self, request): with open(SAML_SETUP_SCRIPT_PATH, 'rb') as fd: self.finished(request.id, fd.read(), mimetype='application/octet-stream') + @allow_get @sanitize( id_token=StringSanitizer(), code=StringSanitizer(),