Microsoft 标识平台和 OAuth 2.0 代理流
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 参考:Microsoft 标识平台和 OAuth 2.0 代理流 https: //learn.microsoft.com/ZH-CN/entra/identity-platform/v2-oauth2-on-behalf-of-flow<br> /// <summary> /// 获取B数据 /// </summary> /// <returns></returns> public async Task<RestResponse> GetEmdData() { var tokenResponse = await GetToEMDToken(); string url = MaintenanceConsts.GETEMDDATAURL; string token = tokenResponse.AccessToken; var client = new RestClient(_emdBaseUrl); var request = new RestRequest(url); request.AddHeader( "Authorization" , "Bearer " + token); var response = await client.GetAsync(request); return response; } /// <summary> /// 获取访问B的token /// </summary> /// <returns></returns> private async Task<TokenResponse> GetToEMDToken() { try { var authorization = _httpContextAccessor.HttpContext.Request.Headers[ "Authorization" ]; var accessToken = authorization.Any() ? authorization.ToString() : "" ; string baseUrl = _instance + _tenantId + "/" ; string assertion = accessToken?.Replace( "Bearer " , "" ); var options = new RestClientOptions(baseUrl); using var client = new RestClient(options); var request = new RestRequest(MaintenanceConsts.GETEMDTOKENURL) .AddHeader( "Content-Type" , MaintenanceConsts.CONTENTTYPE) .AddParameter( "grant_type" , MaintenanceConsts.GRANTTYPE) .AddParameter( "client_id" , _clientId) .AddParameter( "client_secret" , _clientSecret) .AddParameter( "assertion" , assertion) .AddParameter( "scope" , _emdScope) .AddParameter( "requested_token_use" , MaintenanceConsts.REQUESTEDTOKENUSE); var response = await client.PostAsync<TokenResponse>(request); return response; } catch (Exception ex) { _logger.LogError(ex.Message); _logger.LogError(ex.ToString()); throw ; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!