我正在关注 Microsoft 文档上的这个api 管理灾难恢复指南,我已经设置了我的活动目录用户并从配置中获取了值(按照建议),然后复制并粘贴了示例中的代码
var authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/xxxx");
var result = await authenticationContext.AcquireTokenAsync("https://management.azure.com/", "xxx", new Uri("https://resource.com"), new PlatformParameters());
似乎建议new PlatformParameters(PromptBehavior.Auto)不起作用,因为该对象不再需要您将参数传递给构造函数,我得到一个NotImplemented异常:
System.NotImplementedException : The method or operation is not implemented.
at Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformParameters.GetCoreUIParent()
at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Flows.AcquireTokenInteractiveHandler.CreateWebUIOrNull(IPlatformParameters parameters)
at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Flows.AcquireTokenInteractiveHandler..ctor(RequestData requestData, Uri redirectUri, IPlatformParameters platformParameters, UserIdentifier userId, String extraQueryParameters, String claims)
at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenCommonAsync(String resource, String clientId, Uri redirectUri, IPlatformParameters parameters, UserIdentifier userId, String extraQueryParameters, String claims)
at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenAsync(String resource, String clientId, Uri redirectUri, IPlatformParameters parameters)
我觉得租户的值,应用程序 ID 可能是错误的,所以我会尽我所能描述我从哪里获得这些值:
租户编号:
在 Azure Active Directory 选项上单击“应用程序注册”选项
查找并单击“端点”
复制出 oauth 端点
获取 url 中的 guid 并将其粘贴到var authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/{here}");
申请编号
在 Azure Active Directory 选项上单击“应用程序注册”选项
查找并单击具有所需权限的用户
点击设置
单击列表中的“属性”选项
复制“应用程序 ID”
粘贴它var result = await authenticationContext.AcquireTokenAsync("https://management.azure.com/", "{here}", new Uri("https://resource.com"), new PlatformParameters());
隔江千里
相关分类