Для входа в это приложение необходимо добавить учетную запись в каталог <TenantID> - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь пройти проверку подлинности, приложение и получить токен на предъявителя для дальнейшего использования.Я получаю ошибку, которая является заголовком этой темы.

Другой поток описывает то же самое, за исключением того, что мой код на Java.Обходной путь должен использовать метод сертификата. "Чтобы войти в это приложение, учетная запись должна быть добавлена ​​в каталог domain.com"

Может кто-нибудь описать подробные шаги для этого обходного пути: - метод сертификата или как я могу исправить нижекод с помощью любого другого метода или любой другой метод для достижения этой цели

Вот мой код

private final static String AUTHORITY = "https://login.microsoftonline.com/<tenantId>/OAuth2/Authorize";
private final static String CLIENT_ID = "<Client_Id>";
private final static String CLIENT_SECRET = "<Secret>";

public static void main(String args[]) throws Exception {

    try (BufferedReader br = new BufferedReader(new InputStreamReader(
            System.in))) {

        String username = CLIENT_ID;
        String password = CLIENT_SECRET;

        service = Executors.newFixedThreadPool(1);

        context = new AuthenticationContext(AUTHORITY, false, service);
        Future<AuthenticationResult> future = context.acquireToken(
                "https://graph.microsoft.com", CLIENT_ID, username, password,
                null);
        result = future.get();

    }
    finally {
        service.shutdown();
    }

}

Я зарегистрировал свое приложение в регистрации приложения AAD,Client_Id - это идентификатор приложения, а Secret - это ключ в приведенном выше коде

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Если вы хотите, чтобы код работал в текущей форме без каких-либо обходных путей, проверьте следующее:

  1. Убедитесь, что у вас есть правильный идентификатор GUID tenantId указано в первой строке кода.

    Шаги для получения tenantid -

    Войдите на портал Azure, перейдите к Azure AD, перейдите к свойствам, как на скриншоте ниже, и идентификатор каталога должен датьВы ГИД.

enter image description here

 private final static String AUTHORITY = "https://login.microsoftonline.com/<tenantId>/OAuth2/Authorize";

Убедитесь, что используемое имя пользователя предназначено для пользователя, принадлежащего вашему клиенту AzureAD.

Одной из возможных причин может быть использование учетной записи Microsoft, например xyz@outlook.com, hotmail.com и т. Д. Попробуйте использовать учетную запись, созданную в этом Azure AD, например xyz@yourtenantdomain.onmicrosoft.com.или любой другой подтвержденный домен, который использует ваш арендатор.

Future<AuthenticationResult> future = context.acquireToken("https://graph.microsoft.com", CLIENT_ID, username, password, null);

0 голосов
/ 03 октября 2018

Если вы хотите использовать учетные данные сертификата для аутентификации вашего приложения, вы можете обратиться к этой статье .

Steps :

1. Загрузка файла сертификата

2. Обновление манифеста приложения

Пример кода (он использует C #, вы можете обратиться): Аутентификация в Azure AD в приложениях демона с сертификатами

Также показано, как можно создать самозаверяющий сертификат с помощью команды New-SelfSignedCertificate Powershell.Вы также можете воспользоваться преимуществами сценариев создания приложений для создания сертификатов, вычисления отпечатка и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...