2017-01-14 4 views
2

OAuth2の認証、認証、およびユーザーのリンクに苦しんでいます。 これまでに行ったこと:脆弱性OAuth2、ユーザーとクライアントの間のリンク/ AuthorizationCode

私はクライアントを作成しましたが、それは秘密です。 すべてのリダイレクトなどが機能しています。許可タイプのパスワードは、独自のネイティブアプリ(Android、iOSなど)に対応します

ただし、アクセストークンの場合、user_idは承認タイプが承認コードの場合はNULLです。 ユーザーにトークンまたは認証コードにアクセスするにはどうすればよいですか? ログイン画面を提供するためのモジュールがありますか?私は "許可"または "許可しない"アプリケーションを求められますが、ユーザー名とパスワードを求められることはありません。

更新:
質問は、例えば、アクセスのOAuth2サードパーティのページを提供するために、関連していますIFTTT。彼らは/oauth/authorizeページを開いてどこか私はログインのガイドのユーザーですか?関連ユーザーを特定するこれのための既存のモジュールはありますか?

サードパーティのサイト。 IFTTTは、セキュリティ上の理由からパスワード許可タイプを使用しません。ワークフローは他のページと比較されます:ユーザーは認証されていますか? Yes:Accept/Declineボタンを表示します。いいえ:ユーザーはログインする必要があります。その後、/ oauth/authorize pageにリダイレクトされます。だから、ユーザがログインしているかどうかを確認する一般的な方法がありますか?そうでない場合は、ログインマスクにリダイレクトしますか?

答えて

1

OAuth2を使用してユーザ名とパスワードで認証するには、grant_type=passwordを使用する必要があります。

匿名でログイン画面があるかどうかわかりません。しかし、私はそれがそれを持っているべきだとは思わない。なぜなら、ApigilityはOAuth2を通して、より具体的にはOAuth2 Server Library for PHPによって1つ以上のエンドポイントによってこれを可能にしているからである。

  1. を行うにはどのように

    は、クライアントに許可タイプを追加します。クライアントのテーブルの上に

    • oauth_clients.grant_types列)は"password"を設定します。
  2. 新しい認証アダプタtype = oauth2を作成します。
  3. 下記のauthetication URLへの投稿を作成してください。 apigilityが実行されていると/oauthが設定認証アダプタのURLですlocalhost:8080がある

    • url=localhost:8080/oauth、。
    • ペイロード:

      { 
          "username": "USERNAME", 
          "password": "PASSWORD", 
          "grant_type": "password", 
          "client_id": "CLIENT_ID" 
      } 
      
  4. ログインが成功し、それがアクセストークンを返します。
+0

これらのステップのThx。これはすでに動作しますが、作成しているアプリやページでのみ動作します。 など。 IFTTTへのアクセスを提供したい場合は、grant_type passwordを使用することができません。ドキュメンテーションに基づいて:[link](https:// apigility。org/documentation/auth/authentication-oauth2)ユーザとしてログインせずに常に "許可"/"禁止"を求めるプロンプトが表示されます –

+1

@AlexanderLampret 'grant_type'パスワードを使用できないのはなぜですか?あなたはあなたの質問のその特定の側面について詳しく説明できますか? – Wilt

+0

質問を更新しました。私はサービスを提供しています。私のネイティブのAndroidおよびiOSアプリでは、認可タイプのパスワードを使用しています。ただし、第三者のサイト(例: IFTTTはセキュリティ上の理由からこのタイプを使用しません。また、他のページと比較すると、ワークフローは次のようになります。ユーザーは認証されていますか? Yes:Accept/Declineボタンを表示します。いいえ:ユーザーはログインする必要があります。その後、/ oauth/authorize pageにリダイレクトされます。 ユーザがログインしているかどうかを確認する一般的な方法がありますか?そうでない場合はログインマスクにリダイレクトしますか? –