Jestem trochę zagubiony z nadmiarem informacji i potrzebuję wskazówek na temat najlepszego sposobu, w jaki mogę wesprzeć zapewnianie dostępu API tylko zaufanym klientom.Scentralizowany dostawca API - oAuth czy nie?
Aktualny środowiska:
Mamy scentralizowany serwer, który obsługuje użytkownika uwierzytelniania/autoryzacji poprzez Apache Shiro.
Posiadamy wewnętrzne interfejsy API, które wewnętrznie komunikują się ze scentralizowanym serwerem w celu uwierzytelniania i zarządzania tokenami. (W ten sposób umożliwiając SSO).
Komunikacja między naszymi aplikacjami klienckimi i interfejsami API jest zabezpieczona przez SSL.
Użycie uwierzytelniania za pomocą tokena.
docelowa:
Naszym celem jest umożliwienie aplikacji 3rd Party i API do komunikacji z naszym scentralizowanego serwera uwierzytelniania. Ale naszą główną troską jest wyłudzanie informacji, ponieważ chcemy tylko, aby "ważne" strony komunikowały się z nami, a najlepiej nie zezwalają na ujawnianie informacji uwierzytelniających stronie trzeciej.
Pytania:
1- Jaki jest najlepszy sposób, aby wdrożyć taką architekturę? Czy powinniśmy postępować z OAuth? Jeśli tak, czy istnieje dobry sposób na integrację z Shiro?
2- Czy OAuth wykonałby swoją pracę również na aplikacjach mobilnych? (np. Ogranicz dostęp do REST API, chyba że aplikacja jest zaufana)
3- Czy istnieje biblioteka dostawców OAuth, której mogę używać w Javie, czy też OAuth to po prostu "standard", który muszę sam wdrożyć? (Takie jak na przykład implementowanie API RESTful)
4- Czy SSO jest łatwo obsługiwane przez OAuth?
Przepraszamy za nieokreślone pytania. Potrzebuję tylko ogólnych wskazówek i porad.
2) Moje pytanie brzmi - dlaczego OAuth nie powinien działać na urządzeniach mobilnych? :) Nie widzę powodu, dlaczego nie powinien tam pracować. – Dworza
Czy Shibboleth jest opcją? Wygląda na to, że integruje się również z aplikacjami mobilnymi i ma nieco bardziej spójny interfejs API niż OAuth. [zobacz to pytanie SO na ten temat] (http://stackoverflow.com/questions/1935011/integrating-iphone-application-with-shibboleth) – David
Czy jest to wymagane, aby Twoi użytkownicy mogli przyznać/odmówić dostępu do ich danych przez te aplikacje innych firm? – Perception