Аутентификация Firebase с ошибкой Microsoft - PullRequest
1 голос
/ 02 апреля 2019

Я пытаюсь внедрить проверку подлинности Firebase в моем приложении Android для своей организации.У каждого сотрудника есть учетная запись Microsoft, поэтому я хочу использовать этот адрес электронной почты / пароль для входа в свое приложение.

Я включил эту опцию в консоли Firebase и заполнил данные информацией о приложении Azure AD, которое я создал:

enter image description here

Приложение Azure AD имеет разрешение на вход в систему пользователей и чтение их профиля.

enter image description here

Мне удалось заставить его работать до того момента, когда пользователи создаются на моей консоли Firebase.

enter image description here

Нов моем приложении для Android после записи учетных данных появляется это сообщение об ошибке.

У нас возникают проблемы при входе в систему. AADSTS900561: Конечная точка принимает только запросы POST.Получен запрос GET.

enter image description here

Код Android - это пример кода, который Firebase предоставляет.

OAuthProvider.Builder provider = OAuthProvider.newBuilder("microsoft.com");

Task < AuthResult > pendingResultTask = mAuth.getPendingAuthResult();
if (pendingResultTask != null) {
    pendingResultTask.addOnSuccessListener(new OnSuccessListener < AuthResult >
        () {
            @Override
            public void onSuccess(AuthResult authResult) {
                Log.e("PROFILE", authResult.getAdditionalUserInfo()
                    .getProfile().toString());
            }
        }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.e("FAIL", "ERROR LOGIN");
        }
    });
} else {
    mAuth.startActivityForSignInWithProvider(Login.this, provider.build())
        .addOnSuccessListener(new OnSuccessListener < AuthResult > () {
            @Override
            public void onSuccess(AuthResult authResult) {
                Log.e("PROFILE", authResult.getAdditionalUserInfo()
                    .getProfile().toString());
                Log.w("USERNAME", authResult.getUser()
                    .getDisplayName());

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.e("FAIL", "ERROR LOGIN: " + e);
            }
        });
}

The PROFILE logline печатается и в Android Studio нет ошибок.Кроме того, если пользователь создается в Firebase ... Я не знаю, что является причиной того, что процесс входа не завершен.

РЕДАКТИРОВАТЬ: Это моя конфигурация URI перенаправления в Azure ADПриложение:

enter image description here

РЕДАКТ. 2: Поддерживаемый тип учетной записи установлен для всех учетных записей.(Это по-испански извините, там написано, что я могу отредактировать манифест для изменения конфигурации)

enter image description here

Манифест выглядит так:

{
  "id": "******************************",
  "acceptMappedClaims": null,
  "accessTokenAcceptedVersion": 2,
  "allowPublicClient": null,
  "appId": "***************************",
  "appRoles": [],
  "oauth2AllowUrlPathMatching": false,
  "createdDateTime": "2019-04-02T09:53:53Z",
  "groupMembershipClaims": null,
  "identifierUris": ["api://****************************"],
  "informationalUrls": {
    "termsOfService": null,
    "support": null,
    "privacy": null,
    "marketing": null
  },
  "keyCredentials": [],
  "knownClientApplications": [],
  "logoUrl": null,
  "logoutUrl": null,
  "name": "App name",
  "oauth2AllowIdTokenImplicitFlow": true,
  "oauth2AllowImplicitFlow": true,
  "oauth2Permissions": [],
  "oauth2RequirePostResponse": false,
  "optionalClaims": null,
  "orgRestrictions": [],
  "parentalControlSettings": {
    "countriesBlockedForMinors": [],
    "legalAgeGroupRule": "Allow"
  },
  "passwordCredentials": [
    {
      "customKeyIdentifier": null,
      "endDate": "2099-12-31T12:00:00Z",
      "keyId": "***************************",
      "startDate": "2019-04-02T09:55:10.2084897Z",
      "value": null,
      "createdOn": "2019-04-02T09:55:14.432352Z",
      "hint": "gGL",
      "displayName": null
    }
  ],
  "preAuthorizedApplications": [],
  "publisherDomain": "domain.com",
  "replyUrlsWithType": [
    {
      "url": "https://***********.firebaseapp.com/__/auth/handler",
      "type": "Web"
    },
    {
      "url": "https://login.live.com/oauth20_desktop.srf",
      "type": "InstalledClient"
    },
    {
      "url": "urn:ietf:wg:oauth:2.0:oob",
      "type": "InstalledClient"
    },
    {
      "url": "https://login.microsoftonline.com/common/oauth2/nativeclient",
      "type": "InstalledClient"
    },
    {
      "url": "msalececeef1-*****************://auth",
      "type": "InstalledClient"
    }
  ],
  "requiredResourceAccess": [
    {
      "resourceAppId": "*************************",
      "resourceAccess": [
        {
          "id": "***********************",
          "type": "Scope"
        }
      ]
    }
  ],
  "samlMetadataUrl": null,
  "signInUrl": null,
  "signInAudience": "AzureADandPersonalMicrosoftAccount",
  "tags": [],
  "tokenEncryptionKeyId": null
}

Я пытался изменить "oauth2RequirePostResponse": false на true, но он тоже не работал.

...