0

そのため、以前 Azure モバイル サービスとしてホストされていたアプリケーションを Azure モバイル アプリとして再デプロイするプロジェクトに取り組んでいます。このアプリケーションには、フロントエンド (Azure で Web アプリとしてホストされる) と、フロントエンドの JavaScript から直接呼び出されるバックエンド API (これはモバイル アプリ) があります。Microsoft アカウント認証の作業を開始するまで、アップグレードは順調に進んでいました。の指示に従ってください...

  1. https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-net-upgrading-from-mobile-services

  2. https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-how-to-configure-microsoft-authentication

...物事はほとんど順調に進んでいます。アプリケーションは Microsoft アカウント デベロッパー センターに登録されています。「https://{{my_backend_mobile_app_name}}.azurewebsites.net/.auth/login/microsoftaccount/callback」形式に従ってリダイレクト URI を指定し、Microsoft 認証を構成しました。 /Microsoft アカウント デベロッパー センターの ClientId/Secret を使用して、Azure のモバイル アプリの適切なブレードで承認します。テストしてみると、たいていうまくいきます。アプリケーションのフロントエンドに移動して、[サインイン] ボタンをクリックすると、新しいウィンドウが開き、Microsoft の Login.Live サイトが表示され、そこで Microsoft アカウントでログインするよう求められます。これが成功すると、Microsoft アカウント デベロッパー センターで指定されたリダイレクト URL にリダイレクトされ、クエリ文字列にコードと状態の値が追加されます。

ただし、リダイレクトされたときに表示されるページには、「このディレクトリまたはページを表示する権限がありません」というものがあります。URL をコピーして新しいタブを開き、貼り付けて Enter キーを押すと、[サインインに成功しました] ページが表示されます。しかし、どちらの方法でも、アプリケーションのフロントエンドに戻り、ログインしてサイトに進みます。サインインのために開かれた新しいウィンドウですべてがまだ行われているためです。そのウィンドウを閉じると、認証プロセスはそれを確認しますログインの「キャンセル」として、再度ログインする必要があります(上記のプロセスを繰り返すだけです)。ウィンドウを開いたままフロントエンド サイトのウィンドウに戻ると、ログイン プロセスからの応答を待っています。

したがって、これは私の主な質問につながります: Microsoft アカウント認証プロセスが実際にログイン応答をログイン ウィンドウではなくフロントエンド サイトに返すようにするにはどうすればよいですか?

補足として、フロントエンドとバックエンドの両方の SDK をモバイル サービスのものからモバイル アプリのものに更新しました。その際、バックエンド アプリに OWIN ミドルウェアを追加する必要がありました (上記のリンク #1 の「サーバー プロジェクトの更新」ヘッダーの下の手順に従って)。私の現在の仮説は、この OWIN ミドルウェアが認証用に正しく構成されておらず、コールバックが適切に機能するのを妨げているというものです。したがって、私はapp.UseAppServiceAuthentication(new AppServiceAuthenticationOptions());作品をいじっています。

4

1 に答える 1