簡體   English   中英

對於使用 Angular SPA 獲取的 Active Directory B2C JWT 令牌,acr 聲明為 null

[英]acr claim is null for the Active Directory B2C JWT token acquired using Angular SPA

I downloaded here from GITHUB an Azure Sample for using Azure Active Directory B2C (ADB2C) in Angular. 請考慮我已成功配置 Azure 門戶上的 ADB2C,並且能夠與我的 Angular 應用程序交互。 事實上,我很高興能夠毫無問題地注冊一個新用戶。
但是,一旦我登錄,它總是返回以下消息:

密碼已成功重置。 請使用您的新密碼登錄

我嘗試重置密碼,但我總是收到相同的密碼。 我檢查了Microsoft 代碼,發現了這一行:

  if (success.idToken.claims['acr'] !== b2cPolicies.names.signUpSignIn) {
    window.alert("Password has been reset successfully. \nPlease sign-in with your new password");
    return this.authService.logout()
  }

我進一步調查了一下,我意識到生成的 ADB2C JWTToken 缺少“acr”聲明。 在這里,在微軟官方文檔中,他們寫道:

僅與舊策略一起使用。 所以我想知道:

  1. “acr”聲明是強制性的嗎?
  2. 我可以在不影響穩定性的情況下注釋掉該行嗎? 該應用程序似乎可以正常工作,並且返回的 JWT 格式正確
  3. 為什么 GitHub 代碼使用這種奇怪的條件? 我將打開一個問題而不是..

謝謝

搞定了我引用 Derisen(作者)在 GitHub 上回復我答案:

  1. 僅當您需要使用密碼重置流程時才需要acr聲明。 對於較新的政策,它的等價物是tfp (如果您的令牌中沒有該聲明,請告訴我)。
  2. 如果您不需要密碼重置流程,您當然可以這樣做。

我意識到在 Azure 門戶上,在 ADB2C 部分,您可以更改設置:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM