- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从基于站点的 WebService 调用 Azure 托管 WebAPI。基于站点的服务是 adal-angluar SPA,然后必须调用 Azure 中托管的 REST API。来自 AAD 的不记名 token 已成功传递到基于站点的 Web API,然后必须代表用户获取新 token 才能调用下游 API,如以下示例所示:
https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof
示例中的下游 API 为 https://graph.windows.net 。这将作为 ResourceId 传递到 AcquireTokenAsync 调用中。
就我而言,下游 API 是我正在编写的 Azure 应用程序,因此我可以完全控制它。
我遇到的问题是“invalid_grant”是从我基于站点的 api 中的 AcquireTokenAsync 调用返回的,该 API 试图代表登录用户获取新 token 。
基于站点的 Web 应用程序在 Azure 中创建了一个 appid,并尝试获取新 token ,如下所示:
var appId = ConfigurationManager.AppSettings["ActiveDirectoryApplicationId"];
var appKey = ConfigurationManager.AppSettings["ActiveDirectoryApplicationKey"];
var aadInstance = ConfigurationManager.AppSettings["ActiveDirectoryInstance"];
var tenant = ConfigurationManager.AppSettings["ActiveDirectoryTenant"];
var onboardingResourceId = ConfigurationManager.AppSettings["OnboardingApplicationResourceId"];
var clientCredential = new ClientCredential(appId, appKey);
var bootstrapContext =
ClaimsPrincipal.Current.Identities.First().BootstrapContext as
System.IdentityModel.Tokens.BootstrapContext;
var userName = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Upn) != null ? ClaimsPrincipal.Current.FindFirst(ClaimTypes.Upn).Value : ClaimsPrincipal.Current.FindFirst(ClaimTypes.Email).Value;
var userAccessToken = bootstrapContext.Token;
var userAssertion = new UserAssertion(bootstrapContext.Token, "urn:ietf:params:oauth:grant-type:jwt-bearer", userName);
var authority = string.Format(System.Globalization.CultureInfo.InvariantCulture, aadInstance, tenant);
var userId = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;
var authContext = new AuthenticationContext(authority, new TokenCache());
var result = await authContext.AcquireTokenAsync(onboardingResourceId, clientCredential, userAssertion);
var accessToken = result.AccessToken;
return accessToken;
所以我的问题是,需要在 Azure 中实现哪些安全措施才能获取 token ?我读到下游 API 的应用程序 list 需要更新,以将基于站点的应用程序包含为“knownClientApplication”。这是正确的吗?
我的下游 Web API 的 ResourceId 应该是什么样子?
我可以在不将下游 Web Api 部署到 Azure 的情况下测试所有这些吗?我希望能够在本地调试所有这些,包括安全性。
谢谢。
最佳答案
knownClientApplications
数组包含众所周知的客户端应用程序的客户端 ID。这意味着当用户第一次同意你的前端应用程序时,除了前端应用程序的要求之外,它还会显示API的权限要求。您无需单独同意 API,这通常是不需要的。这样他们就会立即获得同意并获得权限。
您可以在 Azure 门户中找到的资源 ID。只需找到适用于您的 API 的应用程序,转到“属性”,然后找到应用程序 ID URI:
通常,应用程序 ID URI(或资源 URI)的格式为 https://your-domain-name.com/AppName 。对于 Multi-Tenancy 应用程序来说,重要的一点是 URI 中的域必须是 Azure AD 中经过验证的域。
是的,您可以在本地环境中测试所有内容。只要您将回复 URL 指定为 localhost 等,就可以开始了。
抱歉,我不太确定您为什么会收到无效授权错误。
关于azure - AcquireTokenAsync 返回 "invalid_grant"、 "AADSTS65001",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42779211/
我正在尝试向 Google 联系人 API 验证我的应用程序。我已经完成了 Oauth2 流程的第一步并获得了授权码。我正在尝试将此代码交换为访问 token 和刷新 token ,但是当我尝试从 g
我正在尝试将 Google Plus API 集成到我的网络应用程序中。 我能够通过 Google 进行身份验证并获得代码。当我尝试使用 HttpClient 获取 access_token 时,会出
DocuSign documentation通过易于遵循的授权流程进行代码授予。我能够从初始 GET 请求中获取“代码”到/oath/auth,但是当我在 postman 中尝试时,获取 token
我正在尝试使用我的值设置 config.php,但出现此 fatal error : fatal error :未捕获的异常“Google_AuthException”,消息为“获取 OAuth2 访
我一直在尝试创建一个 access_token对于我的 api。我已经 followed the setup并且正在使用 Postman 测试/创建 token 。我似乎无法通过 invalid_gr
我正在尝试从基于站点的 WebService 调用 Azure 托管 WebAPI。基于站点的服务是 adal-angluar SPA,然后必须调用 Azure 中托管的 REST API。来自 AA
我关注了这个资源:https://REDACTED.b2clogin.com/REDACTED.onmicrosoft.com/B2C_1A_DEMO_CLIENTCREDENTIALSFLOW/oa
我正在使用 Java 运行 Analytics-cmdline-sample 应用程序。我使用的是 Maven 2.2.1,我在 Google Api 控制台中创建了 client_Id 和 clie
我关注了这个资源:https://REDACTED.b2clogin.com/REDACTED.onmicrosoft.com/B2C_1A_DEMO_CLIENTCREDENTIALSFLOW/oa
在尝试使用 Active Directory 进行身份验证以检索访问 token 时,我按照以下步骤操作: 1 - 按照以下说明在 Azure 中创建应用程序(步骤 3): https://githu
我想做什么:我正在将 Spotify SDK 实现到我的 iOS 项目中。我已成功收到 Spotify API 的访问 token ,因为我能够使用所述 API 执行搜索艺术家、搜索歌曲和查看播放列表
当 OAuth2Credential 对象尝试刷新其 access_token 时,有时它会收到 invalid_grant 错误,然后变得无法刷新。我使用的代码基于 Google 的 python
我正在创建一个 API 来包装 google oauth。我正在使用谷歌Python客户端库。 api.py 中的代码 from flask import request, g from ..help
我已经查看了关于此主题的其他问题,它似乎与我的错误不符。运行 Google Sheets APIv4 时出现错误: 引发 HttpAccessTokenRefreshError(error_msg,
最近我一直在为这个问题烦恼。 一些背景 使用oauth2client库来管理用户的 token 。 token 用于定期并发执行各种后台任务。 每次这些任务之一即将为用户运行时,我们都会从存储中获取凭
我正在尝试构建一个访问 Google Analytics API 并提取数据的网络应用程序。但是,我在 OAuth 2.0 授权方面遇到了一些问题。 它允许成功的初始访问,但它很快将我踢出并在我点击刷
我正在尝试使用 Mailchimp 的 OAuth 完成身份验证实现,我的访问 token 请求正在获取“无效授权”错误。 使用 ruby HTTParty gem,我将数据发布到 Mailchi
我创建了自己的网站 (www.luig.us)。我为 SQL 服务器创建了一个基本的 IDE,只教 child SQL,DML。 它要求用户在开始时输入用户名和密码以获得使用服务的 token 。 在
在 https://appleid.apple.com/auth/token 中尝试从 Apple 获取 oAuth token 时,我一直收到 invalid_grant 错误接口(interfac
我在我的 Raspberry PI 上使用 Google Cloud Vision API。当我在我的家庭(首次访问云帐户)网络上使用它时,它工作正常,但如果我从不同的网络访问 API,它会引发 to
我是一名优秀的程序员,十分优秀!