Я хочу получить доступ к календарю Outlook пользователя в моем Java приложении. Для этого я пытаюсь использовать API Microsoft Graph.
Я следую этому руководству: https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-java-webapp, код которого здесь: https://github.com/Azure-Samples/ms-identity-java-webapp/tree/master/msal-java-webapp-sample
Я создал приложение на portal.microsoft.com с типом Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)
Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)
Я создал и скопировал keystore.p12 в каталог ресурсов.
My application.properties:
#AAD configuration aad.clientId=my client id aad.authority=https://login.microsoftonline.com/my tenant id/ aad.secretKey=my secret key aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me aad.msGraphEndpointHost=https://graph.microsoft.com/ #SSL configuration server.port=8443 server.servlet.session.cookie.secure=true server.ssl.key-store=classpath:keystore.p12 server.ssl.key-store-password=password server.ssl.key-store-type=PKCS12 server.ssl.key-alias=testCert server.ssl.key-password=password
Когда я запускаю приложение и получаю доступ к https://localhost:8443, я получаю страницу с кнопкой «Войти». Когда я нажимаю кнопку «Войти», меня перенаправляют на страницу, где я могу выбрать одну из учетных записей Outlook. URL-адрес:
https://localhost:8443
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&response_mode=form_post&redirect_uri=https%3A%2F%2Flocalhost%3A8443%2Fmsal4jsample%2Fsecure%2Faad&client_id=ca146462-8880-424c-b629-cc7c0d0fb1b3&scope=openid+offline_access+profile&prompt=select_account&state=69a2ac0f-abac-46ad-b525-88f0b70182b7&nonce=9278f424-6858-4e22-bb13-7b13894abda7
Когда я выбираю учетную запись, я получаю следующую ошибку:
Выбранный пользователь Учетная запись не существует в клиенте «Службы Microsoft» и не может получить доступ к приложению «ca146462-8880-424 c -b629-cc7c0d0fb1b3» в этом клиенте. Сначала необходимо добавить учетную запись в качестве внешнего пользователя в арендаторе. Используйте другую учетную запись.
Я добавил URI перенаправления
Почему я получаю сообщение об ошибке?
Обновление:
Я изменил полномочия в application.properties на https://login.microsoftonline.com/common, поэтому теперь я получаю сообщение «Выбрать аккаунт ». Но когда я выбираю учетную запись, я получаю ошибку 403 Forbidden.
Ошибка 403 Forbidden была проблемой в учебнике, который вы следовали. Из-за обновлений одного и того же сайта в некоторых браузерах response_mode должен быть query (вместо form_post). Если вы попытаетесь запустить образец снова, он должен работать
Скопируйте решение в комментариях, упомянутых juunas:
Просто используйте « common », если приложение является мультитенантным https://login.microsoftonline.com/common/oauth2/v2.0/authorize
https://login.microsoftonline.com/common/oauth2/v2.0/authorize