首页 > 其他分享 >Microsoft 标识平台和 OAuth 2.0 代理流

Microsoft 标识平台和 OAuth 2.0 代理流

时间:2023-12-08 16:59:21浏览次数:23  
标签:MaintenanceConsts request var AddParameter client OAuth new 2.0 Microsoft

参考:Microsoft 标识平台和 OAuth 2.0 代理流 https://learn.microsoft.com/ZH-CN/entra/identity-platform/v2-oauth2-on-behalf-of-flow
/// <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; } }

  

标签:MaintenanceConsts,request,var,AddParameter,client,OAuth,new,2.0,Microsoft
From: https://www.cnblogs.com/0banana0/p/17888498.html

相关文章

  • OpenTiny Vue 3.12.0 发布:文档大优化!增加水印和二维码两个新组件
    你好,我是Kagol。非常高兴跟大家宣布,2023年11月30日,OpenTinyVue发布了v3.12.0......
  • .NET 6 (C#) Microsoft.Extensions.Logging 日志框架的使用
    .NET6中的日志框架主要是基于Microsoft.Extensions.Logging,这是一个通用的、可扩展的日志记录接口,允许使用不同的日志提供程序(例如控制台、文件、第三方库等)进行日志记录。本文主要介绍.NET6(C#)中Microsoft.Extensions.Logging日志框架的使用,以及相关的示例代码。1......
  • OAuth2.0授权
    OAuth2.0OAuth2.0是一个开放标准,允许用户授权第三方应用程序访问他们存储在另外的服务器上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0协议的认证流程,简单理解,就是允许我们将之前的授权和认证过程交给一个独立的第三方进行担保。OAuth2.0协议......
  • 不要用第三方日志包了Microsoft.Extensions.Logging功能就很强大
    在.NET中,Microsoft.Extensions.Logging是一个广泛使用的日志库,用于记录应用程序的日志信息。它提供了丰富的功能和灵活性,使开发人员能够轻松地记录各种类型的日志,并将其输出到不同的目标,包括日志文件。本文将详细介绍Microsoft.Extensions.Logging的各种基础功能以及如何按天生成......
  • StoneDB-8.0-V2.2.0 企业版正式发布!性能优化,稳定性提升,持续公测中!
    11月,StoneDB新版本如期而至,这一个月来我们的研发同学加班加点,持续迭代:在2.2.0版本中,我们针对用户提出的需求和做出了重量级更新,修复了一些已知和用户反馈的Bug,同时对部分代码进行了重构,新版本还特别针对备库insert的性能进行了大幅提升。欢迎大家下载试用,遇到任何问题都可以......
  • ubuntu 22.04 设置网桥 - netplan
    添加/编辑虚拟网桥/etc/netpaln/br0.yaml ipv4dhcp:network:version:2ethernets:eno8303:#替换为实际网卡dhcp4:falsedhcp6:falsebridges:br0:interfaces:[eno8303]#替换为实际网卡dhcp4:trueparameters:......
  • 12.04每日总结
          ......
  • Wpf 第三方Mvvm包(mvvmLight/Microsoft.Toolkit.Mvvm/CommunityToolkit.Mvvm)
    十年河东,十年河西,莫欺少年穷学无止境,精益求精 mvvmLight和 Microsoft.Toolkit.Mvvm已被Nuget弃用且不再更新,在此不作说明CommunityToolkit.Mvvm是NetCore版本引用包,详情参考:WPFMVVM框架:CommunityToolkit.Mvvm包使用介绍1、wpf项目中使用 CommunityToolkit.Mvvm(NetCore3.1......
  • ubuntu22.04使用esp_idf
    因为需要安装这个开发工具,所以这里记录一下,主要是参考的这个网页:https://docs.espressif.com/projects/esp-idf/zh_CN/release-v4.4/esp32/get-started/index.html#esp-idf这里特别注意:这个过程需要下载很多东西,建议使用梯子,不然很容易失败,我本人是前两次没用梯子,都失败了,第三次......
  • 代码随想录算法训练营第4天 | lc24、lc19、lc面试题02.07、lc142
    (本合集全部为Go语言实现)相关文章链接:24题解19题解02.07题解142题解相关视频链接:Leetcode24状态:秒了实现过程中的难点:对组内两个节点的指针指向流转需要倒腾明白。临时头结点真的很有用个人写法funcswapPairs(head*ListNode)*ListNode{tmpHead:=&ListNode{-......