Azure B2 C: Microsoft Graph API - InvalidAuthenticationToken - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь вызвать /me в Microsoft Graph API после входа в Azure B2 C Active Directory из iOS.

Использование примера приложения по адресу: https://github.com/Azure-Samples/active-directory-b2c-ios-swift-native-msa Я заменил константы так, чтобы регистрация и вход работали. Я установил kGraphURI на https://graph.microsoft.com/v1.0/me. Код выглядит следующим образом:

let kTenantName = "mytenant.onmicrosoft.com"
let kAuthorityHostName = "mytenant.b2clogin.com"
let kClientID = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
let kSignupOrSigninPolicy = "B2C_1A_signup_signin"
let kGraphURI = "https://graph.microsoft.com/v1.0/me"
let kScopes: [String] = ["https://mytenant.onmicrosoft.com/api/user_impersonation"]

Значение для kScopes установлено на единственный API, который доступно моему приложению, который был создан как часть инструкций по настройке пользовательских политик.

Когда я пытаюсь позвонить https://graph.microsoft.com/v1.0/me, я получаю обратно:

{"error": {"code": "InvalidAuthenticationToken", "message": "Ошибка проверки токена доступа.", " innerError ": {" request-id ":" e923673f-25cb-44be-b3b9-94eda660d4f6 "," date ":" 2020-02-11T08: 31: 24 "}}}

Если Я пытаюсь установить kScopes в https://graph.microsoft.com/User.Read Я получаю сообщение об ошибке:

Не удалось получить токен: Ошибка домена = Код MSALErrorDomain = -50000 "(null)" UserInfo = {MSALErrorDescriptionKey = Ответ аутентификации получено без ожидаемого accessToken, MSALInternalErrorCodeKey = -42008, MSALCorrelationIDKey = FFCCD1D4-F0C8-46E6-85B2-A5642F1D4E1D}

Как вызвать /me API Microsoft Graph с доступом к API с 1035 * доступом к графическому API с доступом к B2 C Active Directory?

1 Ответ

3 голосов
/ 11 февраля 2020

Нельзя использовать выданные Azure AD B2 C токены доступа для вызова Azure AD или Microsoft Graph API. Вам необходимо, чтобы пользователь вызывал ваш API, а вашему API нужно использовать client_credentials для получения токена для Graph API с использованием конечной точки токена Azure AD в каталоге B2 C. Затем API может запросить Graph API для пользователя и вернуть результат.

Azure AD B2 C токены доступа могут использоваться только для доступа к вашим собственным защищенным ресурсам.

...