【问题标题】:Client Credentials flow with AAD B2CAAD B2C 的客户凭证流
【发布时间】:2020-08-10 00:23:51
【问题描述】:

我有一个带有 NetCore API 后端的 SPA React 应用程序。这个 api 也被另一个应用程序使用。

我想对使用 AAD B2C 的 SPA 用户和使用客户端凭据流的第二个应用程序进行身份验证和授权。我了解 B2C 不支持客户凭证流。我读到了这一点,以实现我需要在 Active Directory(非 B2C)以及客户端应用程序中再次注册 api 并使用普通 AD 进行配置。

这将使我在 B2C 中注册为应用程序的 SPA 和 API,在正常的非 B2C 中注册为 API 和客户端应用程序。

如果....一切都正确,我如何让 API 验证两种不同类型的客户端?通过针对 AD 非 B2C 的客户端凭据流从 B2C 和客户端应用程序授权用户

【问题讨论】:

    标签: asp.net-core oauth-2.0 azure-active-directory


    【解决方案1】:

    对于B2C的用户授权,你只需要参考这个文档:Tutorial: Grant access to an ASP.NET web API using Azure Active Directory B2C

    您主要关心的是针对 AD 非 B2C 的客户端凭据流。

    我有一个测试,步骤和普通AD一样:

    我在 Azure AD B2C 中注册了一个 Web API 应用程序。在其manifest.xml 中添加一个 appRole。

    "appRoles": [
            {
                "allowedMemberTypes": [
                    "Application"
                ],
                "description": "Writers Have the ability to create tasks.",
                "displayName": "Writer",
                "id": "d1c2ade8-98f8-45fd-aa4a-6d06b947c66f",
                "isEnabled": true,
                "lang": null,
                "origin": "Application",
                "value": "Writer"
            }
        ]
    

    然后我在普通AD中注册了一个Web App应用程序。为其添加 API 权限。

    使用客户端凭据流获取访问令牌。

    【讨论】:

    • 感谢您的回复,我相信我需要使用 App Registrations (Preview) 来创建 API 应用程序,对吧?因为如果我使用非预览版,它不允许我查看或编辑清单。我相信应用注册(预览版)显示了在非 B2C AD 中创建的相同应用,因此可能相同(?)
    • @MartínLaRosa 如果您使用非预览版创建 API 应用程序,您还可以在 App Registrations (Preview) 中找到它,并且可以编辑其清单。 (通过单击“所有应用程序”)在 Azure AD 和 Azure AD B2C 中注册的应用程序可用于两者。所以除了一些特殊的app(比如b2c-extensions-app),两者是一样的。
    • 非常感谢,现在它更有意义了。 app 角色中的 id 是否意味着什么?设置时有什么需要考虑的吗?
    • @MartínLaRosa 如果您使用 API 或 SDK 将用户或组分配给应用角色,您将需要应用角色的 ID。因此,只需确保它是唯一的 GUID。
    猜你喜欢
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    相关资源
    最近更新 更多