[英]authenticate users in angular through azure ad and authorize to blob storage
我在 angular 中構建了一個應用程序,我想讓經過身份驗證的用戶能夠根據他們的訪問權限下載文件 我嘗試使用 Azure AD 和 azure rbac 進行身份驗證和 autheriztion,並使用 azure blob 來存儲我的文件,我在互聯網上搜索了很多,雖然我遇到了關於如何通過 msal 庫進行身份驗證的解決方案,但我沒有找到任何關於如何對用戶進行身份驗證和 AUTHERIZE 用戶使用 blob 存儲的解決方案,我將非常感謝許多說明或教程如何解決這個問題 。 最好的問候,女孩
您的代碼是否在瀏覽器中運行? 目前瀏覽器@azure/blob-storage
僅支持使用 SAS 令牌
BlobServiceClient
構造函數確實采用TokenCredential
,這是您可以實現的接口:
在向 Azure Blob 服務發送請求時,SDK 庫將使用提供的令牌作為不記名令牌。 不過,我還沒有用 RBAC 嘗試過這個。
希望未來 SDK 能夠更好地與瀏覽器的 AAD/RBAC 集成。
您需要使用以下方法獲取 blob 存儲的令牌:-
this.authService
.acquireTokenSilent({
scopes: ['https://storage.azure.com/user_impersonation'],
})
.then((tokenResponse) => {tokenResponse.accessToken})
然后像這樣包裝令牌:-
TestTokenCredential(tokenResponse.accessToken) {
return {
getToken: function (_scope, _opts) {
return {
token: tokenResponse.accessToken,
expiresOnTimestamp: Date.now() + 60 * 60 * 1000,
};
},
};
}
並最終使用上述函數返回的令牌來獲取 blob 容器客戶端,例如:-
private containerClient(token: any): ContainerClient {
return new BlobServiceClient(
`https://${this.picturesAccount}.blob.core.windows.net`,
token
).getContainerClient(this.picturesContainer);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.