Azure AD 用户主体 java sdk

问题描述

是否可以通过 Azure 广告用户的信息(用户名和密码)对 blob 存储服务进行身份验证。 我正在使用应用程序主体并且它工作正常: 代码片段

ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
                .clientSecret(clientSecret)
                .clientId(clientId)
                .tenantId(tenantId)
                .build();
        new BlobServiceClientBuilder()
                .credential(clientSecretCredential)
                .endpoint(endpoint)
                .buildClient()
                .getBlobContainerClient(container)
                .getProperties();

现在我们对用户信息有任何更改吗?

解决方法

因为 Kalyan Chanumolu 在 MS Q&A 中已经回答了这个问题

Microsoft 建议您不要使用 ROPC 流 OAuth 2.0 资源所有者密码凭据 (ROPC)(它允许应用程序通过直接处理用户的密码来登录用户)。这不是一种对用户进行身份验证的安全方式,因此不推荐使用。在大多数情况下,可以使用并推荐更安全的替代方案。此流程需要对应用程序具有非常高的信任度,并且会带来其他流程中不存在的风险。只有在无法使用其他更安全的流程时才应使用此流程。

没有密码的帐户无法使用 ROPC 登录,这意味着 SMS 登录、FIDO 和身份验证器应用等功能将无法在该流程中使用。如果您的应用或用户需要这些功能,请使用 ROPC 以外的流程。

enter image description here

您的应用应代表您的用户从 Microsoft 身份平台获取令牌。 请参考 OAuth 2.0 代表流程

参考:https://docs.microsoft.com/en-us/answers/questions/462498/do-we-have-any-way-to-authenticate-blob-store-with.html