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:

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>