Должен ли я явно не использовать стандартный URL-адрес с аутентификацией MSAL?

Вся документация MSAL требует, чтобы я использовал префикс, такой как msalGUID:/// при аутентификации обратно на локальное устройство.

Тогда есть странный URL urn:ietf:wg:oauth:2.0:oob это появляется по умолчанию на портале MSAL.

Так как каждый URL-адрес, который я перечисляю, по сути является бэкдором в моем приложении, я хочу понять преимущества безопасности каждого варианта.

  • Почему я должен использовать документально msalGUID:// схема?
  • Не следует ли использовать универсальную ссылку на iOS / полный URL-адрес iOS?
  • В чем выгода urn:ietf:wg:oauth:2.0:oob, а также https://login.live.com/oauth20_desktop.srf?
  • Что я должен знать о взаимодействии с Microsoft Authenticator, что, вероятно, зависит от этого?

1 ответ

Решение

Фон

Существует несколько векторов атак и юзабилити, которые учитываются при рассмотрении URI перенаправления, которое будет использовать ваше приложение.

Во-первых, будет ли ваше приложение регистрировать пользователей из агента авторизации, который не помещен в изолированную программную среду вашего приложения. Если вы используете MSAL, то ответ почти всегда да (если вы явно не решили использовать в приложении WebViews).

Случаи для рассмотрения

Если это так, то вам нужно рассмотреть два случая: случайные коллизии перенаправления URI (проблема с удобством использования) и вредоносные приложения, намеренно пытающиеся перехватить пользователя, перенаправляемого обратно в ваше приложение (проблема безопасности).

Случай 1: Наивные приложения

Для решения первой MSAL выбрала msal<ClientID>://auth как это уникально для каждой регистрации приложения. В этом формате много случайности (которая теряется при urn:ietf:wg:oauth:2.0:oob), который предотвращает сценарий, в котором несколько приложений на устройстве прослушивают один и тот же URI и "случайно" получают ответ. Для пользователя это крайне разочаровывает и может повлиять на их опыт работы с приложением. Чтобы обобщить рекомендации по решению этой проблемы, используйте очень случайный URI, который позволяет избежать случайного столкновения с другими приложениями.

Случай 2: вредоносные приложения

Чтобы решить эту проблему, MSAL реализует протокол Proof Key for Code Exchange (PKCE), чтобы устранить этот вектор атаки. Чтобы расширить этот сценарий, он аналогичен приведенному выше сценарию, за исключением того, что приложение намеренно захватило ответ и намеревается обменяться кодом авторизации от вашего имени. С PKCE только приложение, которое инициировало запрос, может обмениваться кодом авторизации.

Обобщающие ответы

Чтобы быстро ответить на ваши пули, 1. Покрытые выше. 2. Если вы знакомы с универсальными ссылками и с тем, как настроить необходимые шаги, это может быть хорошим вариантом для проверки того, что регистрация вашего приложения используется только вами. 3. Они предназначены для приложений, использующих веб-представления внутри приложения, где существуют более строгие гарантии безопасности, связанные с тем, что оно не покидает приложение. 4. В настоящее время MSAL не интегрируется в Authenticator для выполнения запросов аутентификации. Когда это произойдет, приложения, вероятно, должны будут выполнить расширенную регистрацию, связанную с перенаправлением URI, аналогичную требованиям ADAL.

Другие вопросы по тегам