Я пытаюсь внедрить проверку подлинности Firebase в моем приложении Android для своей организации.У каждого сотрудника есть учетная запись Microsoft, поэтому я хочу использовать этот адрес электронной почты / пароль для входа в свое приложение.
Я включил эту опцию в консоли Firebase и заполнил данные информацией о приложении Azure AD, которое я создал:
Приложение Azure AD имеет разрешение на вход в систему пользователей и чтение их профиля.
Мне удалось заставить его работать до того момента, когда пользователи создаются на моей консоли Firebase.
Нов моем приложении для Android после записи учетных данных появляется это сообщение об ошибке.
У нас возникают проблемы при входе в систему. AADSTS900561: Конечная точка принимает только запросы POST.Получен запрос GET.
Код 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Приложение:
РЕДАКТ. 2: Поддерживаемый тип учетной записи установлен для всех учетных записей.(Это по-испански извините, там написано, что я могу отредактировать манифест для изменения конфигурации)
Манифест выглядит так:
{
"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
, но он тоже не работал.