0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IAPを有効化したCloud Run へ curl でアクセスする

Posted at

はじめに

実際の動作確認時などを想定して、以下で有効化したIAPにGUIだけでなく、curlでアクセスしてみました。

手順

作業するサービスアカウントを作る

  • 対象のサービスアカウントを作ります。
  • Roleは「IAP-secured Web App User」を付与します。
  • サービスアカウントのキーは実施端末に配置します。

アクティベートする

  • 以下コマンドでサービスアカウントのアクティベートをする
gcloud auth activate-service-account \
    サービスアカウントメアド \
    --key-file "jsonファイルの置き場" \
    --project 対象プロジェクト名

アクセスする

  • IAPの対象OAuth構成のクライアントIDはIAPの画面から確認する
    以下の右側のところに表示されます(セキュリティの都合上表示していません)。
    スクリーンショット 2022-09-09 13.55.37.png

  • 事前に認証で利用するトークン情報を取得する
    上記で取得した値を利用してトークン情報を取得する

TOKEN=`gcloud auth print-identity-token --audiences=IAPの対象OAuth構成のクライアントID`

※audiencesの「IAPの対象OAuth構成のクライアントID」の値はダブルクオーテーションでくくらない

  • 対象コンテンツへアクセスする
    上記のトークンを利用して対象コンテンツへアクセスする(※FQDNについてはアクセスしたいFQDNを入れてください)。
curl -H "Authorization: Bearer $TOKEN" -X 'GET' https://FQDN -H 'accept: application/json' -H 'Content-Type: application/json'
  • 結果(想定したページが表示されました)
<html>
<body>
cloudrun no test dayo --- !!!!
</body>

所感

以下のような部分が実施時にでてしまいましたが、コマンドラインからもIAPのページへアクセスできることがわかりました。

  • curlでのアクセス時にGETではなくPOSTで行いmethodが無いとでた
  • トークン取得時に「audiences」の値をダブルクオーテーションでくくって、クライアントIDが一致しないとでた
  • トークン取得せずにアクセスするとそもそもコンテンツの内容が表示されなかった

はじめにでご案内した自身が記載した記事にも書いてますがまだCloudRunのIAPはPreviewですので注意ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?