Интеграция ASP.Net Azure OpenId - PullRequest
       0

Интеграция ASP.Net Azure OpenId

0 голосов
/ 15 ноября 2018

Я пытаюсь создать проект, который использует 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}

1 Ответ

0 голосов
/ 27 ноября 2018

Я открыл дело с Microsoft, и один из их разработчиков помог обнаружить, что проблема была в приложениях OpenId и Enterprise.Когда я создал не корпоративное приложение (Web / API), я смог заставить веб-сайт правильно проходить аутентификацию.Я проверил это, создав приложение предприятия с нуля и сравнив поведение браузера между приложением Web / API и приложением Enterprise.Проблема обнаруживается только для корпоративного приложения.Я не уверен, в чем разница, но это на стороне Microsoft.Кроме того, он отображается только для OpenId.Я смог заставить его работать с SAML, как я упоминал выше.Мне не ясно, в чем различие между приложением Web / API и приложением Enterprise.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...