Как совместить AD B2 C (MSAL) и CosmosDB - PullRequest
2 голосов
/ 10 февраля 2020

Я использую аутентификацию и данные appcenter в своем приложении Xamarin Form, но Microsoft закрывает эти сервисы, поэтому мне теперь нужно сделать это самому. Atm эти два позволили мне проверить моих пользователей с помощью ADB2 C и затем предоставить им доступ к собственному и общему контенту в базе данных Cosmos.

Что у меня есть atm: я могу войти через MSAL в AD B2 C. Я могу получить доступ к моей БД с помощью Microsoft. Azure .DocumentDB.Core.

Что мне нужно, так это то, что мне нужно: мне нужно иметь возможность сгенерировать токен Ressource и настроить базу данных так, чтобы только пользователь мог получить доступ к их документам. ( Найдены только устаревшие и плохо описанные учебные пособия)

Или как альтернатива: Как можно создать Azure функции, которые может вызывать только пользователь, вошедший в систему через msal? И тогда мне понадобится идентификатор пользователя в функции Azure для проверки по БД. (Все учебные пособия обрабатывают проверку пользователя при вызове API, это невозможно при вызове из приложения)

1 Ответ

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

Вы не можете использовать выданный AAD B2 C пользовательский токен для доступа к ресурсу Cosmos DB.

Попробуйте эту ссылку - вам нужно будет передать токен B2 C в защищенный AAD B2 C API, который затем выполняет вызов API от имени пользователя, используя client_credentials (учетная запись службы AAD).
https://codemilltech.com/adding-azure-ad-b2c-authentication-to-azure-functions/

...