Xác thực nguồn dữ liệu web excel

let
    tennantId = "*** Your Azure AD Tennant ID ***",
    clientId = "*** Your Azure AD iTWO cx Application ID ***",
    token_uri = "//login.microsoftonline.com/" & tennantId & "/oauth2/token",
    cxResource = "52e5f8a4-8b0e-455f-9df4-5beb7c37dd18",
    tokenResponse = Json.Document[Web.Contents[token_uri,
    [
        Content = Text.ToBinary[Uri.BuildQueryString[
            [
                client_id = clientId,
                resource = cxResource,
                grant_type = "password",
                username = "*** Your Azure AD user name / email [e.g. text.user@itwocx.onmicrosoft.com] ***",
                password = "*** Password ***"
            ]
        ]],
        Headers = [Accept = "application/json"], ManualStatusHandling = {400}
    ]]],
    access_token = tokenResponse[access_token],
    cxApi = "//au.itwocx.com/api/22.08",   
    cxProjectName = "PSDEMO",
    cxFormCode = "TR",
    cxLoginRespose = Json.Document[Web.Contents[cxApi & "/Api/Login/ByUserToken", 
        [
            Content = Text.ToBinary[""],
            Headers = [Authorization = "Bearer " & access_token]
        ]]],
    cxKey = cxLoginRespose[Key],
    cxDataSource = Json.Document[Web.Contents[cxApi & "/Api/" & cxProjectName &"/Document/GetByDocCode?code=" & cxFormCode & "&take=1000",
        [
            Headers = [#"key" = cxKey]
        ]
    ]],
    cxTable = Table.FromList[cxDataSource[Items], Splitter.SplitByNothing[], null, null, ExtraValues.Error],
    cxResult = Table.ExpandRecordColumn[cxTable, "Column1", {"Id", "DocCode", "DocTypeCode", "Reference", "ProjectName", "StatusName", "StatusType", "Title", "AuthorCode", "AuthorCompanyCode", "CreatedDate", "IssuedDate", "DueDate", "ClosedDate", "LastClosedDate", "OpenedDate", "LastChangedDate", "LastModifiedDate", "FirstActionCompanyCode", "ActionCodes", "InfoCodes", "UserfieldValues", "Attachments", "Comments", "DocSettingId", "StatusId", "Timestamp", "IsPrivate", "LinkedDocuments"}, {"Column1.Id", "Column1.DocCode", "Column1.DocTypeCode", "Column1.Reference", "Column1.ProjectName", "Column1.StatusName", "Column1.StatusType", "Column1.Title", "Column1.AuthorCode", "Column1.AuthorCompanyCode", "Column1.CreatedDate", "Column1.IssuedDate", "Column1.DueDate", "Column1.ClosedDate", "Column1.LastClosedDate", "Column1.OpenedDate", "Column1.LastChangedDate", "Column1.LastModifiedDate", "Column1.FirstActionCompanyCode", "Column1.ActionCodes", "Column1.InfoCodes", "Column1.UserfieldValues", "Column1.Attachments", "Column1.Comments", "Column1.DocSettingId", "Column1.StatusId", "Column1.Timestamp", "Column1.IsPrivate", "Column1.LinkedDocuments"}]
in
    cxResult

Có rất nhiều bài báo và bài đăng trên blog về cách xử lý xác thực OAuth2 khi kết nối với API REST từ Power Query trong Power BI. Tuy nhiên, cũng có rất nhiều thông tin nhầm lẫn và mâu thuẫn, vì vậy trong bài đăng này, tôi muốn cung cấp cho bạn câu trả lời dứt khoát, được Microsoft xác nhận cho câu hỏi này, đó là

Nếu muốn kết nối từ Power BI với API REST sử dụng xác thực OAuth2 thì bạn cần xây dựng trình kết nối tùy chỉnh. Bạn có thể tìm tài liệu về cách triển khai luồng OAuth2 trong trình kết nối tùy chỉnh

Ngoại lệ duy nhất là bạn có thể kết nối với một số API sử dụng xác thực AAD bằng trình kết nối web hoặc OData tích hợp, như được ghi lại

Tìm kiếm nhanh trên web sẽ đưa ra một số ví dụ về cách triển khai luồng thông tin xác thực OAuth2 trong truy vấn Power Query thông thường mà không cần trình kết nối tùy chỉnh. Điều này không được khuyến khích. nó không an toàn và nó không đáng tin cậy. Đặc biệt, tên người dùng/mật khẩu mã hóa cứng hoặc id ứng dụng khách/bí mật ứng dụng khách trong mã M của bạn là một ý tưởng thực sự tồi. Hơn nữa, việc yêu cầu mã thông báo mới mỗi khi truy vấn chạy cũng không tốt

Rất tiếc, Excel Power Query không hỗ trợ trình kết nối tùy chỉnh tại thời điểm viết bài. Ngoài ra, nếu sử dụng trình kết nối tùy chỉnh trong Dịch vụ Power BI thì bạn sẽ cần sử dụng cổng tại chỗ. Cuối cùng, có một bài viết tại đây giải thích lý do tại sao không dễ dàng kết nối Power BI với Microsoft Graph API

Khi bạn xuất bản sổ làm việc lên Tableau Cloud hoặc Tableau Server, bạn có thể xuất bản nguồn dữ liệu mà nó kết nối như một phần của sổ làm việc [được nhúng vào sổ làm việc] hoặc dưới dạng nguồn dữ liệu độc lập, riêng biệt. Ngoài ra, nếu nguồn dữ liệu bạn đang xuất bản yêu cầu xác thực, thì bạn có thể tùy chỉnh cách lấy thông tin xác thực

Loại xác thực đối với nguồn dữ liệu của bạn không phụ thuộc vào cách mọi người đăng nhập vào trang Tableau Cloud hoặc Tableau Server của bạn. Ví dụ: để cấp cho mọi người quyền truy cập trực tiếp vào dữ liệu trong sổ làm việc, bạn sẽ nhúng thông tin đăng nhập của người dùng cơ sở dữ liệu vào kết nối của nguồn dữ liệu. Nhưng bất kỳ ai xem sổ làm việc vẫn cần có thể đăng nhập vào trang web trên Tableau Cloud hoặc Tableau Server để mở sổ làm việc của bạn

Chủ đề này mô tả cách đặt xác thực trên các kết nối dữ liệu như một phần của quy trình xuất bản

Ghi chú. Chủ đề này không áp dụng cho các kết nối không yêu cầu xác thực, chẳng hạn như tệp văn bản hoặc tệp Excel

Đặt loại xác thực

Đối với nhiều loại kết nối, bạn có thể nhúng tên và mật khẩu của người dùng cơ sở dữ liệu hoặc sử dụng đăng nhập một lần [SSO]. Các trường hợp ngoại lệ cụ thể được mô tả sau trong chủ đề này

Các bước sau đây mô tả cách đặt xác thực như một phần của việc phát hành nguồn dữ liệu hoặc sổ làm việc. Bạn có thể làm điều này cho từng kết nối trong nguồn dữ liệu

  1. Trong hộp thoại Xuất bản sổ làm việc, đi tới khu vực Nguồn dữ liệu , trong đó liệt kê các kết nối của sổ làm việc và chọn Edit.

  2. Trong cửa sổ bật lên Quản lý nguồn dữ liệu , sau khi bạn quyết định xuất bản nguồn dữ liệu riêng biệt hay là một phần của sổ làm việc, hãy chọn một xác thực .

    Các loại xác thực khả dụng tùy thuộc vào loại kết nối và chúng có thể bao gồm một hoặc nhiều loại sau

    • Người dùng nhắc . Người dùng phải nhập thông tin xác thực cơ sở dữ liệu của riêng họ để truy cập vào dữ liệu đã xuất bản khi dạng xem hoặc sổ làm việc tải.

    • Mật khẩu nhúng . Thông tin đăng nhập mà bạn đã sử dụng để kết nối với dữ liệu sẽ được lưu cùng với kết nối và được sử dụng bởi tất cả những người truy cập vào nguồn dữ liệu hoặc sổ làm việc mà bạn xuất bản.

    • Máy chủ chạy dưới dạng tài khoản . Một tài khoản dịch vụ Kerberos duy nhất được sử dụng để xác thực người dùng. Trên Windows, đây là tài khoản mà Tableau Server chạy dưới dạng. Trên Linux, đó có thể là bất kỳ tài khoản Kerberos nào.

    • Thông tin đăng nhập của người xem . Thông tin đăng nhập của người xem được chuyển đến cơ sở dữ liệu bằng SSO [thường là Kerberos].

    • Mạo danh bằng tài khoản được nhúng hoặc Mạo danh bằng tài khoản dịch vụ Run As của máy chủ . Mạo danh bằng thông tin đăng nhập được nhúng kết nối với thông tin đăng nhập được nhúng rồi chuyển sang danh tính của người xem [chỉ dành cho cơ sở dữ liệu hỗ trợ điều này]. Mạo danh bằng tài khoản dịch vụ Run As cũng tương tự nhưng trước tiên, hãy kết nối với tài khoản dịch vụ Kerberos trước khi chuyển sang danh tính của người xem.

    • Làm mới không được bật hoặc Cho phép truy cập làm mới . Các tùy chọn này xuất hiện khi bạn xuất bản trích xuất dữ liệu đám mây, chẳng hạn như từ Salesforce và cần có thông tin đăng nhập cơ sở dữ liệu để truy cập dữ liệu cơ bản. Cho phép truy cập làm mới nhúng thông tin đăng nhập vào kết nối để bạn có thể thiết lập làm mới bản trích xuất đó theo lịch trình thường xuyên. Cài đặt Làm mới không được bật nhắc người dùng khi họ mở sổ làm việc.

      Quan trọng. Cách bạn muốn giữ cho dữ liệu được trích xuất luôn mới cũng là một yếu tố

      • Nếu bạn muốn đặt lịch làm mới tự động, bạn phải nhúng mật khẩu vào kết nối
      • Nếu bạn đang xuất bản kết nối dữ liệu đám mây lên Tableau Cloud, các bước xuất bản sẽ cảnh báo bạn nếu bạn phải thêm Tableau Cloud vào danh sách được ủy quyền của nhà cung cấp dữ liệu
      • Bạn không thể xuất bản một trích xuất được tạo từ nguồn dữ liệu an toàn cấp hàng, được Kerberos ủy quyền

Kết nối Dropbox, OneDrive

Đối với Dropbox và OneDrive, khi bạn xuất bản nguồn dữ liệu hoặc sổ làm việc và chọn Mật khẩu nhúng , Tableau sẽ tạo thông tin xác thực đã lưu và nhúng nó vào .

Kết nối sổ làm việc với các nguồn dữ liệu Tableau

Khi bạn xuất bản sổ làm việc kết nối với nguồn dữ liệu Tableau Cloud hoặc Tableau Server, thay vì đặt thông tin đăng nhập để truy cập dữ liệu cơ bản, bạn đặt xem sổ làm việc có thể truy cập nguồn dữ liệu đã xuất bản mà nó kết nối hay không. Bất kể loại dữ liệu gốc là gì, lựa chọn cho nguồn dữ liệu máy chủ luôn là Mật khẩu nhúng  hoặc Nhắc người dùng.

Nếu bạn chọn nhắc người dùng, người dùng mở sổ làm việc phải có Chế độ xemKết nối . Nếu bạn chọn nhúng mật khẩu, người dùng có thể xem thông tin trong sổ làm việc ngay cả khi họ không có quyền Xem hoặc Kết nối. permissions on the data source to see the data. If you select embed password, users can see the information in the workbook even if they don’t have View or Connect permissions.

Kết nối ảo

Kể từ Tableau CloudTableau Server 2022. 3 và Tableau Desktop2022. 4 , khi bạn xuất bản nội dung Tableau như nguồn dữ liệu hoặc sổ làm việc sử dụng kết nối ảo và chọn Nhúng mật khẩu hoặc . Tuy nhiên, mọi chính sách dữ liệu được liên kết với kết nối ảo luôn được đánh giá bằng cách sử dụng danh tính của người xem–không phải của bạn. Embed credentials, the viewer of the content will have your permissions to connect to and query the virtual connection. However, any data policies associated with the virtual connection are always evaluated using the viewer’s identity–not yours.

Ví dụ: bạn xuất bản sổ làm việc sử dụng kết nối ảo. Để cho phép người xem sổ làm việc kết nối và truy vấn dữ liệu bằng kết nối ảo, bạn nhúng quyền của mình để kết nối và truy vấn kết nối ảo. Sau đó, mọi chính sách dữ liệu được liên kết với kết nối ảo sẽ ngăn người xem sổ làm việc truy cập vào bất kỳ dữ liệu nhạy cảm nào

Khi đánh giá xem có thể xem và truy cập các bảng trong một kết nối ảo hay không, danh tính của người tạo nội dung sẽ được sử dụng. Tuy nhiên, khi đánh giá bất kỳ chính sách dữ liệu nào được liên kết với các bảng trong kết nối ảo, danh tính của người xem sẽ được sử dụng. Và người tạo nội dung chỉ có thể nhúng quyền kết nối vào kết nối ảo chứ không phải quyền chỉnh sửa

Nếu bạn chọn không nhúng quyền thì chỉ những người dùng có quyền truy nhập sổ làm việc hoặc nguồn dữ liệu và có quyền kết nối với kết nối ảo mới có thể truy cập sổ làm việc hoặc nguồn dữ liệu

Excel có thể lấy dữ liệu từ một trang web có thông tin đăng nhập không?

Truy cập Dữ liệu>Từ Web để nhập URL của bạn, nhấp vào OK, sau đó chọn Cơ bản để nhập thông tin đăng nhập của bạn để kiểm tra . Để biết thêm thông tin, bạn có thể tham khảo các Nguồn khác. Phần web của Nhập dữ liệu từ các nguồn dữ liệu ngoài.

Power Query có hoạt động trên Excel Web không?

Excel kết hợp công nghệ Power Query [còn gọi là Get & Transform] để cung cấp khả năng lớn hơn khi nhập, làm mới và xác thực nguồn dữ liệu, quản lý nguồn dữ liệu Power Query và định hình dữ liệu thành bảng phù hợp với yêu cầu của bạn

Chủ Đề