如何使用 crt 和 pkcs8_key 建立 http(s) url 连接 - java

问题描述

我想使用客户端证书连接到 Azure AD - 而不是 ID 和机密

证书在文件夹中,不在密钥库中

我们有一些限制,所以不能使用 msal4j。

所以想创建一个像 - get Access Token from Azure AD Java

但使用证书

谁能告诉我 - 如何使用 http 连接 api 创建令牌?

解决方法

您可以将 client credentials flow 与客户端证书一起使用。

POST http://login.microsoftonline.com/{tenant}/oauth2/v2.0/token 

scope=https://graph.microsoft.com/.default
&client_id=<client_id>
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<An assertion (a JSON web token)>
&grant_type=client_credentials

Client assertions 可用于任何使用客户端机密的地方。您可以将 client_secret 替换为 client_assertionclient_assertion_type 参数。你可以用java来参考code sample