Authentifizierungsvorgang

App-Verzeichnis-SDK

Authentifizierungsvorgang (v2.0, aktuell)

Die meisten Apps sollen benutzerspezifische Inhalte und Interaktionsfunktionen bieten. Vor der Implementierung der Authentifizierung ist die App hinsichtlich des Hootsuite Benutzers, der sie verwendet, vollkommen offen. Auf dieser Seite werden die Techniken zur Authentifizierung eines Hootsuite Benutzers bei Ihrer App beschrieben.

Beachten Sie, dass diese Technik KEINE Methode zur Authentifizierung bei externen Dienstleistern darstellt. Sie sind dafür verantwortlich, eine Authentifizierung bei externen Dienstleistern über die jeweils unterstützten Authentifizierungsmethoden einzurichten.

Alle Apps müssen Single Sign-On implementieren. Dadurch wird einem Stream der App mittels einer Benutzeridentifikation mitgeteilt, welcher Hootsuite Benutzer sie anzeigt. Eine Manipulation dieser Benutzeridentifikation wird anhand eines Hash-Wertes (Sicherheitstoken) vermieden, durch den die Anforderung authentifiziert wird.

Sie können es einem Benutzer auch ermöglichen, sich bei einem anderen Benutzerkonto anzumelden, und es selbst über eine Single-Sign-On-Authentifizierung mit Ihrer App verbinden. Sie können anbieten, Konten aus Ihrer eigenen Benutzerbasis zu verbinden, oder Authentifizierung bei einem externen Dienstleister implementieren (anhand von unterstützten Authentifizierungsmethoden). Es empfiehlt sich im Allgemeinen, ein Drittanbieterkonto mit einem einzelnen Stream zu verknüpfen. Nennen wir dies eine Pro-Stream-Eigenschaft.

Diese Authentifizierung bei einem Drittanbieterkonto des Typs Pro-Stream hat den Vorteil, dass ein Benutzer gleichzeitig mehrere Konten jeweils im eigenen Stream verbinden kann, ohne Ihre App mehrmals installieren zu müssen.

Einer der URL-Parameter, der an Streams weitergegeben wird, ist die Platzierungsidentifikation (PID) des Streams. Diese ist für jeden von einem Benutzer hinzugefügten Stream eindeutig und bei der Implementierung der Pro-Stream -Authentifizierung eines Drittanbieterkontos nützlich.

Single Sign-On

Benutzerkennung, Zeitangabe und geheimer Schlüssel (salt), die zwischen Hootsuite und dem App-Entwickler ausgetauscht werden, werden über SHA-1 zusammen gehasht und an die App übermittelt. Das Überprüfungs-Hash kann vom App-Entwickler neu berechnet und mit dem eingefügten Hash verglichen werden. Stimmen sie überein, kann der Benutzer, auf den die Kennung verweist, als angemeldet angesehen werden.

Bei Verwendung dieser Methode kann ein Dritter ein Überprüfungs-Hash nur mit dem übermittelten geheimen Schlüssel manipulieren. Diese Methode ist jedoch anfällig für Replay-Angriffe, wenn ein Angreifer unverschlüsselten Netzwerkverkehr abfangen und den Abfragestring sehen kann. Dies lässt sich durch Verwendung von https und durch Prüfung der Aktualität der Zeitangabe (Abweichung zur Zeit auf Ihrem Server von höchstens 10 Sekunden) abwenden.

Standardmäßig handelt es sich bei der angegebenen Benutzeridentifikation um eine eindeutige Kennung, die mit dem Hootsuite Konto des Benutzers verknüpft ist. 

Beispiel-URL:

https://app.somewhere.com?i=1667985&ts=1310681657&token=231a3fb74139c74c37e9111ceb59ce02a349ef88

Die App würde diese Parameter als solche validieren:

$secret = 'sharedSecretABCD1234'; // defined in App configuration at hootsuite.com/developers $user_id = $_REQUEST['i']; $timestamp = $_REQUEST['ts']; $token = $_REQUEST['token']; if (sha1($user_id . $timestamp . $secret) == $token) { echo "Successful login!"; }

An App-Stream-iFrame übermittelte URL-Parameter:

lang=en timezone=7200 pid=2823 // placement ID, unique for each stream per user uid=1234567 // Hootsuite user ID i=1234567 // user identifier (optionally entered by user upon App installation) ts=1318362023 // timestamp token=123abc... // security token (sha1 hash)