Zumo-Auth
令牌,并使用它来访问API应用程序。我正在按照此教程进行操作,一切都很顺利,直到我需要从
authContext
请求令牌的那一点。以下是代码片段:var authContext = new AuthenticationContext(
"https://login.microsoftonline.com/MyADDomain.onmicrosoft.com");
ClientCredential credential = new ClientCredential(
"04472E33-2638-FAKE-GUID-F826AF4928DB",
"OMYAPIKEY1x3BLAHEMMEHEHEHEHEeYSOMETHINGRc=");
// Get the AAD token.
var appIdUri =
"https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aad";
//var appIdUri = "https://MyADDomain.onmicrosoft.com/MyAppName";
//var appIdUri = "https://MyADDomain.onmicrosoft.com/";
//var appIdUri = "https://graph.windows.net";
AuthenticationResult result =
authContext.AcquireToken(appIdUri, credential); // <-- can't get the token from AD
// downhill from here
var aadToken = new JObject();
aadToken["access_token"] = result.AccessToken;
var appServiceClient = new AppServiceClient(
"https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/");
// Send the AAD token to the gateway and get a Zumo token
var appServiceUser = await appServiceClient.LoginAsync("aad", aadToken);
这一行代码 authContext.AcquireToken(appIdUri, credential)
造成了问题。
如果我将 appIdUri
设置为 https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aad
,就会出现异常:
400: AdalServiceException: AADSTS50001: 资源 'https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aad' 未在该帐户中注册。
但是,这一行代码确实在 AD 应用程序的 Reply Url
列表中。
当我尝试将 appIdUri
设置为 https://MyADDomain.onmicrosoft.com/MyAppName
或者 https://MyADDomain.onmicrosoft.com/
时,我会收到另一条异常消息:
400: AdalServiceException: AADSTS50105: 应用程序 '04472E33-2638-FAKE-GUID-F826AF4928DB' 未分配给 'https://MyADDomain.onmicrosoft.com/MyAppName' 应用程序的角色
或者
400: AdalServiceException: AADSTS50105: 应用程序 '04472E33-2638-FAKE-GUID-F826AF4928DB' 未分配给 'https://MyADDomain.onmicrosoft.com/' 应用程序的角色
在这两种情况下,我都将 AD 应用程序的 App ID URI
设置为 'https://MyADDomain.onmicrosoft.com/MyAppName' 或者 'https://MyADDomain.onmicrosoft.com/'。这两个名称都在 Reply URL
列表中。
最终,在尝试了足够多次之后,我将 appIdUri
设置为 https://graph.windows.net
并获得了令牌。但是该令牌的过期日期已经过去(大约过去了1分钟),所以我不能进一步使用它。尝试使用该令牌登录 API 应用程序时会出现 401-未经身份验证
的错误。
Zumo-Auth
令牌?它与你的问题有多大关联? - Shaun LuttinZumo-Auth
是 Azure 中用于身份验证的 ApiApp 和移动应用程序使用的令牌。我需要它来与 ApiApp 进行身份验证。我猜对于这个问题来说并不重要,因为我似乎无法获取承载令牌,这是一个先决步骤。 - trailmax