IAP の再認証を使用すると、リソース所有者や Google Cloud 管理者は、IAP で保護されたリソースへのアクセス時に指定された時間が経過すると、認証済みのエンドユーザーの再認証を義務付けることができます。これにより、IAP で保護されたリソースにアクセスするユーザーは、セッションの開始時に最初に認証されたユーザーになります。
サポートされている再認証方法
再認証の設定は、次の方法で管理できます。
- ログイン: IAP は保護されたアプリケーションの再認証を強制するため、ユーザーは再度ログインする必要があります。
- 安全なキー: エンドユーザーは、構成されたセキュリティ キーベースの 2 要素認証を使用して再認証する必要があります。
詳しくは、IapSettings をご覧ください。
再認証ポリシーを設定する
ReauthSettings
は IapSettings
の一部であるため、階層内の複数のリソースタイプに設定できます。他の IAP 設定では階層内の最下位のリソースが優先されますが、有効な再認証の設定はポリシータイプによっても異なります。
再認証の設定に使用できるポリシータイプは 2 つあります。
- 最小: ポリシーは、階層の下の他のすべてのリソースに対する最小値として機能します。有効なポリシーは、これと同じか、それ以上に厳格に設定できます。
- デフォルト: リソースに他のポリシーが設定されていない場合、設定した再認証ポリシーが有効なポリシーとなります。
ポリシータイプ構成を使用して、ポリシータイプを Minimum
に設定することで、組織全体またはフォルダのポリシーを設定できます。
再認証方法が異なる階層構成の場合、Secure Key
を Login
メソッドに変換します。
次のフォルダとリソースの IapSettings
の例では、フォルダ ポリシーはより厳格であり、優先されるポリシーであるため、有効な再認証ポリシーはフォルダ ポリシーと一致します。
フォルダIapSettings
:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
リソースIapSettings
:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "7200s"
policyType: "MINIMUM"
MaxAge
MaxAge パラメータを使用して、エンドユーザーが再認証を行う頻度を秒単位で指定します。たとえば、1 時間の再認証ポリシーを設定するには、次の例のように秒単位を 3600 に設定します。
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
maxAge
の最小値は 5 分です。
再認証ポリシーを設定するには、次の手順を行います。
コンソール
- [Identity-Aware Proxy] ページに移動します。
[Identity-Aware Proxy] ページに移動 プロジェクトを選択し、再認証ポリシーを設定するリソースを選択します。
リソースの [設定] を開き、[再認証ポリシー] で [再認証を構成する] を選択します。
再認証の設定を指定し、[保存] をクリックします。
gcloud
組織レベル、プロジェクト レベル、フォルダレベルで、リソースとサービスに対して再認証ポリシーを設定できます。再認証ポリシーを設定するコマンドの例は次のとおりです。
詳細については、gcloud iap settings set
をご覧ください。
次のコマンドを実行します。
gcloud iap settings set SETTING_FILE [--folder=FOLDER --organization=ORGANIZATION --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
組織内のリソースに再認証ポリシーを設定するには、次のコマンドを実行します。
gcloud iap settings set SETTING_FILE --organization=ORGANIZATION
フォルダ内のリソースに再認証ポリシーを設定するには、次のコマンドを実行します。
gcloud iap settings set SETTING_FILE --folder=FOLDER
プロジェクト内のすべてのウェブタイプ リソースに再認証ポリシーを設定するには、次のコマンドを実行します。
gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap-web
プロジェクト内の App Engine サービスに再認証ポリシーを設定するには、次のコマンドを実行します。
gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=app-engine --service=SERVICE
ここで、SETTING_FILE
は次のようになります。
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
次のように置き換えます。
- FOLDER: フォルダ ID。
- ORGANIZATION: 組織 ID。
- PROJECT: プロジェクト ID。
- RESOURCE_TYPE: IAP のリソースタイプ。
app-engine
、iap_web
、compute
、organization
、またはfolder
にする必要があります。 - SERVICE: サービス名。
resource-type
がcompute
またはapp-engine
の場合、これは省略可能です。 - VERSION: バージョン名。これは
compute
には適用されず、resource-type
がapp-engine
の場合は省略可能です。
再認証の認証情報について
再認証に成功すると、IAP はエンドユーザーのブラウザに Cookie を作成します。類似したアプリの使用時に頻繁に再認証が行われないようにするため、Cookie は最上位のプライベート ドメインに設定され、そのプライベート ドメイン全体で有効になります。
たとえば、foo.example.com
は IAP で保護されたリソースで、IAP 再認証ポリシーを持ちます。再認証に成功すると、IAP は、最上位のプライベート ドメインである example.com
に Cookie を設定します。bar.example.come
などの同じ最上位のプライベート ドメインのアプリは、同じ再認証の認証情報を使用します。認証情報が有効であれば、ユーザーに再認証を求めるメッセージは表示されません。
myapp.appspot.com
のような URL の場合、appspot.com
はパブリック ドメインであるため、最上位のプライベート ドメインは myapp.appspot.com
になります。
既知の制限事項
- 再認証はブラウザフローでのみサポートされています。プログラムによるユーザー アカウントへのアクセスはサポートされていません。たとえば、モバイルアプリやデスクトップ アプリでは、再認証を必要とするリソースにアクセスできないため、ユーザーを再認証する方法はありません。
- サービス アカウントと IAP-TCP は、再認証の要件から除外されます。
- 再認証は、IAM メンバータイプ
allUsers
では機能しません。 - Google 以外の ID プロバイダを使用している場合は、再認証が想定どおりに機能しない可能性があります。
- 再認証を必要とするリソースにアクセスできないため、再認証では Identity Platform を介した外部 ID はサポートされていません。