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();