Owin AAD - обязательные параметры для проверки подписи
Я играю с webapi и пытаюсь настроить конфигурацию приложения для правильной проверки подписи вWindowsAzureActiveDirectoryBearerAuthenticationOptions
Я заметил, что поле MetadataAddress не используется в нескольких онлайн-примерах и в образцах аутентификации AAD: https://github.com/AzureADSamples/NativeClient-WebAPI-MultiTenant-WindowsStore/blob/master/TodoListServiceMT/App_Start/Startup.Auth.cs
Когда я запускал приложение, я заметил, что при запуске приложения появляется запрос к https://login.windows.net/common/federationmetadata/2007-06/federationmetadata.xml хотя это поле не задано. Это значение по умолчанию для MetadataAddress?
- Как работает проверка подписи, даже если адрес sts отличается в токене?
- Как обрабатывается проверка в случае пользовательского сервиса sts?
1 ответ
Переданный в параметре параметр tenant достаточен для промежуточного программного обеспечения, чтобы определить местоположение документа метаданных соответствующего клиента Azure AD. Как вы заметили, в случае приложений с несколькими арендаторами это значение является обычным. В примере с несколькими арендаторами вы можете видеть, что есть пользовательская логика, которая берет на себя проверку эмитента (то, что вы назвали "адресом sts" - это скорее идентификатор). Как вы видите в файле, который вы связали, параметры отключают проверку эмитента с помощью переключателя. ValidateIssuer = false
, Если вы посмотрите на https://github.com/AzureADSamples/NativeClient-WebAPI-MultiTenant-WindowsStore/blob/master/TodoListServiceMT/AuthorizationFilters/MTAuthorizeAttribute.cs, вы увидите, что он выполняет логику, предназначенную для сравнения эмитента в входящий токен со списком доверенных эмитентов. Ваше собственное приложение может иметь другую бизнес-логику для определения того, следует ли доверять источнику входящего токена.