2016-11-16 5 views
3

機能アプリにAzure Active Directory認証を追加しましたが、「要求が認証されなかった場合の処理​​」を「Azure Active Directoryでログイン」に設定するとすぐに機能アプリの開発インターフェースで次のメッセージが表示されます。Azure機能App:認証ポータルを中断する

エラー: 機能アプリにはアクセスできません。あなたのアプリは一時的な問題を抱えているか、起動に失敗している可能性があります。ログを確認したり、数分後に再試行したりすることができます。 セッションID:23a5880ec94743f5a9d3ac705515b294 タイムスタンプ:2016-11-16T08:36:54.242Z

はおそらく認証要件の区切りが何らかの形で機能アプリへのアクセスを...私はコードの変更を行うことができていても追加エディタを使用しても有効ですが、ログパネルの更新は表示されません。たとえば、コンパイル出力メッセージは表示されません。

これを回避する方法を知っている人はいますか?

これまでのところ、私は「匿名の要求(アクションなし)を許可」に認証オプションを残し、この次のコードを使用して試してみた:

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) 
{ 
    log.Info("C# HTTP trigger function processed a request."); 

    var user = "Anonymous"; 
    var claimsPrincipal = Thread.CurrentPrincipal as ClaimsPrincipal; 
    if (claimsPrincipal != null && claimsPrincipal.Identity.IsAuthenticated) 
    { 
     user = claimsPrincipal.Identity.Name; 
     log.Info($"Hello {user}");  
    }  

    return req.CreateResponse(HttpStatusCode.OK, "Hello " + user);   
} 

しかし、これは(当然)にリダイレクトされませんが認証プロバイダ...私は、アプリケーションが私のためにそのすべてのgungeを世話することを好むだろうが、そうするなら、私はコンパイルメッセージ/ログメッセージを見ることができないことを意味し、何が起こっているかを見るのはかなり難しい。

残念ながら、これは現時点での制限であり、我々はここでそれを追跡している

答えて

4

ネイサン、:https://github.com/projectkudu/AzureFunctionsPortal/issues/794

あなたのアプローチ、匿名許可する機能で検証するために、我々は現時点でお勧めするものです。回避策を拡張するには、次のコードを追加して、匿名ユーザーを検出したときにログインリダイレクトを開始します(以下のコードでは、AADを使用していることを前提としています)。

else 
{ 
    log.Info("Received an anonymous request! Redirecting..."); 
    var res = req.CreateResponse(HttpStatusCode.Redirect); 
    res.Headers.Location = new Uri(req.RequestUri, $"/.auth/login/aad?post_login_redirect_uri={req.RequestUri.AbsolutePath}&token_mode=session"); 
    return res; 
} 

この問題を改善するためには、理想的ではないことをご理解いただき、誠にありがとうございます。

ありがとうございます!

+0

こんにちはファビオ、あなたの返信のおかげで、そのトリックを行います。 – Nathan

+0

私はリダイレクトを有効にしていますが、このURLにリダイレクトされています:https://myfunction.azurewebsites.net/.auth/login/aad/callback、これをどのように解決しましたか? –

関連する問題