Мы нашли эту запись в блоге на Cloud Identity, чтобы быть действительно полезной, чтобы начать с чего-то подобного. Мы используем Web API, так что это не совсем то же самое.
Вам нужно будет добавить это в файл Startup.Auth.cs:
app.UseActiveDirectoryFederationServicesBearerAuthentication(
new ActiveDirectoryFederationServicesBearerAuthenticationOptions
{
Audience = ConfigurationManager.AppSettings["ida:Audience"],
MetadataEndpoint = ConfigurationManager.AppSettings["ida:MetadataEndpoint"]
});
В вашем web.config вам нужно указать ключи к этим записям:
<add key="ida:AdfsMetadataEndpoint" value="https://adfs.yourdomain.com/federationmetadata/2007-06/federationmetadata.xml" />
<add key="ida:Audience" value="https://yourmvc.yourdomain.com" />
Обратите внимание, что какая версия ADFS, которую вы используете, имеет большое значение. Мы обнаружили, что, пытаясь получить токены для работы с версией 3.0 ADFS, они в настоящее время несколько нарушены. В помещениях ADFS также будет работать намного иначе, чем Azure.
Нам нужно было настроить требования к нашей реализации, а сообщение this очень помогло. Startup.Auth.cs будет выглядеть примерно так:
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = ConfigurationManager.AppSettings["ida:Audience"],
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
Provider = new OAuthBearerAuthenticationProvider()
{
OnValidateIdentity = async context =>
{
context.Ticket.Identity.AddClaim(
new Claim(http://mycustomclaims/hairlenght,
RetrieveHairLenght(userID),
ClaimValueTypes.Double,
"LOCAL AUTHORITY");));
}
}
});
Спасибо за это. Я получил эту работу, используя ваш пример и ссылку Cloud Identity. – Lee