![](/img/trans.png)
[英]Authenticate using Azure AD B2C in a NativeScript angular Application
[英]How do I get my angular application to work with b2c “revoke session” button which I can press in the Azure portal
我的用例是能夠強制要求用戶在丟失設備/帳戶受損的情況下再次登錄,還可以更新他們緩存的用戶帳戶,我們在 Angular 應用程序中添加了更多信息。
在 Azure B2C 中,我有幾個管理按鈕,包括 [Revoke Sessions]。 在幕后,這調用了圖 function,如此處所述(我的 API 可以稍后以編程方式調用):- https://graph-user-revssignins?view 1.0&tabs=csharp
在我的 Angular 應用程序中,我無法強制我的用戶在后續調用安全資源時再次登錄。 我希望當我在按下此按鈕后撥打任何電話時,它會發回一個失敗代碼,我可以將其捕獲在攔截器或類似物中。
文檔不清楚,我什至不確定我是否誤解了該操作的工作原理。 我查看了各種答案,包括一個關於傾斜時間和自定義基本 susi 流程的答案,但這對於應該是一個常見用例的東西來說似乎太過分了。
我正在使用以下位置提供的已發布示例,並進行更改以將其指向我的 B2C 區域。 其中配置了標准流程。 MSAL 1 和 2 代碼會出現此問題 - 均不適用於此問題。
將此代碼與我的設置一起使用,我可以使用創建的帳戶登錄 B2C,編輯我的個人資料並查看我的示例安全 api。
在 B2C 環境中,我按下撤銷 session 按鈕。 在客戶端上,我嘗試再次調用我的 api,它只是像以前一樣調用它。
我懷疑將 go 更改為app.component.ts
示例的這一部分:-
this.msalBroadcastService.msalSubject$
.pipe(
filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_FAILURE || msg.eventType === EventType.ACQUIRE_TOKEN_FAILURE),
takeUntil(this._destroying$)
)
.subscribe((result: EventMessage) => {
console.log(result);
if (result.error instanceof AuthError) {
// Check for forgot password error
// Learn more about AAD error codes at https://docs.microsoft.com/azure/active-directory/develop/reference-aadsts-error-codes
if (result.error.message.includes('AADB2C90118')) {
// login request with reset authority
let resetPasswordFlowRequest = {
scopes: ["openid"],
authority: this.policies.authorities.forgotPassword.authority,
}
this.login(resetPasswordFlowRequest);
}
}
});
帶有該示例的文檔將您指向此處以了解其他事件:- https://docs.microsoft.com/en-gb/azure/active-directory/develop/reference-aadsts-error-codes但同樣沒有提及撤銷的期望是什么。
我錯過了什么?當某人在按下該按鈕后嘗試訪問受保護的資源時,如何讓示例應用程序強制他們再次登錄?
謝謝
Azure AD 可以應用策略,包括僅在下一次請求登錄或獲取訪問令牌時才撤銷會話。
AAD 今天在無狀態模式下工作,因此如果用戶在其 web 應用程序中處於活動狀態,因為 session 基於 cookies 仍然有效,並且/或運行的訪問權仍然有效,並且/或默認情況下發布后),沒有服務器端機制來強制注銷用戶或使已發布的訪問令牌無效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.