当前位置: 首页 > 知识库问答 >
问题:

具有AAD B2C的MSAL客户端凭据

鲁彬炳
2023-03-14

我想允许B2C安全应用程序的用户在决定注册之前浏览

为此,我需要在我的应用程序中嵌入一个客户端凭据流

    public static string tenantID = "aadtenant.onmicrosoft.com";
    public static string ClientID = "xxxx-a2e2-40f5-958b-dc39ca2bd413";
    public static string Secret = "zzzzzzzzs_JhPY1HSFEREgRy5Z2rcL";
    public static string redirectURI = "https://mysite.azurewebsites.net/api";
    public static string[] scopes = new string[] { "api://xxxxxx-a2e2-40f5-958b-dc39ca2bd413/.default" };
    public static string url = String.Format("https://login.microsoftonline.com/{0}/oauth2/v2.0/token", tenantID);
Exception AADSTS50059: No tenant-identifying information found in either the request or implied by any provided credentials.

我注意到的一件事是,当我在AAD租户应用程序中设置API访问时,只分配了Graph。当我去我的API时,我什么也没看到。所以我不确定AAD应用程序和B2C应用程序是如何相互联系的

另一个编辑:我现在已经授予AAD应用程序对B2C应用程序的权限,并创建了一个范围,但我仍然得到一个错误,这次是范围无效

共有1个答案

艾凯捷
2023-03-14

上一次我对使用B2C的API实现客户机凭据身份验证时,我必须向API添加第二个身份验证方案。我在B2C租户的底层Azure广告中注册了一个应用程序,在那里注册了一个应用程序权限(appRole),然后可以将其分配给客户端应用程序(这些应用程序也需要在底层AAD租户中注册)。

然后,API需要能够验证来自B2C注册的作用域或来自AAD注册的应用程序权限(角色)的两个访问令牌。发行者等在这些代币中是不同的。

坦率地说,这有点痛苦,但这实际上是文档推荐的:https://docs.microsoft.com/en-us/azure/active-directory-b2c/application-types#daemonsserver-side-applications。

完成所有这些设置后,客户机需要使用AAD注册客户机id+secret,范围设置为api-client-id/.default

 类似资料:
  • null 编辑1 我使用java配置,而不是xml配置

  • 当授权范围限于客户端控制下的受保护资源或事先与授权服务器商定的受保护资源时客户端凭据可以被用作为一种授权许可。典型的当客户端代表自己表演(客户端也是资源所有者)或者基于与授权服务器事先商定的授权请求对受保护资源的访问权限时,客户端凭据被用作为授权许可。

  • 是否可以使用内置的身份验证/授权选项保护Azure中应用服务中的Web API,同时使用OAuth客户端凭据授予流访问它? 我有一个应用服务正在通过Azure ADB2C进行身份验证。在该B2C租户中,我注册了Web应用/API,并且身份验证工作正常,可以使用该Web应用。我在该ADB2C应用的已发布范围部分中添加了一个范围,并为该范围添加了一个应用ID URI。然后,我在租户中创建了另一个应用(

  • 我目前是谷歌分析API throu JavaScript的新成员。我正在实现一些图表和第一次加载,页面是重定向我到谷歌网站登录与分析帐户,然后返回到我的原始页面,刷新和图表显示。 有没有任何技巧/想法,我可以得到任何API可以解决这个问题?

  • 有人用这种方法吗?https://laravel.com/docs/5.4/passport#client-凭证授予代币 我试图使注册API只包含client_id和client_secret,我希望返回作为访问令牌、刷新令牌、过期日期,但返回www.url。com/oauth/token这是什么 有人能帮我吗?提前谢谢

  • 当客户端是资源所有者时,或者当授权范围限于受客户端控制的受保护资源时,客户端凭证可以用作授权授权。 客户端仅在客户端凭据的帮助下请求访问令牌。 客户端凭证授权流用于获取访问令牌以授权API请求。 使用客户端凭据授权,获取的访问令牌仅授予客户端应用程序搜索和获取目录文档的权限。 下图描绘了客户端凭据流。 上图所示的流程包括以下步骤 - Step 1 - 客户端使用授权服务器进行身份验证,并从令牌端点

  • 我已经考虑这个问题好几天了,从经验中我知道我通常会解决这些问题,但这次我遇到了砖墙。 我有一个在Azure DevOps YAML管道中实例化的python应用程序。该应用程序调用Azure DevOps REST API来创建存储库 该应用程序使用PAT(个人访问令牌)进行身份验证 我在Azure DevOps中创建了一个应用程序: 我的计划是让这一切都在Postman中工作,然后将我的发现移植

  • 我使用Spring4的RestTemplate和雅加达的HttpComponents 4.3来实现远程web服务的客户端。客户端在安全电路上使用基本身份验证。一切都运行得很好,但现在我们正在升级到一种模式,其中连接的用户名将根据请求的内容而变化。 到目前为止,PoolghttpClientConnectionManager在确定现有连接是否对新连接请求有效时似乎忽略了凭据—它严格地查看路由。因此,