MSAL Java 中的客户端凭据

MSAL4J 中有三种类型的客户端机密:

  • 应用程序机密
  • 证书
  • 客户端断言

MSAL4J 中使用应用程序机密进行客户端凭据验证

使用Microsoft Entra ID注册机密客户端应用程序期间,将生成客户端密码(一种应用程序密码)。 当客户端想要以自己的名称获取令牌时,它将:

  • 使用 ClientCredentialFactory 创建 IClientCredential,并传入客户端密钥(应为字符串)。
String CLIENT_SECRET; 
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET)

具有证书的客户端凭据

在这种情况下,当应用程序注册到Microsoft Entra ID时,它会上传证书的公钥。 当它想要获取令牌时,客户端应用程序将

  • 使用 ClientCredentialFactory 创建 IClientCredential,传入公钥和私钥,或 pkcs12 的 InputStream
PrivateKey privateKey;  
X509Certificate publicKey;  
IClientCredential credential = ClientCredentialFactory.createFromCertificate(privateKey, publicKey)

InputStream inputStream;  
String password;  
IClientCredential credential = ClientCredentialFactory.create(inputStream, password)
  • 然后,你将创建机密客户端应用程序并传入客户端凭据。
ConfidentialClientApplication app =
                    ConfidentialClientApplication.builder(
                        CLIENT_ID,
                        credential)
                .build();