openID Connectハイブリッドフローを使用してIdentity Server 3で認証するMVC Webアプリケーションを構築しています。MVC WebアプリケーションにはjQueryスクリプトが含まれていて、ApenControllerから非同期JSONデータを取得します。そのApiControllerは、同じMVC Webアプリケーションの一部です。Identity Server 3でWeb APIを保護する方法
誰もがAPIからデータにアクセスできないようにするため、APIも保護したいと思います。私はApiControllerに[authorize]属性を追加しました。私は、次のエラーメッセージが表示されますはJQueryのAjaxのリクエストにAPIを要求する場合:
XMLHttpRequestが https://localhost:44371/identity/connect/authorize?....etcをロードすることはできません。 プリフライト要求への応答がアクセス制御チェックを通過しません。いいえ 要求された リソースに 'Access-Control-Allow-Origin'ヘッダーが存在します。したがって、オリジン 'http://localhost:13079'は許可されません。 応答は、HTTPステータスコード405
を持っていた。しかし、私はブラウザ内で直接APIメソッドに要求を行うとき、私はアイデンティティサーバーのログインページへの正しいリダイレクトされます。..
だから、何ですまさにここの問題?私は何かを読んで/ authorizeエンドポイントは 'バックチャネル'経由で許可されていないが、私は 'フロントチャネル'と 'バックチャネル'の違いを理解していません。間違ったOAuthの流れが混在する可能性はありますか?ハイブリッドの流れは正しいかもしれませんか?
APIはしばしば別個のアプリケーションであることがわかりましたが、たとえばベアラトークンを必要とする別個のAPIアプリケーションを構築するには、常に必要な/ベストプラクティスですか?
これについて正しい方向を教えてください。