使用交互式身份验证的控制台应用程序中的 Azure tableclient
Azure tableclient in console app using interactive authentication
我正在尝试使用 TableClient class 访问 Azure Table 存储,但我想通过浏览器弹出窗口使用 AzureAD 凭据进行身份验证。
我已经尝试了 2 种方法并且确信我在 Azure 中配置正确,但我只是不断得到
This request is not authorized to perform this operation using this
permission.
这里是使用MSAL
的测试代码1
let app = PublicClientApplicationBuilder.Create("---registered app ID---")
.WithAuthority(AzureCloudInstance.AzurePublic, "---tennant id----" )
.WithDefaultRedirectUri()
.Build()
let! ar = app.AcquireTokenInteractive(["https://storage.azure.com/user_impersonation"]).ExecuteAsync()
let tokenCredential = { new TokenCredential() with
member x.GetTokenAsync(_,_) = task {return AccessToken(ar.AccessToken, ar.ExpiresOn)} |> ValueTask<AccessToken>
member x.GetToken(_,_) = AccessToken(ar.AccessToken, ar.ExpiresOn)}
let tc = new TableClient(Uri("https://--endpoint---.table.core.windows.net/"), "--Table--", tokenCredential)
并使用 Azure.Identity
测试 2
let io = new InteractiveBrowserCredentialOptions(ClientId = "---registered app ID---", RedirectUri = Uri("https://login.microsoftonline.com/common/oauth2/nativeclient"))
let tc = new TableClient(Uri("https://--endpoint---.table.core.windows.net/"), "--Table--", new InteractiveBrowserCredential(io))
我已在 Azure 中注册该应用程序,并且已在管理员同意的情况下为 Azure 存储添加 api 权限。我的帐户是租户的服务管理员,因此我可以完全访问存储帐户。我已经搜索了所有文档,但就是看不到我遗漏了什么。
要使用您的 Azure AD 凭据访问 table 数据,您的用户帐户应分配 Storage Table Data Contributor
or Storage Table Data Reader
角色。
请将这些角色之一分配给您的用户帐户和 re-acquire 令牌。你不应该得到你得到的错误。
我正在尝试使用 TableClient class 访问 Azure Table 存储,但我想通过浏览器弹出窗口使用 AzureAD 凭据进行身份验证。
我已经尝试了 2 种方法并且确信我在 Azure 中配置正确,但我只是不断得到
This request is not authorized to perform this operation using this permission.
这里是使用MSAL
的测试代码1let app = PublicClientApplicationBuilder.Create("---registered app ID---")
.WithAuthority(AzureCloudInstance.AzurePublic, "---tennant id----" )
.WithDefaultRedirectUri()
.Build()
let! ar = app.AcquireTokenInteractive(["https://storage.azure.com/user_impersonation"]).ExecuteAsync()
let tokenCredential = { new TokenCredential() with
member x.GetTokenAsync(_,_) = task {return AccessToken(ar.AccessToken, ar.ExpiresOn)} |> ValueTask<AccessToken>
member x.GetToken(_,_) = AccessToken(ar.AccessToken, ar.ExpiresOn)}
let tc = new TableClient(Uri("https://--endpoint---.table.core.windows.net/"), "--Table--", tokenCredential)
并使用 Azure.Identity
测试 2let io = new InteractiveBrowserCredentialOptions(ClientId = "---registered app ID---", RedirectUri = Uri("https://login.microsoftonline.com/common/oauth2/nativeclient"))
let tc = new TableClient(Uri("https://--endpoint---.table.core.windows.net/"), "--Table--", new InteractiveBrowserCredential(io))
我已在 Azure 中注册该应用程序,并且已在管理员同意的情况下为 Azure 存储添加 api 权限。我的帐户是租户的服务管理员,因此我可以完全访问存储帐户。我已经搜索了所有文档,但就是看不到我遗漏了什么。
要使用您的 Azure AD 凭据访问 table 数据,您的用户帐户应分配 Storage Table Data Contributor
or Storage Table Data Reader
角色。
请将这些角色之一分配给您的用户帐户和 re-acquire 令牌。你不应该得到你得到的错误。