私はAPIを持っています。それらの一部は、OAuthによる第三者アプリケーションからのアクセスに限定されています。Webアプリケーションから自分のAPIに安全にアクセスするにはどうすればいいですか?
私もWebアプリケーションを持っています。ユーザーはログインして個人情報を見ることができます。
APIはWebアプリケーションからも呼び出されます。私の質問は、セキュリティ対策を講じてAPIにアクセスする良い方法である。
1. Third party applications -> OAuth
2. My own web application -> ???
私のWebアプリケーションは認証にセッションIDを使用します。私は、HTTPヘッダーでセッションIDを転送するのは良い方法かもしれないと思いますが、私は自信がありません。 APIが代わりにOAuthの認証のためのセッションを使用してユーザーを識別し、この要求を受信した場合exmapleについては
...
$ curl -X PUT \
-H "X-Sample-Application-Id: "My own web application's ID" \
-H "X-Sample-Session-Token: yeoql2dvn7whpm4tbe61viscv" \
....
すべてのヘルプは理解されるであろう。
おかげで、
..私は同様の質問
Questions About Consuming Your Own API with OAuth
アップデート1
は、いくつかは、JWT(JSONウェブトークン)が良いと言いました。
https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/
http://blog.mitsuruog.info/2014/08/jwtjson-web-tokenwebapicredential.html
アップデート2
私はOAuthのの "リソース所有者のパスワードの資格"
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/709.html
それとも...「Clientを使用することができるかもしれクレイド「ntials grant」はもっとよく見えます。
私は遅刻して申し訳ありません。あなたの提案は素晴らしく、私はそんな素晴らしいアイデアを考えたことはありません。最終的に私は独自のモバイルアプリも実装する必要があるため、パスワードの付与タイプを選択しました。 (私たちは第三者のモバイルアプリ開発者向けにAPIを提供する予定です)また、OAuthさえ複雑ですが、いくつかのライブラリを見つけることができます。これは私にとっても良いことです。基本的な認証を使用してカスタム実装が必要かもしれませんが、生成されたキーと秘密を保存するためのテーブルを作成するようにはわかりません。 – zono
説明のおかげで、私はパスワードの付与についていくつかの質問があります。私は、要求を受け入れるためにclient_idとclient_secretを必要とする基本認証でoauth/tokenを保護する認証サーバーを構築しました。しかし、どのように私はclient_secretを保護することができますか?クライアントはAngular 2アプリです。基本認証でoauth/token URIを保護する必要がありますか? – Paolo