首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用从多租户应用程序检索的访问令牌在客户租户中调用APIM

使用从多租户应用程序检索的访问令牌在客户租户中调用APIM
EN

Stack Overflow用户
提问于 2021-05-12 06:57:17
回答 1查看 215关注 0票数 0

我有一个MT应用程序,授权用户在我的多租户应用程序。当用户登录时,我将验证id令牌的发行者是否是来自AzureAd的已知租户。使用房客的GUID。

像一种魅力:D

现在,一个客户希望我通过调用通过APIM公开的API,对他们的源系统执行一些“写回”操作。

我认为这就是OIDC/oAuth的全部内容,但我无法找到任何关于如何做到这一点的好例子。

我要解决的第一件事是如何获得访问令牌。

代码语言:javascript
运行
复制
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.AzureAD.UI;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder;

services.AddAuthentication(AzureADDefaults.AuthenticationScheme).AddAzureAD(o =>
                     {
                         o.OpenIdConnectSchemeName = AzureADDefaults.OpenIdScheme;
                         o.Instance = "https://login.microsoftonline.com/";
                         o.TenantId = "organizations";
                         o.CallbackPath = "/signin-oidc"; 
    
    
                 OnTokenValidated = e =>
                 {
                     //This can not be the way to do it. but for now. 
                     var accestoken = e.SecurityToken.RawData; //This is the AccessToken

目前,我正在将访问令牌存储在cookie中,这可能不是最好的方法,我已经看到一些文档提到了SaveToken选项,但似乎不是AddAzureAD扩展选项的一部分。

在此之后,使用授权头中的访问令牌调用APIM应该能做到这一点吗?还是我需要在apim中注册一些应用程序?

谁都行!

我在黑暗中摸索:

EN

回答 1

Stack Overflow用户

发布于 2021-05-13 03:03:53

在此之后,使用授权头中的访问令牌调用APIM应该能做到这一点吗?还是我需要在apim中注册一些应用程序?

正如您在注释中所说的,您得到的是身份令牌,而不是访问令牌。您需要修改代码并使用HttpContext.GetTokenAsync("access_token")获取访问令牌。

此外,您不需要在apim中注册应用程序,因为您已经有了一个多租户应用程序,您只需要将它添加到客户租户,我认为您已经这样做了。

最后,顺便说一句,不要忘记添加政策

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67498668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档