Mam API. Niektóre z nich są ograniczone do dostępu z aplikacji firm trzecich przez OAuth.Jak bezpiecznie uzyskać dostęp do mojego API z mojej aplikacji internetowej?
Mam również aplikację internetową. Użytkownicy mogą się zalogować i zobaczyć swoje prywatne informacje.
Interfejs API wywoływany jest również z aplikacji internetowej. Moje pytanie brzmi: jaki jest dobry sposób na uzyskanie dostępu do API za pomocą środków bezpieczeństwa.
1. Third party applications -> OAuth
2. My own web application -> ???
Moja aplikacja internetowa używa identyfikatora sesji do uwierzytelnienia. Domyślam się, że przeniesienie identyfikatora sesji z nagłówkiem HTTP może być dobrym pomysłem, ale nie mam pewności.
Dla exmaple ...
$ curl -X PUT \
-H "X-Sample-Application-Id: "My own web application's ID" \
-H "X-Sample-Session-Token: yeoql2dvn7whpm4tbe61viscv" \
Jeśli API otrzymania tego żądania, należy użyć sesji dla uwierzytelniania zamiast OAuth i identyfikacji użytkownika ....
Każda pomoc będzie mile widziane.
Dzięki
.. Znalazłem podobne pytania
Questions About Consuming Your Own API with OAuth
Update1
Niektórzy mówią JWT (Json sieci Token) jest dobry.
https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/
http://blog.mitsuruog.info/2014/08/jwtjson-web-tokenwebapicredential.html
Update2
może będę w stanie wykorzystać "resource Hasło właściciela Poświadczenia" OAuth za
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/709.html
Albo ... „Client Crede Ntials grant "wygląda o wiele lepiej.
Bardzo mi przykro z powodu mojej spóźnionej odpowiedzi. Twoja sugestia jest świetna i nigdy nie myślałam o tak wspaniałym pomyśle. Ostatecznie wybrałem rodzaj przyznania hasła, ponieważ muszę też wdrożyć własną aplikację mobilną. (udostępnimy nasze interfejsy API programistom aplikacji mobilnych 3-osobowych). Nawet OAuth jest skomplikowany, ale mogę znaleźć kilka bibliotek. Jest to również dobre dla mnie. Korzystanie z podstawowego uwierzytelniania może wymagać niestandardowej implementacji, nie wiem, ale jak utworzyć tabelę do zapisywania wygenerowanego klucza i tajnego klucza. – zono
Dzięki za wyjaśnienie, mam kilka pytań dotyczących przyznania hasła. Zbudowałem serwer autoryzacji, który zabezpieczył oauth/token z podstawowym uwierzytelnieniem, które wymaga identyfikatora client_id i client_secret w celu akceptowania żądań. Ale w jaki sposób mogę zabezpieczyć client_secret? Klient jest aplikacją Angular 2. Konieczne jest zabezpieczenie oauth/token uri za pomocą Basic Authentication? – Paolo