Я пытаюсь создать проект, который использует Azure AD для SSO-аутентификации. Лазерная сторона приложения была настроена, и я смог настроить проверку подлинности SAML, используя следующий код:
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = adfsMetadata
});
Сконфигурированный таким образом сайт работает нормально для веб-страниц, но мне также нужно иметь возможность вызывать вызовы API, которые вызываются из собственного клиента. Я хотел бы использовать JWT для аутентификации собственных приложений и нашел документацию о том, как настроить отдельное собственное приложение, которое обслуживает JWT. Я нашел инструкции по использованию Добавить подключенную службу для добавления аутентификации на пустой сайт здесь , и, похоже, я настроил сайт для использования OpenId со следующим кодом в моем файле Startup.Auth.cs. создаваемый файл:
IdentityModelEventSource.ShowPII = true;
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = Authority,
PostLogoutRedirectUri = postLogoutRedirectUri
});
К сожалению, когда я запускаю недавно настроенный пустой сайт, я получаю следующую ошибку:
IDX10501: Ошибка проверки подписи. Невозможно сопоставить ключи:
'Vxa8HJ8gNB1XfxYnIDHBl2YuSFc', токен:
{ "Тип": "JWT", "ALG": "RS256", "x5t": "Vxa8HJ8gNB1XfxYnIDHBl2YuSFc", "ребенок": "Vxa8HJ8gNB1XfxYnIDHBl2YuSFc"} { "ауд":. "C13f71a0-e658-4432-a61e-24140f2b5890 " "ИСС":" https://sts.windows.net/8948afa6-51e3-4041-8303-5688ba9c8135/","iat":1542235664,"nbf":1542235664,"exp":1542239564,"aio":"ASQA2/8JAAAA6+NtWgTWs4mQi7gcoqDJMWDjmQtgxL79oC3U112+XjI=",...
Я посмотрел метаданные OpenId для моего приложения, и ключа Vxa8HJ8gNB1XfxYnIDHBl2YuSFc там нигде нет. Есть что-то простое, что я пропустил?
Редактировать
Похоже, что права доступа, которые были настроены, были
https://login.microsoftonline.com/{tenant}