Pracuję nad interfejsem API OEST dla OAUTH 2 dla strony internetowej, nad którą pracuję. Mamy oficjalną natywną aplikację mobilną, która korzysta z tego interfejsu API i planuje udostępnienie interfejsu API innym programistom. Nasza natywna aplikacja mobilna będzie mieć więcej uprawnień niż aplikacje innych firm. Robię to, ustawiając uprawnienia na podstawie identyfikatora klienta lub identyfikatora aplikacji. Używam aplikacji password
grant type
dla oficjalnej aplikacji i implicit
grant type
dla aplikacji innych firm.W jaki sposób uwierzytelnić zaufaną aplikację przy użyciu OAUTH 2
Ale problemem jest to, że jak nie używasz client_secret
W obu przypadkach 3rd party może być w stanie uzyskać podwyższone uprawnienia przez jakiś kradzież naszej oficjalnej client_id
i używając go, aby uzyskać dostęp do podwyższonymi uprawnieniami w API, które jest wyłącznie do oficjalnej aplikacji.
Czy istnieje jednak sposób, aby temu zapobiec? Jak robi to oficjalna aplikacja na Facebooku lub Twitterze?
Nie zrozumiałem. Mówisz, że powinienem używać tokenów OAuth z (client_id, Oficjalna aplikacja, dzień, ...) itd. W API, gdy klient zażąda tokena. Co to za różnica? A co masz na myśli przez "Oficjalna aplikacja"? – ajaybc
"Oficjalna aplikacja" i "trzecia strona" to ciąg lub kod, za pomocą którego można zidentyfikować źródło żądania; – Abdessamad