我正在尝试在AAD中创建一个多租户应用程序,任何组织都可以登录。我可以使用我的凭据获得授权令牌,当然这是我们的组织,因此它将工作。我正在尝试实现的是使用用户名和密码获得令牌,例如:
第一test@company1.com:测试1
您的位置:test@company2.com〉〉测试2〉例如test@company3.comp:test3等...
出现以下错误:AADSTS65001:用户或管理员尚未同意使用ID为[APP ID]的应用程序为此用户和资源发送交互式授权请求。
我已经从API权限中执行了授予管理员同意,但仍然出现错误。我错过了哪些设置?
这是我初始化IPublicClientApplication的方法:
var app = PublicClientApplicationBuilder
.Create(clientId)
.WithAuthority(AadAuthorityAudience.AzureAdMultipleOrgs)
.WithDefaultRedirectUri()
.Build();
var scopes = new string[]
{
"offline_access",
"email",
"https://outlook.office.com/IMAP.AccessAsUser.All"
};
var authToken = app.AcquireTokenByUsernamePassword(scopes,email,
password).ExecuteAsync();
此致。
1条答案
按热度按时间mmvthczy1#
我尝试在我的环境中重现相同的结果,结果如下所示:
我创建了一个Azure AD多租户应用程序,如下所示:
我尝试通过Postman中的ROPC流生成访问令牌,方法是使用相同租户用户的凭据,参数如下:
请注意,ROPC流仅支持本地帐户(* 最初在创建应用程序的AAD租户中创建的Azure AD用户帐户 *)。它不支持其他租户用户/访客用户。
当我尝试使用其他租户用户的凭据生成令牌时,出现如下相同的错误:
参考:
Sign in with resource owner password credentials grant - Microsoft Entra