2017-07-03 6 views
0

Ich habe eine Single Page Appplication (SPA) erstellt mit React und einer Web-API, die beide in Azure App Service gehostet werden. Die Authentifizierung wird von Azure AD bereitgestellt.Wie erhalte ich Zugangstoken mit Azure Easy Auth?

Ich habe die Active Directory-Authentifizierungsbibliothek (ADAL) für JavaScript verwendet. Während alle Beispiele über Angular zu sein scheinen, habe ich es geschafft, die reine JavaScript-Version der Bibliothek mit der React-Anwendung arbeiten zu lassen. Ich habe den impliziten OAuth2-Gewährungsfluss verwendet, um authentifizierten Zugriff auf die Web-API über das SPA bereitzustellen.

Alles funktioniert gut mit ADAL, aber dieser Ansatz erfordert einen Anmelde- und Abmeldemechanismus (z. B. über eine Schaltfläche). Der Autorisierungscode wird der URL als Fragment hinzugefügt und ADAL erledigt den Rest bequem. Ich möchte jedoch, dass die gesamte Anwendung sicher/authentifiziert ist, und deshalb habe ich "Easy Auth" - Authentifizierung über den App Service eingerichtet.

Wenn Sie mit "Easy Auth" arbeiten, melden Sie sich bei der Anwendung an, aber es wird kein Fragment in der URL zurückgegeben und ADAL kann daher nicht zum Erwerb eines Zugriffstokens für die API verwendet werden.

Was ist der beste Weg, um Zugangstoken zu erhalten, wie sie für die implizite Erteilung benötigt werden, wenn "Easy Auth" verwendet wird? Gibt es eine Möglichkeit, ADAL in einen "Easy Auth" -Fluss zu integrieren?

Vielen Dank.

Antwort

0

Wenn Sie die Einzelseitenanwendung und die Web-API in demselben Azure-App-Service bereitstellen und den App-Service mit Easy Auth schützen, ist es nicht erforderlich, in der Einzelseitenanwendung adal zu verwenden, um die Web-API jetzt aufzurufen.

In diesem Szenario können Sie den App-Service über den Server-Flow anmelden und dann die Web-API direkt aufrufen, da Easy Auth die Anfrage über die Cookies authentifiziert. Und wenn die Web-API auch andere Clients anwählt, die Sie mit dem Token aufrufen möchten, müssen Sie das id_token/access_token mit der Azure AD-App abrufen, mit der Sie den App-Service schützen und das Authentifizierungstoken mithilfe von id_token/access_token von Azure AD austauschen. Dieser Fortschritt wird Client-Flow genannt.

Weitere Informationen über diese beiden Flüsse finden Sie unter here.

Verwandte Themen