現在laravel5.5を利用してwebアプリケーションを作成しております。
そこで、api認証の実装が必要な状態となりまして、
laravelPassportについて3日間ほどwebの記事を漁っていたのですが、
いまいちわかりませんでした...。
もっとも基本的な実装は問題なく出来たのですが、今後使っていく事を考えると、
仕様について理解していないと厳しいかと思いまして。
上記にある基本的な実装というのは、
クライアントを作成->そのクライアントにアクセスしてアクセストークンを取得->取得したトークンを利用して認証のかかったapiにアクセス
の流れです。
まずそもそものoauth認証の流れについて確認したいのですが、
AとBというアプリがあって、AがBのAPIを使いたい場合を想定します。
1.Bは新たにA用にクライアントを作成し、そのクライアントにアクセスするための情報をAに渡す。
2.Aはその情報を使ってクライアントにアクセスしBのapiへのアクセストークンを要求する。
3.そこで取得したアクセストークンを利用して実際にBのapiにアクセスする。
という認識なのですが...
この流れはあってるんでしょうか??
passportの話に戻ります。
具体的にはここに権限を追加していきたいのです。
恐らくscopeと言われるものを使っていく事になるのかと思うのですが、
このscopeがいまいちしっくりきません。
クライアントにアクセストークンを要求する際にスコープを指定して、
「この権限を持ったアクセストークンが欲しい」
とするのはわかるのですが、これってスコープの意味まるで無くないですか?
結局[scope="*"]と指定されたらそれだけで全権限を貰えちゃうってことですよね?
この仕様だと、クライアントへのアクセス情報さえ持っていればすべてのapiにアクセス可能という事になっていしまうかと思うのですが...
本来このスコープ(アクセス権限)というのはクライアントに定義されているべき物ではないですか?
「そのクライアントにアクセストークンを要求したらこの権限を持ったアクセストークンが返ってくる」
という仕組みであれば理解できるのですが...
実際はどのような仕様になっているのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。