2017-03-07 1 views
2

Azure AD B2Cには、「サインアップ/サインイン」と「パスワードリセット」のポリシーがあります。私は、これは基本的に動作しますが、そこにあるAzureモバイルアプリケーションでAzure AD B2Cを使用する場合、パスワードポリシーはどのように設定されていますか?

enter image description here

を「/サインインサインアップ」政策を

enter image description here

のメタデータエンドポイントをコピーして、Azureのアプリケーションの認証に貼り付けますパスワードをリセットするためのテンプレートを持つパスワードリセットメタデータを入れる場所がありません。私はこの結果、「パスワードを忘れました」をクリックすると、

になります。

このディレクトリまたはページを表示する権限がありません。 〜/ .auth /ログイン/ AAD /コールバックで

なぜ/xxx.onmicrosoft.com/B2C_1_b2c_sign_up_sign_in/api/CombinedSigninAndSignup/forgotPassword?csrf_token=xxx & P = B2C_1_b2c_sign_up_sign_in

に行くことにしようとしたときサインイン/サインアップ/パスワードリセットはありませんか?

enter image description here

また、別の奇妙なことは、新しいアカウントを作成する上でクリックしています。

enter image description here

[キャンセル押すと、再びそれはコールバックに行く許可ページを必要とします。

私はポリシーをダウンロードして、パスワードのリセットが

<UserJourneys> 
    <UserJourney Id="B2CPasswordResetV1"> 
     <OrchestrationSteps> 
     <OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections"> 
      <ClaimsProviderSelections> 
      <ClaimsProviderSelection TargetClaimsExchangeId="PasswordResetUsingEmailAddressExchange" /> 
      </ClaimsProviderSelections> 
     </OrchestrationStep> 
     </OrchestrationSteps> 
    </UserJourney> 
    </UserJourneys> 
    <RelyingParty> 
    <DefaultUserJourney ReferenceId="B2CPasswordResetV1" /> 
    <TechnicalProfile Id="PolicyProfile"> 
     <DisplayName>PolicyProfile</DisplayName> 
     <Protocol Name="OpenIdConnect" /> 
     <OutputClaims> 
     <OutputClaim ClaimTypeReferenceId="objectId" /> 
     <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" /> 
     <OutputClaim ClaimTypeReferenceId="emails" /> 
     <OutputClaim ClaimTypeReferenceId="displayName" /> 
     <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" /> 
     </OutputClaims> 
     <SubjectNamingInfo ClaimType="sub" /> 
    </TechnicalProfile> 
    </RelyingParty> 

サインインを更新していない以下のものを持っています。は、私はちょうどあなたがサインアップを作成したり、サインインポリシー(ローカルアカウントで)する場合、これは

、 消費者が表示されます見つかった「パスワードを忘れましたか?」 体験の最初のページにあるリンクをクリックします。このリンクをクリックしても、 パスワードリセットポリシーが自動的に起動されるわけではありません。その代わりに、特定のエラーコードAADB2C90118が に返されます。あなたのアプリはこれを処理し、 固有のパスワードリセットポリシーを呼び出します。これを示すサンプルは、 ポリシーをリンクする方法を示しています。

コールバックに投稿されたようです。したがって、zumoコールバックはエラーを処理できないようです。 zumoコールバックが状態/ code/id_tokenを取得した場合は、終了します。

enter image description here

答えて

1

残念ながらB2Cのための統合されたアプリケーションサービスのサポートは、あなたのアプリがあなたのリセットパスワードポリシーにリダイレクトするエラーコールバックを処理することはできません。この時点であなたのオプションは以下のとおりです。

  1. エラーを処理して、パスワードのリセットポリシーを呼び出すために、エンドユーザーに許可web.configファイルでカスタムエラーハンドラを設定し
  2. をカスタムCSSを使用してパスワードリセットのリンクを削除するか、
  3. それらを /.auth/login/aad?p=B2C_1_B2CPasswordResetV1にリダイレクトします。

私はこのブログの記事のコメントに#2の簡単な例を書いた:ここhttps://cgillum.tech/2016/08/10/app-service-auth-and-azure-ad-b2c-part-2/#comment-581

は、私はこのエラーを処理し、あなたの携帯電話上の静的なページにリダイレクトする方法を示している共有web.configファイルの抜粋ですバックエンド:

<configuration> 
    <system.webServer> 
    <httpErrors defaultResponseMode="File" errorMode="Custom" > 
     <clear /> 
     <error statusCode="401" subStatusCode="73" path="MyPage.html" /> 
    </httpErrors> 
    <system.webServer> 
</configuration> 

他の応答モードは、ExecuteURLリダイレクト含め、もご利用いただけます。あなたのニーズに応じて、ファイルを使用している私の例よりも、これらの方が適切かもしれません。 IISのカスタムエラーの詳細については、https://www.iis.net/configreference/system.webserver/httperrors#005を参照してください。

+0

おかげでクリス、私はちょうどあなたを狩りしようとしていた! :) - Azureに内蔵されている統合されたAppサービスですか?これはかなり重要な機能だと思われます!また、新しいユーザーを作成しようとした後に「キャンセル」を押すと発生します。 – tofutim

+0

私は '' '' '' も無駄にしようとしました。たぶん何かがナンシー/ズモ/シグナルによって傍受されているかもしれない。 – tofutim

+1

私はそれを理解した。ナンシーのせいだ。ナンシーをオフにすると、傍受はうまくいきます。 – tofutim

関連する問題