我在同意我的API时遇到问题。我的租户(客户端,API)中有2个应用程序。客户端应用程序是SPA并启用了隐式流,并且它调用了API,因此我将客户端应用程序的ID添加到了API应用程序中的knownClientApplications中。对于这两个应用程序,都启用了多租户。
但是,当我尝试从其他租户登录SPA时,仅要求获得客户应用程序同意,并得到一个错误,提示我我的API应用程序没有服务主体。
为了使它也隐式地同意API应用程序,应该配置什么?
我使用MSAL.js库和Azure AD 2.0。范围:https://mytenantname.onmicrosoft.com/myservicename/user_impersonation
答案 0 :(得分:0)
要使SPA应用程序迅速同意并与您的API同意相结合,您的范围应为 Task act = Task.Run(async () => await App.DataService.UpdateItemAsync(CP, ToServer, "Contact_Party/EditContact_Party/" + CP.Id));
await act.ContinueWith(async (antecedent) =>
{
foreach (var sam in specialty)
{
if (CP.Id > 0)
{
sam.Cntct_SEQ = CP.Id;
}
else
{
sam.Tmp_Cntct_SEQ = CP.Cntct_SEQ;
}
if (sam.Id == 0)
{
if (sam.Cntct_Spec_SEQ == 0)
await App.DataService.CreateItemAsync(sam, ToServer, "Contact_Specialty/AddContact_Specialty");
else
{
await App.DataService.UpdateItemAsync(sam, ToServer, "Contact_Specialty/EditContact_Specialty/" + sam.Id);
}
}
else
{
await App.DataService.UpdateItemAsync(sam, ToServer, "Contact_Specialty/EditContact_Specialty/" + sam.Id);
}
}
}, TaskContinuationOptions.None);
。
您可以阅读有关./default scope here的信息。
如果您需要一个样本来阐明这个概念,我建议this one