У меня есть функция Azure, разработанная с использованием Powershell Core 6 и защищенная включением Azure AD аутентификации. Если анонимный запрос выполняется путем выполнения GET через браузер, пользователь сначала перенаправляется на вход Azure AD, а затем перенаправляется на мою функцию Azure.
Now, in the Powershell function, I need to know which has user logged in which is usually found in the ClaimsPrincipal
as indicated here:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook-trigger?tabs=csharp
Но httpRequest.Context.User
имеет значение null, когда я обращаюсь к нему через powershell. Ниже приведен код моей функции:
using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
$body = @{
Context = $Request.Context;
HttpContext = $Request.HTTP.Context;
Request = $Request;
}
# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $body
})
Он в основном возвращает все в попытке найти User's Identity
Где я могу найти идентификатор пользователя?
Я не хочу использовать эти заголовки, потому что ими можно легко манипулировать, чтобы API продолжал работать.
$Request.Headers['X-MS-CLIENT-PRINCIPAL-NAME']
$Request.Headers['X-MS-CLIENT-PRINCIPAL-ID']