Ich versuche, eine iOS-App zu erstellen, die eine Verbindung zu Desire2Learn herstellt. Ich habe Benutzername/Passwort für die App und mein Kunde möchte nicht, dass die Anmeldung erneut angezeigt wird, um auf die Desire2Learn-Website zuzugreifen. Grundsätzlich suche ich nach SSO, sodass ich, wenn der Benutzer in meine App eintritt, mithilfe der D2L-API Authentifizierungs-, Schlüssel- und Signaturparameter erhalten sollte, um auf D2L-Dienste zuzugreifen. Bitte stellen Sie einen Beispielcode bereit.
Antworten
Zu viele Anzeigen?Das Valence API Auth-System verwendet einen webbasierten Authentifizierungsprozess, der eine Benutzer-ID und ein Benutzer-Schlüssel zurückgibt. Auf den Dokumentationsseiten finden Sie ID-Schlüssel-Authentifizierungsdetails. Es gibt eigentlich keine Möglichkeit, den Desire2Learn-Benutzernamen und das Passwort direkt für einen API-Aufruf zu verwenden (ähnlich wie bei der Facebook-Verbindung auf diese Weise). Die zurückgegebenen ID und Schlüssel sind jedoch langfristig gültig (im Wesentlichen bis der Benutzer ein Passwort zurücksetzt), sodass Sie das Problem der Benutzerfreundlichkeit vermeiden können, sich wiederholt anzumelden.
Der beste Weg, dies zu erreichen, ist eine App, die den Browser oder eine Browsersteuerung lädt. Der Desire2Learn Assignment Grader macht so etwas auch.
Es gibt kein formales "Erste Schritte"-Beispiel für iOS wie für andere Plattformen, aber es gibt eine einfache iOS-Bibliothek, die bei der Vorbereitung der Authentifizierungsaufrufe und der Erstellung der richtigen Signaturen für API-Aufrufe hilft.
Wir sind auf dasselbe Problem gestoßen, daher haben wir eine PHP-Anwendung erstellt, die im Grunde den Authentifizierungsprozess mit cURL durchführt, indem sie den Benutzernamen und das Passwort bereitstellt. Schlüssel werden in einer Datenbank gespeichert, sodass wenn ein Benutzer versucht, sich anzumelden, werden die Schlüssel zurück an die iOS-App gesendet, wenn die Benutzername/Passwort korrekt sind. Sollten die Schlüssel abgelaufen sein, wird der Authentifizierungsprozess durchgeführt und neue Schlüssel an die iOS-App gesendet – aus Sicht der iOS-App ist also nur der Benutzername/Passwort erforderlich, und das war's.