Я проверил на моей стороне, и вот мои шаги:
1. Два приложения в одном веб-приложении Azure.
Приложение 1: https://jackdemoapp1.azurewebsites.net/app1/
Приложение 2: https://jackdemoapp1.azurewebsites.net/app2/
2. Настройте Аутентификацию / Авторизацию на портале Azure.
![enter image description here](https://i.stack.imgur.com/tAeva.png)
И вы можете получить идентификатор клиента, нажав на детали, запишите его, и мы будем его использоватьв приложении 2:
![enter image description here](https://i.stack.imgur.com/5vEjE.png)
3. Настройка управляемого удостоверения на портале Azure
![enter image description here](https://i.stack.imgur.com/o3Aba.png)
Чтобы упростить тест, app1 просто вернет строку «Hello».
![enter image description here](https://i.stack.imgur.com/x5ChP.png)
4. Код в приложении 2
@ResponseBody
@RequestMapping("/")
public String index() {
JSONObject json = new JSONObject();
try {
AppServiceMSICredentials credential = new AppServiceMSICredentials(AzureEnvironment.AZURE);
// As we want to get token for accessing the aad-protected app, change the
// resource to the client ID you get in step 2
String token = credential.getToken("ac07d701-6f7d-462e-8b67-5dffa1df955f");
json.put("token", token);
// The URL for app1 API
String app1 = "https://jackdemoapp1.azurewebsites.net/app1/";
HttpURLConnection conn = (HttpURLConnection) new URL(app1).openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", "Bearer " + token);
conn.setDoOutput(true);
conn.setDoInput(true);
// Open the connection
conn.connect();
int code = conn.getResponseCode();
if (code >= 200 && code <= 300) {
try (InputStream inputStream = conn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
StringBuilder stringBuilder = new StringBuilder();
String line = "";
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line);
}
String response = stringBuilder.toString();
json.put("response", response);
}
} else {
json.put("Error", "Response Code" + conn.getResponseCode());
}
conn.disconnect();
} catch (Exception e) {
json.put("Exception", e.getStackTrace());
}
return json.toString();
}
Результат
![enter image description here](https://i.stack.imgur.com/ftrzp.png)