1

DataZenを使用して、ダッシュボードを介して一部のデータを視覚化しています。

ヘッダー認証を使用したいのですが、どのヘッダー フィールドにexternal_auth_key.

DataZen のヘッダー認証を使用するときに設定するヘッダー フィールドを知っている人はいますか?

4

3 に答える 3

2

サービスの変更された構成:

<add key="authtype" value="external" />
<add key="external_auth_type" value="header" />
<add key="external_auth_key" value="zabr" />

サービスを再開しました。datazen で作成されたユーザー: zabr。ユーザーに付与された権限: zabr。

変更されたnginx:

            location / {
                    proxy_pass http://tfs10.domain.ru:81/;
                    proxy_set_header zabr 'zabr';
            }

結果 ==> うまくいきました!.

于 2015-10-06T05:43:53.430 に答える
2

簡単な序文: この機能は実際には使用すべきではありません。サーバーをセットアップする正しい方法はほとんどないため、十分に文書化されていません。デフォルト モード (Datazen が資格情報を処理する) や Active Directory フェデレーション サービスなどの代替手段を常に十分に検討する必要があります。

すべての信頼がプロキシに置かれているため、外部認証は比較的安全でないアプローチです。絶対に必要で、Active Directory を使用していない場合を除き、通常は使用しないでください。


検索するヘッダーまたは Cookie を Datazen に指示する必要があります。これは、コントロール パネル UI から実行できます。

Datazen 外部認証の設定

「認証キー」の設定では大文字と小文字が区別されることに注意してください。そのため、通常はすべて小文字にすることをお勧めします。

設定が完了したら、プロキシに移動し (それを実装するために選択した形式で)、その名前でヘッダーを設定し、認証する必要がある 1:1 Datazen ユーザー名を設定します。

たとえば、上記の設定でプロキシにログインしている場合、プロキシは次の要求を行う必要があります。

GET /viewer HTTP/1.1
thisistheheadername: v-mhauge
...

そのヘッダーを読み取った後、Datazen サーバーは、そのユーザーがログインしているかのように応答します。

免責事項: 私は Microsoft のサポート エンジニアであり、Datazen をサポートするために報酬を受けています。

于 2015-08-31T22:30:54.683 に答える
0

私はフィドラーを介してヘッダー情報を渡すことができ、それは機能しているように見えますが、iframe 内の参照サイトで ASP Web アプリケーションを介してそれを渡す方法を理解することはできません。このクラスを作成しましたが、ヘッダーはこれを何らかの形で失います。

Public Class CustomHttpModule
    Implements IHttpModule

    Public Sub New()
        ' Class constructor.
    End Sub


    ' Classes that inherit IHttpModule 
    ' must implement the Init and Dispose methods.
    Public Sub Init(ByVal app As HttpApplication) Implements IHttpModule.Init
        AddHandler app.BeginRequest, AddressOf app_BeginRequest
    End Sub


    Public Sub Dispose() Implements IHttpModule.Dispose
        ' Add code to clean up the
        ' instance variables of a module.
    End Sub

    Public Sub app_BeginRequest(ByVal o As Object, ByVal ea As EventArgs)
        Dim user As New ArrayList
        Dim headers As NameValueCollection = HttpContext.Current.Request.Headers
        Dim t As Type = headers.GetType()
        t.InvokeMember("MakeReadWrite", System.Reflection.BindingFlags.InvokeMethod Or System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance, Nothing, headers, Nothing)
        t.InvokeMember("InvalidateCachedArrays", System.Reflection.BindingFlags.InvokeMethod Or System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance, Nothing, headers, Nothing)
        user.Add("username")
        t.InvokeMember("BaseAdd", System.Reflection.BindingFlags.InvokeMethod Or System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance, Nothing, headers, New Object() {"headerkey", user})
        t.InvokeMember("MakeReadOnly", System.Reflection.BindingFlags.InvokeMethod Or System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance, Nothing, headers, Nothing)
    End Sub

End Class

asp を介して Web リクエストを正常に実行することもできましたが、iframe でそれを行う方法は私を超えています..

于 2016-01-21T15:02:21.097 に答える