私たちのコマンドラインアプリケーション(Djangoアプリケーション)にはOpenIDを有効にする必要があります:ユーザーがAPIにアクセスしようとするたびに、ユーザーがOpenIDを使用して認証されていることを確認する必要がありますGoogle)。私はOpenIDウェブサイトにアクセスするためのシェルスクリプトを書こうとしていて、ユーザーのマシンにクッキーを保存しています。そして、彼が2番目のアプリケーションにアクセスしようとするたびに、私は自分のマシンに保存しているクッキーに基づいてアクセス権を与えられます。CURLをウェブサイトに認証する
hereというアプローチを使用しようとしていて、2番目のURLにアクセスしようとすると、「あなたのブラウザは現在Cookieをブロックするように設定されています。
私のウェブサイトは単一のドメインにはなく、OpenIDを使って認証します。
- 私は、最初のWebサイトにログインし、サイトがOpenIDの ウェブサイト(アズールAD)
- に私をリダイレクト私は正常にユーザー名とパスワード でカール使用してリダイレクトされたURLにアクセスし、クッキーを保存。
- の行を使用して2番目のWebサイトにログインしようとすると、このエラーが表示されます。 (私はそれらを読むと第二のウェブサイトのページを開くことができる必要があり、クッキーを保存しているので)
curl --cookie ./somefile https://secondwebsite.com/b
ここでは、要約すると、私の完全なスクリプト
#Setting redirect url in IP variable
set IP=`curl -w "%{url_effective}\n" -I -L -s -S http://mysite1.com -o /dev/null`
echo "Trying to Authenticate.."
curl -L -s -S -I -k -v -i --user "[email protected]" -D ./temp/cookie $IP
echo "Authentication successful"
#I need to check if the cookie is set or not, If it is set Authentication is successful
echo "Trying to access the second url"
#The below line is failing, When I wrote the whole content to html file, I see the error mentioned above (Your browser is currently set to block cookies. You need to allow cookies to use this service)
curl --cookie ./temp/cookie https://secondwebsite.com/
で、私は2つの質問でつまずく
- neを使わないで第2のサイトにユーザーを認証する 再度
- 時々、認証URLはユーザからのパスワードを要求します。 モバイル(2因子認証)に送信されます。それが発生した場合、このケースを処理する上でどのような指針がありますか?
仕様通り、ブラウザの操作が必要でしたが、完全なコマンドラインベースの認証を求めています。クライアントはリソース所有者のユーザーエージェント(通常はWebブラウザ)と対話できなければなりません(https://tools.ietf.org/html/rfc6749#section-4.1) –