Kubernetesnginx入力+ oauth2外部認証のタイムアウト

スティーブンミラー

Azure ADを外部認証プロバイダーとして使用して、oauth2_proxyでサービスのステータスページを保護しようとしています。現在、アプリのパブリックURL(https://sub.domain.com/service/hangfireを参照すると、504ゲートウェイのタイムアウトが発生し、認証するように指示されます。

私はほとんど参照のためにこのガイドに従っていました:https//msazure.club/protect-kubernetes-webapps-with-azure-active-directory-aad-authentication/

認証を指示する注釈を無効にすると、問題なく公開ステータスページにアクセスできます。私はを参照している場合https://sub.domain.com/oauth2、私は私が期待する私のプロバイダとの認証にプロンプトを取得します。問題が入力設定のどこにあるのかわかりませんが、このオンライン、stackoverflowなどに類似したケースを見つけることができませんでした。

この場合、すべて(oauthデプロイメント、サービス、および入力ルール)は、独自の名前空間に存在する実際の入力デプロイメントを除いて、「dev」名前空間に存在します。これが違いを生むとは思わないが、SSLターミネーションはクラスター外のゲートウェイによって処理される。

oauth2のデプロイ:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: oauth2-proxy
spec:
  replicas: 1
  selector:
    matchLabels:
      app: oauth2-proxy
  template:
    metadata:
      labels:
        app: oauth2-proxy
    spec:
      containers:
      - name: oauth2-proxy
        image: quay.io/pusher/oauth2_proxy:v3.2.0
        imagePullPolicy: IfNotPresent
        args:
        - --provider=azure
        - --email-domain=domain.com
        - --upstream=http://servicename
        - --http-address=0.0.0.0:4180
        - --azure-tenant=id
        - --client-id=id
        - --client-secret=number
        env:
         - name: OAUTH2_PROXY_COOKIE_SECRET
           value: secret
        ports:
         - containerPort: 4180
           protocol : TCP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: oauth2-proxy
  name: oauth2-proxy
spec:
  ports:
  - name: http
    port: 4180
    protocol: TCP
    targetPort: 4180
  selector:
    app: oauth2-proxy 

入力ルール:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: service-ingress1
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/auth-url: https://sub.domain.com/oauth2/auth"
    nginx.ingress.kubernetes.io/auth-signin: https://sub.domain.com/oauth2/start?rd=$https://sub.domain.com/service/hangfire"
spec:
  rules:
  - host: sub.domain.com       
    http:
      paths:
      - path: /service/hangfire
        backend:
          serviceName: service
          servicePort: 80                    
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: service-oauth2-proxy
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: sub.domain.com      
    http:
      paths:
      - path: /oauth2
        backend:
          serviceName: oauth2-proxy
          servicePort: 4180           

URLを参照すると504エラーが発生しますが、入力ポッドにエラーは表示されません。

スティーブンミラー

私はここで解決策を見つけることになりました:https//github.com/helm/charts/issues/5958

auth-urlには内部サービスアドレスを使用する必要がありましたが、これは他のどこにも言及されていませんでした。

nginx.ingress.kubernetes.io/auth-url: http://oauth2-proxy.development.svc.cluster.local:4180/oauth2/auth

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Kubernetesnginx入力ルートパス

分類Dev

kubernetesnginx入力ログに外部IPが表示されない

分類Dev

設定スニペットでのkubernetesnginx入力エラー

分類Dev

KubernetesNGINX入力のSSLリダイレクトを無効にする

分類Dev

kubernetesnginx入力コントローラー/静的アセットのキャッシュ

分類Dev

Kubernetesnginx入力rabbitmq管理とkibana

分類Dev

Kubernetesnginx-アプリケーションによって処理される入力入力コントローラーCORS

分類Dev

KubernetesNGINX入力コントローラーの背後にある相対URLを使用してウェブアプリをホストする

分類Dev

KubernetesNGINXリバースプロキシ入力コントローラーでのパスごとの書き換え

分類Dev

GKE入力タイムアウト値

分類Dev

GKE入力タイムアウト値

分類Dev

タイムアウト付きのキーボード入力?

分類Dev

GCEのKubernetes:入力タイムアウト設定

分類Dev

C ++でタイムアウト付きの入力

分類Dev

入力のタイムアウトを設定する方法

分類Dev

タイムアウト付きのユーザー入力

分類Dev

入力がタイムアウト付きのstdinで使用可能かどうかを確認します

分類Dev

タイムアウト後のPythonの期限切れ入力プロンプト

分類Dev

Javaでのタイムアウト付きのユーザー入力

分類Dev

C#AndroidTouchの入力抵抗またはタイムアウトの実装-Unity

分類Dev

基本認証ヘッダーまたはoauth2アクセストークンのいずれかを受け入れるエンドポイントをどのように作成しますか?

分類Dev

ANR入力がタイムアウトしました

分類Dev

ユーザー入力のタイムアウトを設定する

分類Dev

ユーザー入力のタイムアウトを設定する

分類Dev

clon後のリアルタイム入力入力

分類Dev

NativeScriptの入力

分類Dev

SqlDataAdapterの入力

分類Dev

入力の分割

分類Dev

.on(load)タイムアウトの挿入

Related 関連記事

  1. 1

    Kubernetesnginx入力ルートパス

  2. 2

    kubernetesnginx入力ログに外部IPが表示されない

  3. 3

    設定スニペットでのkubernetesnginx入力エラー

  4. 4

    KubernetesNGINX入力のSSLリダイレクトを無効にする

  5. 5

    kubernetesnginx入力コントローラー/静的アセットのキャッシュ

  6. 6

    Kubernetesnginx入力rabbitmq管理とkibana

  7. 7

    Kubernetesnginx-アプリケーションによって処理される入力入力コントローラーCORS

  8. 8

    KubernetesNGINX入力コントローラーの背後にある相対URLを使用してウェブアプリをホストする

  9. 9

    KubernetesNGINXリバースプロキシ入力コントローラーでのパスごとの書き換え

  10. 10

    GKE入力タイムアウト値

  11. 11

    GKE入力タイムアウト値

  12. 12

    タイムアウト付きのキーボード入力?

  13. 13

    GCEのKubernetes:入力タイムアウト設定

  14. 14

    C ++でタイムアウト付きの入力

  15. 15

    入力のタイムアウトを設定する方法

  16. 16

    タイムアウト付きのユーザー入力

  17. 17

    入力がタイムアウト付きのstdinで使用可能かどうかを確認します

  18. 18

    タイムアウト後のPythonの期限切れ入力プロンプト

  19. 19

    Javaでのタイムアウト付きのユーザー入力

  20. 20

    C#AndroidTouchの入力抵抗またはタイムアウトの実装-Unity

  21. 21

    基本認証ヘッダーまたはoauth2アクセストークンのいずれかを受け入れるエンドポイントをどのように作成しますか?

  22. 22

    ANR入力がタイムアウトしました

  23. 23

    ユーザー入力のタイムアウトを設定する

  24. 24

    ユーザー入力のタイムアウトを設定する

  25. 25

    clon後のリアルタイム入力入力

  26. 26

    NativeScriptの入力

  27. 27

    SqlDataAdapterの入力

  28. 28

    入力の分割

  29. 29

    .on(load)タイムアウトの挿入

ホットタグ

アーカイブ