2017-04-13 8 views
0

私は角2のアプリケーション、OWINパイプライン(.NET 4.6)を持つWeb API、およびADFS 3.0を持っています。Web API経由でADFSに対してAngular 2を認証

:角度の2アプリはADFSで認証および認可する必要が使用しており、彼は既にドメインにログインしていた場合、彼は自動的にアプリケーションにログインする必要がありますすべてのユーザーような

サムシング(シングルサインオン) enter image description here

これを達成する方法については、多数のリンクとコードを読んでいますが、私はそれらの断片をまとめないといけません。 私が理解する限り、ADFS 3.0は、OAuth 2認証コードフローのみをサポートしています。これは、サポートされていないか、Web上のJSアプリケーションでそれぞれアドバイスされています。 それはどちらかというとはっきりしていませんが、実際には使用できない/使用しないでください。

私は、私のWeb APIが(おそらくIdentityServer 3か何か "自家製"で​​ある)私のWebサーバ上に認証サーバのsomekindを実装する必要があることを理解しました。

はこのユーザーがすでにログインしている場合、私は

  • のWeb APIをチェック

    1. ユーザーのリクエストトークン、次のワークフローにつながる外部のGoogleのようなログイン、またはFacebookなどADFSを使用する必要があることを考えるように私を導きますドメインに入る
    2. ログインしていますか?
      1. ADFSへのフォワードリクエストと確認。
      2. ADFSはログインしていません
    3. をWEBAPIするOAuthのトーク​​ンを返しますか?
      1. ユーザーにログインマスクを表示
      2. ADFSへのフォワードリクエストと検証。
      3. ADFSは

      ユーザーに

  • ウェブAPIリターンのOAuthトークンWebAPIの
  • にOAuthのトーク​​ンを返すも、正しいこれですか、私はcompletlyオフのですか?

    とにかく私は一緒に一緒に作品を置くことができません。 Web APIにJWTトークンを作成する(ただし、ADFSと通信しない)、またはWS-Federation経由でADFSと通信するコードが多数見つかりました。 さらに、ADFSのOAuth 2の実装は、もう1つ複雑なレイヤーを追加するような特殊なようです。

    ので、私の質問は次のようになります。ADFSに対して認証中

    はどのようにして、ユーザーにOAuthのトーク​​ンを提供することができますか?

    あなたは、私は喜んでそれを

    答えて

    0

    を提供し、追加情報が必要な場合はあなたがAngular.JSを使用する単一ページのアプリをサポートADFS 2016が必要になります。フローとサンプルコードについては、https://technet.microsoft.com/en-us/windows-server-docs/identity/ad-fs/development/single-page-application-with-ad-fsを参照してください。

    ADFS 2012R2は、認証コードフローのみをサポートしています。これは、パブリッククライアントであるWeb APIと通信するためのネイティブアプリ向けのものです。

    おかげ

    //サム(ツイッター:@MrADFS

    +0

    私はIdentityServer 3または類似を使用し、 "ブリッジ" のすべてより以上にWS-Federationの変換ならば、それは "何とか" 可能であると思いましたOAuth 2トークン(私のWeb API内)? – Arikael

    関連する問題