SharePoint
Tragen Sie hier den
Namen der neuen
Verbindung ein. Darunter können Sie eine kurze Beschreibung erfassen.
Tragen Sie im Bereich
Authentifizierung
den
User und das
Passwort
ein, unter dem Sie auf SharePoint zugreifen wollen. Der hier eingetragene Benutzer
wird lediglich für den Zugriff auf die Service-Metadaten im Portal Manager benötigt.
OAuth2/OpenID Connect (ab Intrexx 8 mit Online-Update 05)
Die Methode
OAuth2 unterstützt Dienste,
die eine OAuth2-Autorisierung des Benutzers benötigen. Sollte der Dienst
ein Auto-Approval des Users unterstützen, kann hier die Anmeldung eines
Benutzers für die Metadaten hinterlegt werden. Ist dies nicht möglich,
so muss das Metadaten-Dokument zunächst manuell als lokale Datei
gespeichert und im Intrexx-OData-Konfigurationsverzeichnis des
Portals hinterlegt werden (Dateiname:
<SERVICE_GUID>.edmx).
Die eigentliche Konfiguration der OAuth2-Autorisierung muss
derzeit noch direkt in der XML-Konfigurationsdatei des OData-Konsumenten
(Datei
<INTREXX_HOME>/org/portal/internal/cfg/odata/<SERVICEGUID>.xml)
vorgenommen werden. Relevant sind dabei die Properties:
<property name="authenticationType" value="OAUTH2"/> // Value muss OAUTH2 sein
<property name="oauth2.scope" value="<OAuth Scopes>"/>
<property name="oauth2.authenticationScheme" value="<Schema>"/>
<property name="oauth2.clientId" value="<Client ID>"/>
<property name="oauth2.grantType" value="<Grant Type>"/>
<property name="oauth2.clientAuthenticationScheme" value="<Client Schema>"/>
<property name="oauth2.userAuthorizationUri value="<Endpunkt für die Authentifizierung>"/>
<property name="oauth2.clientSecret"value="<Client Secret>"/>
<property name="oauth2.redirectUri" value="<Redirect URL>"/>
<property name="oauth2.accessTokenUri" value="<Endpunkt für die Anforderung eines Tokens>"/>
Im Folgenden werden Auszüge einiger Beispielkonfigurationen für oft genutzte OAuth2-Dienste
aufgeführt. Einige dieser Dienste können nicht als OData-Service verwendet werden.
Trotzdem kann die OAuth2-Authentifizierung für direkte HTTP-Zugrffe auf den Dienst
in Groovy-Skripts genutzt werden.
Spring Security OAuth2 Identity Provider
<?xml version="1.0" encoding="UTF-8"?>
<odata xmlns="urn:schemas-unitedplanet-de:lucy:server:odata:consumer:cfg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:schemas-unitedplanet-de:lucy:server:odata:consumer:cfg consumer.xsd">
<consumer description="" guid="30378A6DEDA601F69D525C7FCAFA7E12CEC114C8" name="SpringOAuth2">
<property name="authenticationType" value="OAUTH2"/>
<property name="additionalAuthenticationTypes" value=""/>
<property name="userName" value="user"/>
<property name="password" value="E54F94C0106981A41312FC14955B164C"/>
<property name="servicePrincipalName" value=""/>
<property name="isSharePointService" value="false"/>
<property name="isSapService" value="false"/>
<property name="sapUseDefaultClientId" value="false"/>
<property name="sapClientId" value=""/>
<property name="sapNetweaverGatewayHost" value=""/>
<property name="sapNetweaverGatewayPort" value=""/>
<property name="sapNetweaverGatewayUseSSL" value="false"/>
<property name="sapSolutionManagerRegistered" value="false"/>
<property name="authTypeSource" value=""/>
<property name="authLoginSource" value=""/>
<property name="authPasswordSource" value=""/>
<property name="authSapClientIdSource" value=""/>
<property name="oauth2.grantType" value="authorization_code"/>
<property name="oauth2.clientAuthenticationScheme" value="form"/>
<property name="oauth2.accessTokenUri" value="http://localhost:9999/uaa/oauth/token"/>
<property name="oauth2.userAuthorizationUri" value="http://localhost:9999/uaa/oauth/authorize"/>
<property name="oauth2.scope" value="openid"/>
<property name="oauth2.clientId" value="acme"/>
<property name="oauth2.clientSecret" value="acmesecret"/>
<property name="oauth2.redirectUri" value="http://localhost/devportal/oauth2"/>
<services>
<service guid="E2050082619BBD33EEDEA97BDCC9223B25244191" name="SpringOauth2" odataSpecVersion="V2" sapCsrfTokenRequired="false" serviceRootURI="http://localhost:8888/res/" useSSL="false"/>
</services>
<userMappings/>
</consumer>
</odata>
Microsoft SharePoint 365 (OAuth2 via AzureAD)
<?xml version="1.0" encoding="UTF-8"?>
<odata xmlns="urn:schemas-unitedplanet-de:lucy:server:odata:consumer:cfg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:schemas-unitedplanet-de:lucy:server:odata:consumer:cfg consumer.xsd">
<consumer description="" guid="A07EFC374A42F1A4C2C0BEDB60E5B99B2F89F660" name="SharePoint365">
<property name="authenticationType" value="OAUTH2"/>
<property name="oauth2.scope" value="Site.Read Web.Read List.Write"/>
<property name="oauth2.clientId" value="CLIENT_ID"/>
<property name="oauth2.grantType" value="authorization_code"/>
<property name="oauth2.clientAuthenticationScheme" value="form"/>
<property name="oauth2.authenticationScheme" value="form"/>
<property name="oauth2.userAuthorizationUri" value="https://company.sharepoint.com/_layouts/15/OAuthAuthorize.aspx"/>
<property name="oauth2.clientSecret" value="CLIENT_SECRET"/>
<property name="oauth2.redirectUri" value="https://localhost/devportal/oauth2"/>
<property name="oauth2.accessTokenUri" value="https://accounts.accesscontrol.windows.net/TENANT_ID/tokens/OAuth/2"/>
<property name="sharePoint.oauth2.resource" value=".../company.sharepoint.com@TENANT_ID"/>
<property name="sharePoint.oauth2.realm" value="TENANT_ID"/>
<services>
<service guid="0EA408C8493C29D52921D6E78389A2A5CD1E2539" name="SharePoint365" odataSpecVersion="V2" sapCsrfTokenRequired="false" serviceRootURI="https://company.sharepoint.com/_vti_bin/listdata.svc/" useEtag="true" useSSL="true"/>
</services>
<userMappings/>
</consumer>
</odata>
Kursiv gesetzte Werte müssen angepasst werden. Weitere Informationen finden Sie hier:
http://spshell.blogspot.de/2015/03/sharepoint-online-o365-oauth.html
OData
Authentifizierungsarten
Wählen Sie im Bereich
Authentifizierung die vom Service
benötigte
Methode aus:
Keine für
den anonymen Zugriff,
Einfach für HTTP Basic,
Intrexx für Intrexx-OData-Services,
Kerberos
für Dienste mit Integrierter Windows-Authentifizierung,
Kerberos (HTTP Basic) für Dienste mit Windows oder
Standard-Authentifizierung oder
X.509
für X.509 Client Zertifikate.
Einfache Authentifizierung
Wenn Sie die Methode
Einfach
auswählen, werden die Login-Informationen abgefragt.
Der hier einzutragende Benutzer wird lediglich für den Zugriff
auf die Service-Metadaten im Portal Manager benötigt.
Intrexx Authentifizierung
Die Methode
Intrexx bietet sich für
Dienste an, die über den
Intrexx-OData-Provider
bereitgestellt werden. Dabei werden Anmeldeinformationen verschlüsselt
übertragen. Für den Zugriff auf die Metadaten tragen Sie
auch hier einen Intrexx-Benutzer und dessen Passwort ein.
Windows Integrierte Authentifizierung
Mit den Optionen
Kerberos bzw.
Kerberos (HTTP Basic) steht in
Windows-Umgebungen die
Windows Integrierte Authentifizierung
für ein Single-Sign-On zur Verfügung. Mit der zweiten Option
HTTP Basic
können sich auch Clients authentifizieren, die das
Kerberos-Protokoll nicht unterstützen.
Bitte beachten Sie folgende Grundvoraussetzungen für eine erfolgreiche
Authentifizierung mit Kerberos:
- Das Intrexx Portal muss mit integrierter Authentifizierung
betrieben werden. Diese stellen Sie im Modul
Benutzer über das Menü Konfiguration her.
- Die Benutzer aus Ihrem Active-Directory müssen entsprechend
in Intrexx angelegt sein. Einen Import können Sie komfortabel
im Modul Benutzer über das Menü
Benutzer/ Benutzer und Gruppenimport herstellen.
Bitte stellen Sie sicher, dass mindestens ein Benutzer in der
Gruppe Administratoren
enthalten ist, um das System weiterhin administrieren zu können.
- Der Server, auf dem Intrexx installiert ist, benötigt
die Gruppenrichtlinie Delegierung.
- Alle Clients und Server müssen Mitglieder der gleichen Domäne sein.
Im Internet Explorer muss in den Sicherheitseinstellungen
der verwendeten Zone bei Benutzerauthentifizierung
Automatische Anmeldung mit aktuellem Benutzernamen
und Kennwort eingestellt sein.
Außerdem muss in den erweiterten Einstellungen die Einstellung
Integrierte Windows-Authentifizierung aktivieren
gesetzt sein.
Bei der Kerberos-Authentifizierung haben Sie ein echtes
Single-Sign-On für den Zugriff Ihrer Benutzer auf den OData-Service
und verwenden die integrierte Windows-Authentifizierung.
Kann ein Benutzer nicht authentifiziert werden, wird bei der zweiten
Option automatisch die Standard-Anmeldung aktiviert.
Für die erfolgreiche Authentifizierung ist die Angabe eines
sogenannten Service-Principal-Name (SPN) notwendig.
Der SPN enthält die Informationen über den Dienst, für den
ein Kerberos-Ticket erzeugt werden soll.
Dieses Ticket wird für den
Internet
Information Server des Intrexx-Portalservers benötigt.
Der SPN ist in der Regel wie folgt aufgebaut:
http/< Rechner-DNS-Name>@<KERBEROS_REALM>
Rechner-DNS-Name: Voll qualifizierter Host-Name
(z.B.
meinrechner.meinefirma.de)
KERBEROS_REALM: In der Regel die Domäne in Großbuchstaben
(z.B.
MEINEFIRMA.DE).
Der SPN mit den Beipieldaten würde demnach wie folgt lauten:
http/meinrechner.meinefirma.de@MEINEFIRMA.DE
Authentifizierung mit X.509 Zertifikaten
Wenn Sie die Methode
X.509 auswählen,
kann ein Zertifikatsspeicher im PKCS12-Format hochgeladen werden.
Jeder Anwender kann später im Browser seinen eigenen Zertifikatsspeicher
über ein Login-Formular hochladen.
Für die Authentifizierung mit X.509-Zertifikation wird vorausgesetzt,
dass das Root-Zertifikat der Authentifizierungsstelle, die für die Ausstellung der
Client-Zertifikate zuständig ist, zuvor in Intrexx importiert wurde.
Das Root-Zertifikat kann über das Menü
Portal / Portaleigenschaften / Zertifikate gespeichert werden.
Führen Sie anschließend einen Neustart des Portalservers durch.
OAuth2/OpenID Connect (ab Intrexx 8 mit Online-Update 05)
Die Methode
OAuth2 unterstützt Dienste,
die eine OAuth2-Autorisierung des Benutzers benötigen. Sollte der Dienst
ein Auto-Approval des Users unterstützen, kann hier die Anmeldung eines
Benutzers für die Metadaten hinterlegt werden. Ist dies nicht möglich,
so muss das Metadaten-Dokument zunächst manuell als lokale Datei
gespeichert und im Intrexx-OData-Konfigurationsverzeichnis des
Portals hinterlegt werden (Dateiname:
<SERVICE_GUID>.edmx).
Die eigentliche Konfiguration der OAuth2-Autorisierung muss
derzeit noch direkt in der XML-Konfigurationsdatei des OData-Konsumenten
(Datei
<INTREXX_HOME>/org/portal/internal/cfg/odata/<SERVICEGUID>.xml)
vorgenommen werden. Relevant sind dabei die Properties:
<property name="authenticationType" value="OAUTH2"/> // Value muss OAUTH2 sein
<property name="oauth2.scope" value="<OAuth Scopes>"/>
<property name="oauth2.authenticationScheme" value="<Schema>"/>
<property name="oauth2.clientId" value="<Client ID>"/>
<property name="oauth2.grantType" value="<Grant Type>"/>
<property name="oauth2.clientAuthenticationScheme" value="<Client Schema>"/>
<property name="oauth2.userAuthorizationUri value="<Endpunkt für die Authentifizierung>"/>
<property name="oauth2.clientSecret"value="<Client Secret>"/>
<property name="oauth2.redirectUri" value="<Redirect URL>"/>
<property name="oauth2.accessTokenUri" value="<Endpunkt für die Anforderung eines Tokens>"/>
Im Folgenden werden Auszüge einiger Beispielkonfigurationen für oft genutzte OAuth2-Dienste
aufgeführt. Einige dieser Dienste können nicht als OData-Service verwendet werden.
Trotzdem kann die OAuth2-Authentifizierung für direkte HTTP-Zugrffe auf den Dienst
in Groovy-Skripts genutzt werden.
Spring Security OAuth2 Identity Provider
<?xml version="1.0" encoding="UTF-8"?>
<odata xmlns="urn:schemas-unitedplanet-de:lucy:server:odata:consumer:cfg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:schemas-unitedplanet-de:lucy:server:odata:consumer:cfg consumer.xsd">
<consumer description="" guid="30378A6DEDA601F69D525C7FCAFA7E12CEC114C8" name="SpringOAuth2">
<property name="authenticationType" value="OAUTH2"/>
<property name="additionalAuthenticationTypes" value=""/>
<property name="userName" value="user"/>
<property name="password" value="E54F94C0106981A41312FC14955B164C"/>
<property name="servicePrincipalName" value=""/>
<property name="isSharePointService" value="false"/>
<property name="isSapService" value="false"/>
<property name="sapUseDefaultClientId" value="false"/>
<property name="sapClientId" value=""/>
<property name="sapNetweaverGatewayHost" value=""/>
<property name="sapNetweaverGatewayPort" value=""/>
<property name="sapNetweaverGatewayUseSSL" value="false"/>
<property name="sapSolutionManagerRegistered" value="false"/>
<property name="authTypeSource" value=""/>
<property name="authLoginSource" value=""/>
<property name="authPasswordSource" value=""/>
<property name="authSapClientIdSource" value=""/>
<property name="oauth2.grantType" value="authorization_code"/>
<property name="oauth2.clientAuthenticationScheme" value="form"/>
<property name="oauth2.accessTokenUri" value="http://localhost:9999/uaa/oauth/token"/>
<property name="oauth2.userAuthorizationUri" value="http://localhost:9999/uaa/oauth/authorize"/>
<property name="oauth2.scope" value="openid"/>
<property name="oauth2.clientId" value="acme"/>
<property name="oauth2.clientSecret" value="acmesecret"/>
<property name="oauth2.redirectUri" value="http://localhost/devportal/oauth2"/>
<services>
<service guid="E2050082619BBD33EEDEA97BDCC9223B25244191" name="SpringOauth2" odataSpecVersion="V2" sapCsrfTokenRequired="false" serviceRootURI="http://localhost:8888/res/" useSSL="false"/>
</services>
<userMappings/>
</consumer>
</odata>
Microsoft SharePoint 365 (OAuth2 via AzureAD)
<?xml version="1.0" encoding="UTF-8"?>
<odata xmlns="urn:schemas-unitedplanet-de:lucy:server:odata:consumer:cfg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:schemas-unitedplanet-de:lucy:server:odata:consumer:cfg consumer.xsd">
<consumer description="" guid="A07EFC374A42F1A4C2C0BEDB60E5B99B2F89F660" name="SharePoint365">
<property name="authenticationType" value="OAUTH2"/>
<property name="oauth2.scope" value="Site.Read Web.Read List.Write"/>
<property name="oauth2.clientId" value="CLIENT_ID"/>
<property name="oauth2.grantType" value="authorization_code"/>
<property name="oauth2.clientAuthenticationScheme" value="form"/>
<property name="oauth2.authenticationScheme" value="form"/>
<property name="oauth2.userAuthorizationUri" value="https://company.sharepoint.com/_layouts/15/OAuthAuthorize.aspx"/>
<property name="oauth2.clientSecret" value="CLIENT_SECRET"/>
<property name="oauth2.redirectUri" value="https://localhost/devportal/oauth2"/>
<property name="oauth2.accessTokenUri" value="https://accounts.accesscontrol.windows.net/TENANT_ID/tokens/OAuth/2"/>
<property name="sharePoint.oauth2.resource" value=".../company.sharepoint.com@TENANT_ID"/>
<property name="sharePoint.oauth2.realm" value="TENANT_ID"/>
<services>
<service guid="0EA408C8493C29D52921D6E78389A2A5CD1E2539" name="SharePoint365" odataSpecVersion="V2" sapCsrfTokenRequired="false" serviceRootURI="https://company.sharepoint.com/_vti_bin/listdata.svc/" useEtag="true" useSSL="true"/>
</services>
<userMappings/>
</consumer>
</odata>
Kursiv gesetzte Werte müssen angepasst werden. Weitere Informationen finden Sie hier:
http://spshell.blogspot.de/2015/03/sharepoint-online-o365-oauth.html
Microsoft Outlook Online (nur http, kein OData)
<property name="authenticationType" value="OAUTH2"/> // Value muss OAUTH2 sein
<property name="oauth2.scope" value="https://outlook.office.com/mail.read"/>
<property name="oauth2.authenticationScheme" value="form"/>
<property name="oauth2.clientId" value="<Client ID>"/>
<property name="oauth2.grantType" value="authorization_code"/>
<property name="oauth2.clientAuthenticationScheme" value="form"/>
<property name="oauth2.userAuthorizationUri value="https://login.microsoftonline.com/common/oauth2/v2.0/authorize"/>
<property name="oauth2.clientSecret"value="<Client Secret>"/>
<property name="oauth2.redirectUri" value="http://localhost/devportal/oauth2"/>
<property name="oauth2.accessTokenUri" value= "https://login.microsoftonline.com/common/oauth2/v2.0/token"/>
<services>
<service guid="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" name="Outlook" odataSpecVersion="V2" sapCsrfTokenRequired="false" serviceRootURI="https://outlook.office.com/api/v2.0/me/messages" useSSL="true"/>
</services>
GoogleMail (nur http, kein OData)
<property name="authenticationType" value="OAUTH2"/> // Value muss OAUTH2 sein
<property name="oauth2.scope" value="https://mail.google.com/"/>
<property name="oauth2.authenticationScheme" value="header"/>
<property name="oauth2.clientId" value="<Client ID>"/>
<property name="oauth2.grantType" value="authorization_code"/>
<property name="oauth2.clientAuthenticationScheme" value="header"/>
<property name="oauth2.userAuthorizationUri value="https://accounts.google.com/o/oauth2/auth"/>
<property name="oauth2.clientSecret"value="<Client Secret>"/>
<property name="oauth2.redirectUri" value="http://localhost/devportal/oauth2"/>
<property name="oauth2.accessTokenUri" value= "https://accounts.google.com/o/oauth2/token"/>
<services>
<service guid="XXXXXXXXXXXXXXXXXXXXXXXXXXXXX" name="GMail Inbox" odataSpecVersion="V2" sapCsrfTokenRequired="false" serviceRootURI="https://www.googleapis.com/gmail/v1/users/firstname.lastname@googlemail.com/messages/" useSSL="true"/>
</services>