2

OAuth2 を Django と連携させて、Django 資格情報でログインしなくても API にアクセスできるようにしようとしています。API には django-tastypie を、OAuth2 認証には django-oauth2-provider を使用しています。この投稿をガイドラインとして使用して、すべてを結び付けます。

基本的な OAuth ワークフロー (上記のブログ投稿の「プロバイダーのテスト」セクションとまったく同じ) が機能するようになりましたが、明らかに独自のモデルとユーザー名/パスワードを使用しています。Androidでこれを機能させる必要がありますが、client_secretで問題が発生しました。

常に安全であるとは限らないため、android デバイスに client_secret を保存したり送信したりしないことをお勧めします。この投稿は、モバイル デバイスの場合、client_secret を使用せずに OAuth 認証を可能にする OAuth フローがあることを示唆しているのを見つけました (「モバイル アプリ」という便利なタイトルのセクションの下)。「/oauth2/authorize?response_type=code&client_id=XXXXXXXXXXXXXXXX」で終わる URL を使用して付与コードを取得できますが、返されたコードで get the authorization_token を使用しようとすると、client_id と client_secret を提供する必要があります。これは、django-oauth2-provider が常に client_id と client_secret を要求しているためと思われます。

私の質問は、client_secret を Android デバイスに保存したり、client_secret を POST データとして送信したりせずに、どのように authentication_token を取得できるかということです。this questionを見つけました。これは似ているようで、grant_code を取り戻す方法を理解するのに役立ちましたが、client_secret なしで authorization_token を取得することについては何も見つかりません。

それが不可能な場合、client_id/client_secret をデバイスに自動的に取得するにはどうすればよいですか? また、それを保護するための提案は何ですか?

4

0 に答える 0