Использование Google IAP через пользовательский домен в App Engine - PullRequest
1 голос
/ 06 февраля 2020

Включение настраиваемого домена в службе App Engine теперь очень просто, поэтому включается IAP (Google Identity-Aware Proxy) ? Но я не могу понять, как получить IAP и мой пользовательский домен для совместной работы!

  1. и https://myservice-dot-myapplication.appspot.com, и https://myservice.mydomain.com вызывают экран согласия IAP, где я могу войти через соответствующего пользователя (как настроено в роли / члене IAP)
  2. https://myservice-dot-myapplication.appspot.com позволит мне увидеть мое приложение после входа в систему
  3. https://myservice.mydomain.com будет постоянно отказывать мне в доступе с сообщением You don't have access, как если бы я входил через учетную запись Gmail, которая не авторизована IAP конфигурация

Если я отключу IAP, я могу go через оба домена (без проверки подлинности, что нежелательно) и подтвердить, что пользовательский домен действительно работает с соответствующим и автоматически сгенерированным сертификат. Такое ощущение, что я пропустил опцию в IAP для настройки псевдонима домена или чего-то подобного, но я не могу найти эту опцию.

Что я пропустил? Или просто невозможно заставить IAP работать с настраиваемым доменом в данный момент? Спасибо за вашу помощь! 10

Примечание: доменные имена были изменены, чтобы защитить невинных.

Ответы [ 2 ]

2 голосов
/ 09 февраля 2020

Если вы используете автоматизированное c управление сертификатами, вполне вероятно, что https://myservice.mydomain.com на самом деле не маршрутизирует к ожидаемой вами услуге.

Пользовательские сопоставления доменов всегда направляются к сервис по умолчанию по умолчанию. Домен подстановочного знака может автоматически маршрутизировать другие версии или службы, если они соответствуют части сопоставления «*» (см. https://cloud.google.com/appengine/docs/standard/nodejs/mapping-custom-domains#wildcard_mappings). К сожалению, автоматическое c управление сертификатами еще не поддерживается для доменов с подстановочными знаками.

Пока у вас нет слишком большого количества служб для маршрутизации, есть способ использовать управляемые сертификаты и по-прежнему маршрутизировать на несколько services:

  • Добавьте настраиваемую запись имени домена для каждого субдомена, который вы хотите использовать
  • Добавьте правило отправки в dispatch.yaml, которое сопоставляет каждый субдомен с правильным сервисом (см. документацию здесь : https://cloud.google.com/appengine/docs/standard/nodejs/reference/dispatch-yaml)
2 голосов
/ 08 февраля 2020

Редактировать: команда App Engine подозревает, что { ссылка } на самом деле происходит здесь, и что пользовательские домены не подвержены этой проблеме IAP.

Похоже, существует проблема, при которой App Engine не передает идентификатор службы в IAP при некоторых обстоятельствах. Похоже, что по крайней мере некоторые использования пользовательских доменов могут вызвать это. В качестве обходного пути вы можете предоставить доступ ко всему приложению, а не к определенной c службе. Я сообщу команде, что мы нашли еще один случай, который вызывает это, ранее я видел его только с приложением App Engine за IAP, подписавшимся на Cloud Pub / Sub topi c.

(Я не знаю, используется ли все пользовательских доменов, которые встречаются с этой ошибкой, или есть что-то еще здесь. App Engine Standard v. Гибкая среда, вероятно, также имеет значение.)

...