Xác thực (bản xem trước)

Bài viết này cung cấp tổng quan về Microsoft Entra thiết lập để gọi Power Platform API (bản xem trước). Để truy cập các tài nguyên có sẵn thông qua Power Platform API, bạn phải lấy mã thông báo người mang từ Microsoft Entra và gửi nó dưới dạng tiêu đề cùng với mỗi yêu cầu. Tùy thuộc vào loại danh tính bạn hỗ trợ (người dùng so với chủ thể dịch vụ), sẽ có các luồng khác nhau để lấy mã thông báo người mang này, như được mô tả trong bài viết này.

Các bước sau đây được yêu cầu để có được mã thông báo mang chuyển với các quyền chính xác:

  1. Tạo một đơn đăng ký ứng dụng trong Microsoft Entra người thuê nhà của bạn
  2. Đặt cấu hình quyền API
  3. Đặt cấu hình máy khách công cộng (không bắt buộc)
  4. Đặt cấu hình chứng chỉ và mã bí mật (không bắt buộc)
  5. Yêu cầu mã thông báo truy cập

Bước 1. Tạo đăng ký ứng dụng

Điều hướng đến trang Microsoft Entra đăng ký ứng dụng và tạo một đăng ký mới. Đặt tên cho ứng dụng và đảm bảo tùy chọn Đối tượng thuê duy nhất được chọn. Bạn có thể bỏ qua thiết lập URI chuyển hướng.

Bước 2. Đặt cấu hình quyền API

Trong đăng ký ứng dụng mới, điều hướng đến tab Quản lý - Quyền API. Trong phần Định cấu hình quyền, chọn Thêm quyền. Trên cửa sổ hộp thoại mở ra, hãy chọn tab API mà tổ chức của tôi sử dụng rồi sau đó tìm kiếm API Power Platform. Bạn có thể thấy một số mục nhập có tên tương tự với tên này, vì vậy hãy đảm bảo rằng bạn sử dụng mục nhập có GUID 8578e004-a5c6-46e7-913e-12f58912df43.

Nếu bạn không thấy Power Platform API hiển thị trong danh sách khi tìm kiếm theo GUID, có thể bạn vẫn có quyền truy cập vào API đó nhưng khả năng hiển thị không được làm mới. Để bắt buộc làm mới, hãy chạy mã lệnh PowerShell bên dưới:

#Install the Microsoft Entra the module
Install-Module AzureAD

Connect-AzureAD
New-AzureADServicePrincipal -AppId 8578e004-a5c6-46e7-913e-12f58912df43 -DisplayName "Power Platform API"

Từ đây, bạn phải chọn các quyền mà bạn yêu cầu. Chúng được nhóm theo Không gian tên. Trong không gian tên, bạn sẽ thấy các loại tài nguyên và hành động, ví dụ AppManagement.ApplicationPackages.Read cấp quyền đọc cho các gói ứng dụng. Để biết thêm thông tin, hãy xem bài viết Tham khảo quyền của chúng tôi.

Lưu ý

API Power Platform chỉ sử dụng các quyền được ủy quyền tại thời điểm này. Đối với các ứng dụng chạy với ngữ cảnh người dùng, bạn yêu cầu quyền được ủy quyền bằng tham số phạm vi. Các quyền này ủy quyền các đặc quyền của người dùng đã đăng nhập cho ứng dụng của bạn, cho phép ứng dụng đóng vai trò là người dùng khi gọi các điểm cuối API Power Platform.

Đối với các danh tính tên dịch vụ chính, quyền của ứng dụng không được sử dụng. Thay vào đó, tên dịch vụ chính được coi là Quản trị viên Power Platform và phải được đăng ký bằng cách làm theo PowerShell - Tạo tên dịch vụ chính.

Sau khi các quyền bắt buộc được thêm vào ứng dụng khách, hãy chọn Cấp sự đồng ý của quản trị viên để hoàn tất quy trình thiết lập. Điều này là cần thiết đối với những trường hợp bạn muốn cho phép người dùng truy cập ứng dụng của mình ngay lập tức, thay vì yêu cầu một trải nghiệm đồng ý tương tác. Nếu bạn có thể hỗ trợ sự đồng ý tương tác, chúng tôi khuyên bạn nên tuân theo Microsoft nền tảng danh tính và OAuth luồng mã ủy quyền 2.0.

Bước 3. Đặt cấu hình máy khách công cộng (không bắt buộc)

Nếu ứng dụng của bạn yêu cầu người dùng đọc và ghi tài nguyên, bạn phải bật cài đặt Máy khách công khai. Đây là cách duy nhất mà Microsoft Entra ID chấp nhận các thuộc tính tên người dùng và mật khẩu trong nội dung yêu cầu mã thông báo của bạn. Ngoài ra, lưu ý rằng nếu bạn định sử dụng tính năng này, nó sẽ không hoạt động đối với những tài khoản đã bật xác thực đa yếu tố.

Để bật, hãy truy cập tab Quản lý - Xác thực. Trong phần Cài đặt nâng cao, hãy đặt nút chuyển đổi Máy khách công cộng thành .

Bước 4. Đặt cấu hình chứng chỉ và mã bí mật (không bắt buộc)

Nếu ứng dụng của bạn yêu cầu đọc và ghi tài nguyên như chính nó - còn được gọi là Nguyên tắc dịch vụ, thì có hai cách để xác thực. Để sử dụng chứng chỉ, hãy điều hướng đến tab Quản lý - Chứng chỉ và bí mật. Trong phần Chứng chỉ, tải lên chứng chỉ x509 mà bạn có thể dùng để xác thực. Cách khác là sử dụng phần Bí mật để tạo ra một mã bí mật của khách hàng. Lưu bí mật ở một vị trí an toàn để sử dụng với nhu cầu tự động hóa của bạn. Tùy chọn chứng chỉ hoặc bí mật cho phép bạn xác thực với Microsoft Entra và nhận mã thông báo cho máy khách này, sau đó bạn chuyển mã thông báo này cho REST API hoặc lệnh ghép ngắn PowerShell.

Bước 5. Yêu cầu mã thông báo truy cập

Có hai cách để có được mã thông báo mang chuyển quyền truy cập. Một dành cho tên người dùng và mật khẩu và một dành cho Tên dịch vụ chính.

Dòng tên người dùng và mật khẩu

Hãy nhớ đọc phần Máy khách công cộng ở trên. Sau đó, gửi yêu cầu POST qua HTTP đến Microsoft Entra ID với thông tin tên người dùng và mật khẩu.

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&username={USER_EMAIL_ADDRESS}&password={PASSWORD}&grant_type=password

Ví dụ trên chứa các chỗ giữ chỗ mà bạn có thể lấy từ ứng dụng khách của mình trong Microsoft Entra ID. Bạn nhận được phản hồi có thể được sử dụng để thực hiện các cuộc gọi tiếp theo tới Power Platform API.

{
  "token_type": "Bearer",
  "scope": "https://api.powerplatform.com/AppManagement.ApplicationPackages.Install https://api.powerplatform.com/AppManagement.ApplicationPackages.Read https://api.powerplatform.com/.default",
  "expires_in": 4747,
  "ext_expires_in": 4747,
  "access_token": "eyJ0eXAiOiJKV1QiLCJu..."
}

Sử dụng giá trịmã thông báo truy cập trong các lệnh gọi tiếp theo đến API của Power Platform API với tiêu đề HTTP Ủy quyền.

Dòng chảy dịch vụ chính

Hãy nhớ đọc phần Chứng chỉ và Mã bí mật ở trên. Sau đó, gửi yêu cầu POST qua HTTP đến Microsoft Entra ID có chứa thông tin bí mật của máy khách. Điều này thường được gọi là phần xác thực chính của dịch vụ.

Quan trọng

Bạn chỉ có thể sử dụng tính năng này sau khi đã đăng ký ID ứng dụng khách hàng này bằng Microsoft Power Platform theo tài liệu liên quan PowerShell hoặc REST .

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&client_secret={SECRET_FROM_AZURE_CLIENT_APP}&grant_type=client_credentials

Ví dụ trên chứa các chỗ giữ chỗ mà bạn có thể lấy từ ứng dụng khách của mình trong Microsoft Entra ID. Bạn nhận được phản hồi có thể được sử dụng để thực hiện các cuộc gọi tiếp theo tới Power Platform API.

{
  "token_type": "Bearer",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "eyJ0eXAiOiJKV1..."
}

Sử dụng giá trịmã thông báo truy cập trong các lệnh gọi tiếp theo đến API của Power Platform API với tiêu đề HTTP Ủy quyền. Như đã lưu ý ở trên, luồng Service Principal không sử dụng quyền ứng dụng và thay vào đó, hiện tại, được coi là Power Platform Quản trị viên cho tất cả các cuộc gọi mà họ thực hiện.

Xem thêm

Tạo ứng dụng dịch vụ chính thông qua API (bản xem trước)
PowerShell - Tạo nguyên tắc dịch vụ