3

Azure AD B2C 認証を使用して Windows Phone 8.1 アプリを作成したいと考えています。基本として、B2C Windows デスクトップ/ネイティブ クライアントのサンプルを使用しました。

デスクトップ アプリは問題なく動作します。私の WP8.1 採用では、トークンを取得したい時点で最初の問題に遭遇しました。

result = await authContext.AcquireTokenAsync(new string[] { Globals.clientId },
                null, Globals.clientId, new Uri(Globals.redirectUri),
                platformParams, Globals.signInPolicy);

デスクトップ アプリでは素敵な光沢のあるトークンを取得しますが、WP8.1 アプリでは (WebAuthenticationBroker から戻った後) ...?code=...... 応答しか取得しません。

よくわかりませんが、WP8.1 ライブラリは、最初の呼び出しが承認され、2 番目の呼び出しがトークンエンドポイントに送られる、一種のOIDC モデルで動作しているようです。

そこからピックアップして、受け取った認証コードで続行しようとしました

var result = await authContext.AcquireTokenByAuthorizationCodeAsync(authCode, new Uri(Globals.redirectUri),
                credApp, new string[] { "" }, Globals.signInPolicy );

しかし、どのようにClientCredentialまたはClientAssertionを渡そうとしても、常に単純な400 Bad リクエストになります (それ以上の詳細は返されません)。

誰かが私が間違っている場所を教えてください、および/または正しい方向に向けてください。

4

2 に答える 2

1

ここでは、Azure AD B2C 認証を使用して、完全に実行されているサンプル Windows Phone 8.1 アプリを作成しました...

調査結果 (ADAL v2 Azure AD 認証との比較):

  • ContinuationManager は必要ありません - これはSetWebAuthenticationBrokerContinuationEventArgsADAL v4 でカバーされています
  • このアプローチでは、コードは直後に実行を継続しますAcquireTokenAsync
于 2016-03-30T18:12:34.990 に答える